From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH RFC] xen/grant_table: introduce GNTTABOP_unmap_and_duplicate Date: Wed, 31 Jul 2013 18:05:08 +0200 Message-ID: <1375286708-4783-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Keir Fraser , Stefano Stabellini , Tim Deegan , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org R05UVEFCT1BfdW5tYXBfYW5kX3JlcGxhY2UgaGFzIHR3byBpc3N1ZXM6Ci0gaXQgdW5jb25kaXRp b25hbGx5IHJlcGxhY2VzIHRoZSBtYXBwaW5nIHBhc3NlZCBpbiBuZXdfYWRkciB3aXRoIDA7Ci0g aXQgZG9lc24ndCBzdXBwb3J0IEdOVE1BUF9jb250YWluc19wdGUgbWFwcGluZ3Mgb24geDg2LCBy ZXR1cm5pbmcgYQpnZW5lcmFsIGVycm9yIGluc3RlYWQgb2Ygc29tZSBmb3JtIG9mIEVOT1NZUy4K CkludHJvZHVjZSBhIG5ldyBvcGVyYXRpb24gY2FsbGVkIEdOVFRBQk9QX3VubWFwX2FuZF9kdXBs aWNhdGUgdGhhdApiZWhhdmVzIGxpa2UgR05UVEFCT1BfdW5tYXBfYW5kX3JlcGxhY2Ugd2l0aG91 dCB6ZXJvaW5nIHRoZSBtYXBwaW5nCnBhc3NlZCBpbiBuZXdfYWRkci4gQWxzbyByZXR1cm4gR05U U1RfZW5vc3lzIGluc3RlYWQgb2YKR05UU1RfZ2VuZXJhbF9lcnJvciBpZiBHTlRNQVBfY29udGFp bnNfcHRlIGlzIHNwZWNpZmllZC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8 c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5v cmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBLZWlyIEZyYXNlciA8 a2VpckB4ZW4ub3JnPgotLS0KIHhlbi9hcmNoL2FybS9tbS5jICAgICAgICAgICAgICAgICB8ICAg IDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKysr KysrLS0tLQogeGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYyAgIHwgICAgOCArKysrCiB4 ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICAgICAgfCAgIDgzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCB8 ICAgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaCB8ICAgIDMgKy0KIHhl bi9pbmNsdWRlL3B1YmxpYy9ncmFudF90YWJsZS5oICB8ICAgMjMgKysrKysrKysrKwogeGVuL2lu Y2x1ZGUveGxhdC5sc3QgICAgICAgICAgICAgIHwgICAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDE0 NSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vbW0uYyBiL3hlbi9hcmNoL2FybS9tbS5jCmluZGV4IGQxMjkwY2QuLjYwNDVjOTAgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9tbS5jCisrKyBiL3hlbi9hcmNoL2FybS9tbS5jCkBAIC0xMTIy LDcgKzExMjIsNyBAQCBpbnQgY3JlYXRlX2dyYW50X2hvc3RfbWFwcGluZyh1bnNpZ25lZCBsb25n IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiB9CiAKIGludCByZXBsYWNlX2dyYW50X2hvc3Rf bWFwcGluZyh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbWZuLAotICAgICAgICB1 bnNpZ25lZCBsb25nIG5ld19hZGRyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCisgICAgICAgIHVuc2ln bmVkIGxvbmcgbmV3X2FkZHIsIHVuc2lnbmVkIGludCBmbGFncywgYm9vbF90IHplcm9fbmV3X2Fk ZHIpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBnZm4gPSAodW5zaWduZWQgbG9uZykoYWRkciA+PiBQ QUdFX1NISUZUKTsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjMDA4 NDFjLi40ZmYwMDI1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJj aC94ODYvbW0uYwpAQCAtNDA0OCw3ICs0MDQ4LDggQEAgc3RhdGljIGludCByZXBsYWNlX2dyYW50 X3AybV9tYXBwaW5nKAogfQogCiBpbnQgcmVwbGFjZV9ncmFudF9ob3N0X21hcHBpbmcoCi0gICAg dWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwgdWludDY0X3QgbmV3X2FkZHIsIHVu c2lnbmVkIGludCBmbGFncykKKyAgICB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1l LCB1aW50NjRfdCBuZXdfYWRkciwgdW5zaWduZWQgaW50IGZsYWdzLAorICAgIGJvb2xfdCB6ZXJv X25ld19hZGRyKQogewogICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKICAgICBsMV9w Z2VudHJ5X3QgKnBsMWUsIG9sMWU7CkBAIC00MDY1LDcgKzQwNjYsNyBAQCBpbnQgcmVwbGFjZV9n cmFudF9ob3N0X21hcHBpbmcoCiAgICAgICAgICAgICByZXR1cm4gZGVzdHJveV9ncmFudF9wdGVf bWFwcGluZyhhZGRyLCBmcmFtZSwgY3Vyci0+ZG9tYWluKTsKICAgICAgICAgCiAgICAgICAgIE1F TV9MT0coIlVuc3VwcG9ydGVkIGdyYW50IHRhYmxlIG9wZXJhdGlvbiIpOwotICAgICAgICByZXR1 cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKKyAgICAgICAgcmV0dXJuIEdOVFNUX2Vub3N5czsKICAg ICB9CiAKICAgICBpZiAoICFuZXdfYWRkciApCkBAIC00MTAzLDE0ICs0MTA0LDMxIEBAIGludCBy ZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZygKIAogICAgIG9sMWUgPSAqcGwxZTsKIAotICAgIGlm ICggdW5saWtlbHkoIVVQREFURV9FTlRSWShsMSwgcGwxZSwgb2wxZSwgbDFlX2VtcHR5KCksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsMW1mbiwgY3VyciwgMCkpICkKKyAgICBp ZiAoIHplcm9fbmV3X2FkZHIgKQogICAgIHsKLSAgICAgICAgcGFnZV91bmxvY2sobDFwZyk7Ci0g ICAgICAgIHB1dF9wYWdlKGwxcGcpOwotICAgICAgICBNRU1fTE9HKCJDYW5ub3QgZGVsZXRlIFBU RSBlbnRyeSBhdCAlcCIsICh1bnNpZ25lZCBsb25nICopcGwxZSk7Ci0gICAgICAgIGd1ZXN0X3Vu bWFwX2wxZShjdXJyLCBwbDFlKTsKLSAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7 CisgICAgICAgIGlmICggdW5saWtlbHkoIVVQREFURV9FTlRSWShsMSwgcGwxZSwgb2wxZSwgbDFl X2VtcHR5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDFtZm4sIGN1 cnIsIDApKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhZ2VfdW5sb2NrKGwxcGcpOworICAg ICAgICAgICAgcHV0X3BhZ2UobDFwZyk7CisgICAgICAgICAgICBNRU1fTE9HKCJDYW5ub3QgZGVs ZXRlIFBURSBlbnRyeSBhdCAlcCIsICh1bnNpZ25lZCBsb25nICopcGwxZSk7CisgICAgICAgICAg ICBndWVzdF91bm1hcF9sMWUoY3VyciwgcGwxZSk7CisgICAgICAgICAgICByZXR1cm4gR05UU1Rf Z2VuZXJhbF9lcnJvcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAg ICAvKiBJbmNyZWFzZSByZWZjb3VudCAqLworICAgICAgICBpZiAoIHVubGlrZWx5KCFnZXRfcGFn ZV9hbmRfdHlwZShsMWVfZ2V0X3BhZ2Uob2wxZSksIGN1cnItPmRvbWFpbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEdUX3dyaXRhYmxlX3BhZ2UpKSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIHBhZ2VfdW5sb2NrKGwxcGcpOworICAgICAgICAgICAgcHV0X3Bh Z2UobDFwZyk7CisgICAgICAgICAgICBndWVzdF91bm1hcF9sMWUoY3VyciwgcGwxZSk7CisgICAg ICAgICAgICBNRU1fTE9HKCJDYW5ub3QgaW5jcmVhc2UgcmVmY291bnQgb2YgZnJhbWUgYXQgJSJQ UklfbWZuLAorICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21mbihsMWVfZ2V0X3BhZ2Uob2wx ZSkpKTsKKyAgICAgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOworICAgICAgICB9 CiAgICAgfQogCiAgICAgcGFnZV91bmxvY2sobDFwZyk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L2NvbXBhdC9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYwpp bmRleCA3ZWJiYmMxLi44YWI1ZTc4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2NvbXBhdC9ncmFu dF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vY29tcGF0L2dyYW50X3RhYmxlLmMKQEAgLTUxLDYg KzUxLDEwIEBAIENIRUNLX2dudHRhYl9nZXRfdmVyc2lvbjsKIENIRUNLX2dudHRhYl9zd2FwX2dy YW50X3JlZjsKICN1bmRlZiB4ZW5fZ250dGFiX3N3YXBfZ3JhbnRfcmVmCiAKKyNkZWZpbmUgeGVu X2dudHRhYl91bm1hcF9hbmRfZHVwbGljYXRlIGdudHRhYl91bm1hcF9hbmRfZHVwbGljYXRlCitD SEVDS19nbnR0YWJfdW5tYXBfYW5kX2R1cGxpY2F0ZTsKKyN1bmRlZiB4ZW5fZ250dGFiX3VubWFw X2FuZF9kdXBsaWNhdGUKKwogaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBpbnQg Y21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZv aWQpIGNtcF91b3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3Vu dCkKQEAgLTEwNiw2ICsxMTAsMTAgQEAgaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25l ZCBpbnQgY21kLAogICAgIENBU0Uoc3dhcF9ncmFudF9yZWYpOwogI2VuZGlmCiAKKyNpZm5kZWYg Q0hFQ0tfZ250dGFiX3VubWFwX2FuZF9kdXBsaWNhdGUKKyAgICBDQVNFKHVubWFwX2FuZF9kdXBs aWNhdGUpOworI2VuZGlmCisKICN1bmRlZiBDQVNFCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0 dXJuIGRvX2dyYW50X3RhYmxlX29wKGNtZCwgY21wX3VvcCwgY291bnQpOwpkaWZmIC0tZ2l0IGEv eGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4 IGViNTAyODguLmRlMTU0ZmYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwor KysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IGdu dHRhYl91bm1hcF9jb21tb24gewogICAgIHVpbnQ2NF90IGRldl9idXNfYWRkcjsKICAgICB1aW50 NjRfdCBuZXdfYWRkcjsKICAgICBncmFudF9oYW5kbGVfdCBoYW5kbGU7CisgICAgYm9vbF90IHpl cm9fbmV3X2FkZHI7CiAKICAgICAvKiBSZXR1cm4gKi8KICAgICBpbnQxNl90IHN0YXR1czsKQEAg LTkyMSw3ICs5MjIsOCBAQCBfX2dudHRhYl91bm1hcF9jb21tb24oCiAgICAgewogICAgICAgICBp ZiAoIChyYyA9IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKG9wLT5ob3N0X2FkZHIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AtPmZyYW1lLCBvcC0+ bmV3X2FkZHIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9wLT5mbGFncykpIDwgMCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3AtPmZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9wLT56ZXJvX25ld19hZGRyKSkgPCAwICkKICAgICAgICAgICAgIGdvdG8gdW5t YXBfb3V0OwogCiAgICAgICAgIEFTU0VSVChhY3QtPnBpbiAmIChHTlRQSU5faHN0d19tYXNrIHwg R05UUElOX2hzdHJfbWFzaykpOwpAQCAtMTEzMCw2ICsxMTMyLDcgQEAgX19nbnR0YWJfdW5tYXBf YW5kX3JlcGxhY2UoCiAgICAgY29tbW9uLT5ob3N0X2FkZHIgPSBvcC0+aG9zdF9hZGRyOwogICAg IGNvbW1vbi0+bmV3X2FkZHIgPSBvcC0+bmV3X2FkZHI7CiAgICAgY29tbW9uLT5oYW5kbGUgPSBv cC0+aGFuZGxlOworICAgIGNvbW1vbi0+emVyb19uZXdfYWRkciA9IDE7CiAgICAgCiAgICAgLyog SW50aWFsaXNlIHRoZXNlIGluIGNhc2UgY29tbW9uIGNvbnRhaW5zIG9sZCBzdGF0ZSAqLwogICAg IGNvbW1vbi0+ZGV2X2J1c19hZGRyID0gMDsKQEAgLTExODUsNiArMTE4OCw3MCBAQCBmYXVsdDoK ICAgICByZXR1cm4gLUVGQVVMVDsgICAgCiB9CiAKK3N0YXRpYyB2b2lkCitfX2dudHRhYl91bm1h cF9hbmRfZHVwbGljYXRlKAorICAgIHN0cnVjdCBnbnR0YWJfdW5tYXBfYW5kX2R1cGxpY2F0ZSAq b3AsCisgICAgc3RydWN0IGdudHRhYl91bm1hcF9jb21tb24gKmNvbW1vbikKK3sKKyAgICBjb21t b24tPmhvc3RfYWRkciA9IG9wLT5ob3N0X2FkZHI7CisgICAgY29tbW9uLT5uZXdfYWRkciA9IG9w LT5uZXdfYWRkcjsKKyAgICBjb21tb24tPmhhbmRsZSA9IG9wLT5oYW5kbGU7CisgICAgY29tbW9u LT56ZXJvX25ld19hZGRyID0gMDsKKworICAgIC8qIEludGlhbGlzZSB0aGVzZSBpbiBjYXNlIGNv bW1vbiBjb250YWlucyBvbGQgc3RhdGUgKi8KKyAgICBjb21tb24tPmRldl9idXNfYWRkciA9IDA7 CisgICAgY29tbW9uLT5yZCA9IE5VTEw7CisKKyAgICBfX2dudHRhYl91bm1hcF9jb21tb24oY29t bW9uKTsKKyAgICBvcC0+c3RhdHVzID0gY29tbW9uLT5zdGF0dXM7Cit9CisKK3N0YXRpYyBsb25n CitnbnR0YWJfdW5tYXBfYW5kX2R1cGxpY2F0ZSgKKyAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFN KGdudHRhYl91bm1hcF9hbmRfZHVwbGljYXRlX3QpIHVvcCwgdW5zaWduZWQgaW50IGNvdW50KQor eworICAgIGludCBpLCBjLCBwYXJ0aWFsX2RvbmUsIGRvbmUgPSAwOworICAgIHN0cnVjdCBnbnR0 YWJfdW5tYXBfYW5kX2R1cGxpY2F0ZSBvcDsKKyAgICBzdHJ1Y3QgZ250dGFiX3VubWFwX2NvbW1v biBjb21tb25bR05UVEFCX1VOTUFQX0JBVENIX1NJWkVdOworCisgICAgd2hpbGUgKCBjb3VudCAh PSAwICkKKyAgICB7CisgICAgICAgIGMgPSBtaW4oY291bnQsICh1bnNpZ25lZCBpbnQpR05UVEFC X1VOTUFQX0JBVENIX1NJWkUpOworICAgICAgICBwYXJ0aWFsX2RvbmUgPSAwOworCisgICAgICAg IGZvciAoIGkgPSAwOyBpIDwgYzsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCB1 bmxpa2VseShfX2NvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkpICkKKyAgICAgICAgICAgICAg ICBnb3RvIGZhdWx0OworICAgICAgICAgICAgX19nbnR0YWJfdW5tYXBfYW5kX2R1cGxpY2F0ZSgm b3AsICYoY29tbW9uW2ldKSk7CisgICAgICAgICAgICArK3BhcnRpYWxfZG9uZTsKKyAgICAgICAg ICAgIGlmICggdW5saWtlbHkoX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KHVvcCwgJm9wLCBzdGF0dXMp KSApCisgICAgICAgICAgICAgICAgZ290byBmYXVsdDsKKyAgICAgICAgICAgIGd1ZXN0X2hhbmRs ZV9hZGRfb2Zmc2V0KHVvcCwgMSk7CisgICAgICAgIH0KKworICAgICAgICBmbHVzaF90bGJfbWFz ayhjdXJyZW50LT5kb21haW4tPmRvbWFpbl9kaXJ0eV9jcHVtYXNrKTsKKworICAgICAgICBmb3Ig KCBpID0gMDsgaSA8IHBhcnRpYWxfZG9uZTsgaSsrICkKKyAgICAgICAgICAgIF9fZ250dGFiX3Vu bWFwX2NvbW1vbl9jb21wbGV0ZSgmKGNvbW1vbltpXSkpOworCisgICAgICAgIGNvdW50IC09IGM7 CisgICAgICAgIGRvbmUgKz0gYzsKKworICAgICAgICBpZiAoY291bnQgJiYgaHlwZXJjYWxsX3By ZWVtcHRfY2hlY2soKSkKKyAgICAgICAgICAgIHJldHVybiBkb25lOworICAgIH0KKworICAgIHJl dHVybiAwOworCitmYXVsdDoKKyAgICBmbHVzaF90bGJfbWFzayhjdXJyZW50LT5kb21haW4tPmRv bWFpbl9kaXJ0eV9jcHVtYXNrKTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgcGFydGlhbF9kb25l OyBpKysgKQorICAgICAgICBfX2dudHRhYl91bm1hcF9jb21tb25fY29tcGxldGUoJihjb21tb25b aV0pKTsKKyAgICByZXR1cm4gLUVGQVVMVDsKK30KKwogc3RhdGljIGludAogZ250dGFiX3BvcHVs YXRlX3N0YXR1c19mcmFtZXMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGdyYW50X3RhYmxlICpn dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCByZXFfbnJfZnJh bWVzKQpAQCAtMjU1Myw2ICsyNjIwLDIwIEBAIGRvX2dyYW50X3RhYmxlX29wKAogICAgICAgICB9 CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEdOVFRBQk9QX3VubWFwX2FuZF9kdXBs aWNhdGU6CisgICAgeworICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKGdudHRhYl91bm1h cF9hbmRfZHVwbGljYXRlX3QpIHVubWFwID0KKyAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0 KHVvcCwgZ250dGFiX3VubWFwX2FuZF9kdXBsaWNhdGVfdCk7CisgICAgICAgIGlmICggdW5saWtl bHkoIWd1ZXN0X2hhbmRsZV9va2F5KHVubWFwLCBjb3VudCkpICkKKyAgICAgICAgICAgIGdvdG8g b3V0OworICAgICAgICByYyA9IGdudHRhYl91bm1hcF9hbmRfZHVwbGljYXRlKHVubWFwLCBjb3Vu dCk7CisgICAgICAgIGlmICggcmMgPiAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3Vlc3Rf aGFuZGxlX2FkZF9vZmZzZXQodW5tYXAsIHJjKTsKKyAgICAgICAgICAgIHVvcCA9IGd1ZXN0X2hh bmRsZV9jYXN0KHVubWFwLCB2b2lkKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9 CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU5PU1lTOwogICAgICAgICBicmVhazsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vZ3JhbnRfdGFibGUuaAppbmRleCA2ZTBjYzU5Li4wNDEwMzU1IDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LWFybS9ncmFudF90YWJsZS5oCkBAIC0xMiw3ICsxMiw3IEBAIGludCBjcmVhdGVfZ3JhbnRfaG9z dF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgZ3BhZGRyLAogICAgICAgICBjYWNoZV9mbGFncyk7CiAj ZGVmaW5lIGdudHRhYl9ob3N0X21hcHBpbmdfZ2V0X3BhZ2VfdHlwZShvcCwgZCwgcmQpICgwKQog aW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgZ3BhZGRyLCB1bnNp Z25lZCBsb25nIG1mbiwKLSAgICAgICAgdW5zaWduZWQgbG9uZyBuZXdfZ3BhZGRyLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpOworICAgICAgICB1bnNpZ25lZCBsb25nIG5ld19ncGFkZHIsIHVuc2lnbmVk IGludCBmbGFncywgYm9vbF90IHplcm9fbmV3X2FkZHIpOwogdm9pZCBnbnR0YWJfbWFya19kaXJ0 eShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGwpOwogI2RlZmluZSBnbnR0YWJfY3Jl YXRlX3N0YXR1c19wYWdlKGQsIHQsIGkpIGRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBnbnR0YWJf c3RhdHVzX2dtZm4oZCwgdCwgaSkgKDApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2 L2dyYW50X3RhYmxlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmgKaW5kZXgg MzAxMzg2OS4uZTk4NTk2OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90 YWJsZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaApAQCAtMTYsNyAr MTYsOCBAQAogaW50IGNyZWF0ZV9ncmFudF9ob3N0X21hcHBpbmcodWludDY0X3QgYWRkciwgdW5z aWduZWQgbG9uZyBmcmFtZSwKIAkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQg aW50IGNhY2hlX2ZsYWdzKTsKIGludCByZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZygKLSAgICB1 aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLCB1aW50NjRfdCBuZXdfYWRkciwgdW5z aWduZWQgaW50IGZsYWdzKTsKKyAgICB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1l LCB1aW50NjRfdCBuZXdfYWRkciwgdW5zaWduZWQgaW50IGZsYWdzLAorICAgIGJvb2xfdCB6ZXJv X25ld19hZGRyKTsKIAogI2RlZmluZSBnbnR0YWJfY3JlYXRlX3NoYXJlZF9wYWdlKGQsIHQsIGkp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9ncmFudF90YWJsZS5oCmluZGV4IGI4YTNkNmMuLmE0YWQ5OGQgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3B1YmxpYy9ncmFudF90YWJsZS5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9n cmFudF90YWJsZS5oCkBAIC0zMDksNiArMzA5LDcgQEAgdHlwZWRlZiB1aW50MTZfdCBncmFudF9z dGF0dXNfdDsKICNkZWZpbmUgR05UVEFCT1BfZ2V0X3N0YXR1c19mcmFtZXMgICAgOQogI2RlZmlu ZSBHTlRUQUJPUF9nZXRfdmVyc2lvbiAgICAgICAgICAxMAogI2RlZmluZSBHTlRUQUJPUF9zd2Fw X2dyYW50X3JlZgkgICAgICAxMQorI2RlZmluZSBHTlRUQUJPUF91bm1hcF9hbmRfZHVwbGljYXRl ICAxMgogI2VuZGlmIC8qIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gKi8KIC8qIGAgfSAqLwog CkBAIC01NzQsNiArNTc1LDI3IEBAIHN0cnVjdCBnbnR0YWJfc3dhcF9ncmFudF9yZWYgewogdHlw ZWRlZiBzdHJ1Y3QgZ250dGFiX3N3YXBfZ3JhbnRfcmVmIGdudHRhYl9zd2FwX2dyYW50X3JlZl90 OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX3N3YXBfZ3JhbnRfcmVmX3QpOwogCisv KgorICogR05UVEFCT1BfdW5tYXBfYW5kX2R1cGxpY2F0ZTogRGVzdHJveSBvbmUgb3IgbW9yZSBn cmFudC1yZWZlcmVuY2UgbWFwcGluZ3MKKyAqIHRyYWNrZWQgYnkgPGhhbmRsZT4gYnV0IGF0b21p Y2FsbHkgcmVwbGFjZSB0aGUgcGFnZSB0YWJsZSBlbnRyeSB3aXRoIG9uZQorICogcG9pbnRpbmcg dG8gdGhlIG1hY2hpbmUgYWRkcmVzcyB1bmRlciA8bmV3X2FkZHI+LgorICogTk9URVM6CisgKiAg MS4gVGhlIGNhbGwgbWF5IGZhaWwgaW4gYW4gdW5kZWZpbmVkIG1hbm5lciBpZiBlaXRoZXIgbWFw cGluZyBpcyBub3QKKyAqICAgICB0cmFja2VkIGJ5IDxoYW5kbGU+LgorICogIDIuIEFmdGVyIGV4 ZWN1dGluZyBhIGJhdGNoIG9mIHVubWFwcywgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IG5vIHN0YWxl CisgKiAgICAgbWFwcGluZ3Mgd2lsbCByZW1haW4gaW4gdGhlIGRldmljZSBvciBob3N0IFRMQnMu CisgKi8KK3N0cnVjdCBnbnR0YWJfdW5tYXBfYW5kX2R1cGxpY2F0ZSB7CisgICAgLyogSU4gcGFy YW1ldGVycy4gKi8KKyAgICB1aW50NjRfdCBob3N0X2FkZHI7CisgICAgdWludDY0X3QgbmV3X2Fk ZHI7CisgICAgZ3JhbnRfaGFuZGxlX3QgaGFuZGxlOworICAgIC8qIE9VVCBwYXJhbWV0ZXJzLiAq LworICAgIGludDE2X3QgIHN0YXR1czsgICAgICAgICAgICAgIC8qID0+IGVudW0gZ3JhbnRfc3Rh dHVzICovCit9OwordHlwZWRlZiBzdHJ1Y3QgZ250dGFiX3VubWFwX2FuZF9kdXBsaWNhdGUgZ250 dGFiX3VubWFwX2FuZF9kdXBsaWNhdGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGdudHRh Yl91bm1hcF9hbmRfZHVwbGljYXRlX3QpOworCiAjZW5kaWYgLyogX19YRU5fSU5URVJGQUNFX1ZF UlNJT05fXyAqLwogCiAvKgpAQCAtNjMxLDYgKzY1Myw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFO RExFKGdudHRhYl9zd2FwX2dyYW50X3JlZl90KTsKICNkZWZpbmUgR05UU1RfYmFkX2NvcHlfYXJn ICAgICgtMTApIC8qIGNvcHkgYXJndW1lbnRzIGNyb3NzIHBhZ2UgYm91bmRhcnkuICAgKi8KICNk ZWZpbmUgR05UU1RfYWRkcmVzc190b29fYmlnICgtMTEpIC8qIHRyYW5zZmVyIHBhZ2UgYWRkcmVz cyB0b28gbGFyZ2UuICAgICAgKi8KICNkZWZpbmUgR05UU1RfZWFnYWluICAgICAgICAgICgtMTIp IC8qIE9wZXJhdGlvbiBub3QgZG9uZTsgdHJ5IGFnYWluLiAgICAgICAgKi8KKyNkZWZpbmUgR05U U1RfZW5vc3lzICAgICAgICAgICgtMTMpIC8qIE9wZXJhdGlvbiBub3QgaW1wbGVtZW50ZWQuICAg ICAgICAgICAgKi8KIC8qIGAgfSAqLwogCiAjZGVmaW5lIEdOVFRBQk9QX2Vycm9yX21zZ3MgeyAg ICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94bGF0LmxzdCBiL3hl bi9pbmNsdWRlL3hsYXQubHN0CmluZGV4IGQ4MzIxMTAuLjJhZDhkODYgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3hsYXQubHN0CisrKyBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CkBAIC01MSw2ICs1 MSw3IEBACiA/ICAgICAgIGdyYW50X2VudHJ5X2hlYWRlciAgICAgICAgICAgICAgZ3JhbnRfdGFi bGUuaAogPwlncmFudF9lbnRyeV92MgkJCWdyYW50X3RhYmxlLmgKID8JZ250dGFiX3N3YXBfZ3Jh bnRfcmVmCQlncmFudF90YWJsZS5oCis/CWdudHRhYl91bm1hcF9hbmRfZHVwbGljYXRlCWdyYW50 X3RhYmxlLmgKID8Ja2V4ZWNfZXhlYwkJCWtleGVjLmgKICEJa2V4ZWNfaW1hZ2UJCQlrZXhlYy5o CiAhCWtleGVjX3JhbmdlCQkJa2V4ZWMuaAotLSAKMS43LjcuNSAoQXBwbGUgR2l0LTI2KQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==