From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v4 13/16] xen/grant: Switch {create, replace}_grant_p2m_mapping to typesafe MFN Date: Wed, 21 Feb 2018 14:02:56 +0000 Message-ID: <20180221140259.29360-14-julien.grall@arm.com> References: <20180221140259.29360-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180221140259.29360-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGN1cnJlbnQgcHJvdG90eXBlIGlzIHNsaWdodGx5IGNvbmZ1c2luZyBiZWNhdXNlIGl0IHRh a2VzIGEgZ3Vlc3QKcGh5c2ljYWwgYWRkcmVzcyBhbmQgYSBtYWNoaW5lIHBoeXNpY2FsIGZyYW1l IChub3QgYWRkcmVzcyEpLiBTd2l0Y2hpbmcgdG8KTUZOIHdpbGwgaW1wcm92ZSBzYWZldHkgYW5k IHJlZHVjZSB0aGUgY2hhbmNlIHRvIG1pc3Rha2VubHkgaW52ZXJ0IHRoZQoyIHBhcmFtZXRlcnMu CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gZ3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKLS0t CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxp ZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUu Y2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpD YzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBX aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgoKICAgIENoYW5nZXMgaW4gdjQ6CiAg ICAgICAgLSBQYXRjaCBhZGRlZAotLS0KIHhlbi9hcmNoL2FybS9tbS5jICAgICAgICAgICAgICAg ICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2dyYW50X3RhYmxlLmMgICAg ICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9wdi9ncmFudF90YWJsZS5jICAg ICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICAgICAg ICAgIHwgIDggKysrKy0tLS0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCAgICAg fCAgOSArKysrLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaCAgICAgfCAg NCArKy0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9ncmFudF90YWJsZS5oIHwgIDggKysrKy0t LS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcHYvZ3JhbnRfdGFibGUuaCAgfCAgOCArKysrLS0tLQog OCBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNoL2FybS9tbS5jCmluZGV4IGYxNzkw N2FjZTguLjQyNjhkZDVjMmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9tbS5jCisrKyBiL3hl bi9hcmNoL2FybS9tbS5jCkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIGdudHRhYl9tYXJrX2Rp cnR5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgbCkKICAgICB9CiB9CiAKLWludCBj cmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9u ZyBmcmFtZSwKK2ludCBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgYWRk ciwgbWZuX3QgZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MsIHVuc2lnbmVkIGludCBjYWNoZV9mbGFncykKIHsKICAgICBpbnQgcmM7CkBAIC0x NDM2LDcgKzE0MzYsNyBAQCBpbnQgY3JlYXRlX2dyYW50X2hvc3RfbWFwcGluZyh1bnNpZ25lZCBs b25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiAgICAgICAgIHQgPSBwMm1fZ3JhbnRfbWFw X3JvOwogCiAgICAgcmMgPSBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShjdXJyZW50LT5kb21haW4s IGdhZGRyX3RvX2dmbihhZGRyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9t Zm4oZnJhbWUpLCAwLCB0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1l LCAwLCB0KTsKIAogICAgIGlmICggcmMgKQogICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9l cnJvcjsKQEAgLTE0NDQsOCArMTQ0NCw4IEBAIGludCBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5n KHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKICAgICAgICAgcmV0dXJu IEdOVFNUX29rYXk7CiB9CiAKLWludCByZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZyh1bnNpZ25l ZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbWZuLAotICAgICAgICB1bnNpZ25lZCBsb25nIG5l d19hZGRyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCitpbnQgcmVwbGFjZV9ncmFudF9ob3N0X21hcHBp bmcodW5zaWduZWQgbG9uZyBhZGRyLCBtZm5fdCBtZm4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBuZXdfYWRkciwgdW5zaWduZWQgaW50IGZsYWdzKQogewog ICAgIGdmbl90IGdmbiA9IGdhZGRyX3RvX2dmbihhZGRyKTsKICAgICBzdHJ1Y3QgZG9tYWluICpk ID0gY3VycmVudC0+ZG9tYWluOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgaW50IHJlcGxhY2VfZ3Jh bnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBtZm4sCiAg ICAgaWYgKCBuZXdfYWRkciAhPSAwIHx8IChmbGFncyAmIEdOVE1BUF9jb250YWluc19wdGUpICkK ICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAKLSAgICByYyA9IGd1ZXN0X3Bo eXNtYXBfcmVtb3ZlX3BhZ2UoZCwgZ2ZuLCBfbWZuKG1mbiksIDApOworICAgIHJjID0gZ3Vlc3Rf cGh5c21hcF9yZW1vdmVfcGFnZShkLCBnZm4sIG1mbiwgMCk7CiAKICAgICByZXR1cm4gcmMgPyBH TlRTVF9nZW5lcmFsX2Vycm9yIDogR05UU1Rfb2theTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vZ3JhbnRfdGFibGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZ3JhbnRfdGFibGUuYwpp bmRleCA5Y2E5ZmUwNDI1Li5lY2Q3ZDA3OGFiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9ncmFudF90YWJsZS5jCkBAIC0y NSw3ICsyNSw3IEBACiAKICNpbmNsdWRlIDxhc20vcDJtLmg+CiAKLWludCBjcmVhdGVfZ3JhbnRf cDJtX21hcHBpbmcodWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKK2ludCBjcmVh dGVfZ3JhbnRfcDJtX21hcHBpbmcodWludDY0X3QgYWRkciwgbWZuX3QgZnJhbWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNhY2hlX2ZsYWdzKQogewpAQCAtNDEsMTQgKzQx LDE0IEBAIGludCBjcmVhdGVfZ3JhbnRfcDJtX21hcHBpbmcodWludDY0X3QgYWRkciwgdW5zaWdu ZWQgbG9uZyBmcmFtZSwKICAgICAgICAgcDJtdCA9IHAybV9ncmFudF9tYXBfcnc7CiAgICAgcmMg PSBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShjdXJyZW50LT5kb21haW4sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfZ2ZuKGFkZHIgPj4gUEFHRV9TSElGVCksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfbWZuKGZyYW1lKSwgUEFHRV9PUkRFUl80SywgcDJtdCk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSwgUEFHRV9PUkRFUl80Sywg cDJtdCk7CiAgICAgaWYgKCByYyApCiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9y OwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIEdOVFNUX29rYXk7CiB9CiAKLWludCByZXBsYWNl X2dyYW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCitp bnQgcmVwbGFjZV9ncmFudF9wMm1fbWFwcGluZyh1aW50NjRfdCBhZGRyLCBtZm5fdCBmcmFtZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG5ld19hZGRyLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBnZm4gPSAodW5zaWduZWQgbG9uZyko YWRkciA+PiBQQUdFX1NISUZUKTsKQEAgLTYwLDE1ICs2MCwxNSBAQCBpbnQgcmVwbGFjZV9ncmFu dF9wMm1fbWFwcGluZyh1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLAogICAgICAg ICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKIAogICAgIG9sZF9tZm4gPSBnZXRfZ2ZuKGQs IGdmbiwgJnR5cGUpOwotICAgIGlmICggIXAybV9pc19ncmFudCh0eXBlKSB8fCBtZm5feChvbGRf bWZuKSAhPSBmcmFtZSApCisgICAgaWYgKCAhcDJtX2lzX2dyYW50KHR5cGUpIHx8ICFtZm5fZXEo b2xkX21mbiwgZnJhbWUpICkKICAgICB7CiAgICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAgICAg ICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAgICJvbGQgbWFwcGlu ZyBpbnZhbGlkICh0eXBlICVkLCBtZm4gJSIgUFJJX21mbiAiLCBmcmFtZSAlbHgpXG4iLAotICAg ICAgICAgICAgICAgICB0eXBlLCBtZm5feChvbGRfbWZuKSwgZnJhbWUpOworICAgICAgICAgICAg ICAgICAib2xkIG1hcHBpbmcgaW52YWxpZCAodHlwZSAlZCwgbWZuICUiIFBSSV9tZm4gIiwgZnJh bWUgJSJQUklfbWZuIilcbiIsCisgICAgICAgICAgICAgICAgIHR5cGUsIG1mbl94KG9sZF9tZm4p LCBtZm5feChmcmFtZSkpOwogICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAg ICB9Ci0gICAgaWYgKCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZ2ZuKSwgX21m bihmcmFtZSksIFBBR0VfT1JERVJfNEspICkKKyAgICBpZiAoIGd1ZXN0X3BoeXNtYXBfcmVtb3Zl X3BhZ2UoZCwgX2dmbihnZm4pLCBmcmFtZSwgUEFHRV9PUkRFUl80SykgKQogICAgIHsKICAgICAg ICAgcHV0X2dmbihkLCBnZm4pOwogICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9ncmFudF90YWJsZS5jIGIveGVuL2FyY2gveDg2 L3B2L2dyYW50X3RhYmxlLmMKaW5kZXggNGRiYzU1MDM2Ni4uNDU4MDg1ZTFiNiAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L3B2L2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2dy YW50X3RhYmxlLmMKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBncmFudF90 b19wdGVfZmxhZ3ModW5zaWduZWQgaW50IGdyYW50X2ZsYWdzLAogICAgIHJldHVybiBwdGVfZmxh Z3M7CiB9CiAKLWludCBjcmVhdGVfZ3JhbnRfcHZfbWFwcGluZyh1aW50NjRfdCBhZGRyLCB1bnNp Z25lZCBsb25nIGZyYW1lLAoraW50IGNyZWF0ZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFk ZHIsIG1mbl90IGZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBmbGFncywgdW5zaWduZWQgaW50IGNhY2hlX2ZsYWdzKQogewogICAgIHN0cnVjdCB2Y3B1ICpj dXJyID0gY3VycmVudDsKQEAgLTYwLDcgKzYwLDcgQEAgaW50IGNyZWF0ZV9ncmFudF9wdl9tYXBw aW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiAgICAgbWZuX3QgZ2wxbWZu OwogICAgIGludCByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAKLSAgICBubDFlID0gbDFlX2Zy b21fcGZuKGZyYW1lLCBncmFudF90b19wdGVfZmxhZ3MoZmxhZ3MsIGNhY2hlX2ZsYWdzKSk7Cisg ICAgbmwxZSA9IGwxZV9mcm9tX21mbihmcmFtZSwgZ3JhbnRfdG9fcHRlX2ZsYWdzKGZsYWdzLCBj YWNoZV9mbGFncykpOwogICAgIG5sMWUgPSBhZGp1c3RfZ3Vlc3RfbDFlKG5sMWUsIGN1cnJkKTsK IAogICAgIC8qCkBAIC0xOTIsNyArMTkyLDcgQEAgc3RhdGljIGJvb2wgc3RlYWxfbGluZWFyX2Fk ZHJlc3ModW5zaWduZWQgbG9uZyBsaW5lYXIsIGwxX3BnZW50cnlfdCAqb3V0KQogICogbmV3X2Fk ZHIgaGFzIG9ubHkgZXZlciBiZWVuIGF2YWlsYWJsZSB2aWEgR05UQUJPUF91bm1hcF9hbmRfcmVw bGFjZSwgYW5kCiAgKiBvbmx5IHdoZW4gIShmbGFncyAmIEdOVE1BUF9jb250YWluc19wdGUpLgog ICovCi1pbnQgcmVwbGFjZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVk IGxvbmcgZnJhbWUsCitpbnQgcmVwbGFjZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIs IG1mbl90IGZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBuZXdf YWRkciwgdW5zaWduZWQgaW50IGZsYWdzKQogewogICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3Vy cmVudDsKQEAgLTI4MiwxNCArMjgyLDE0IEBAIGludCByZXBsYWNlX2dyYW50X3B2X21hcHBpbmco dWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKICAgICAgKiBDaGVjayB0aGF0IHRo ZSBhZGRyZXNzIHN1cHBsaWVkIGlzIGFjdHVhbGx5IG1hcHBlZCB0byBmcmFtZSAod2l0aAogICAg ICAqIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zKS4KICAgICAgKi8KLSAgICBpZiAoIHVubGlrZWx5 KGwxZV9nZXRfcGZuKG9sMWUpICE9IGZyYW1lKSB8fAorICAgIGlmICggdW5saWtlbHkoIW1mbl9l cShsMWVfZ2V0X21mbihvbDFlKSwgZnJhbWUpKSB8fAogICAgICAgICAgdW5saWtlbHkoKGwxZV9n ZXRfZmxhZ3Mob2wxZSkgXiBncmFudF9wdGVfZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgIChf UEFHRV9QUkVTRU5UIHwgX1BBR0VfUlcpKSApCiAgICAgewogICAgICAgICBnZHByaW50ayhYRU5M T0dfRVJSLAogICAgICAgICAgICAgICAgICAiUFRFICUiUFJJcHRlIiBmb3IgJSJQUkl4NjQiIGRv ZXNuJ3QgbWF0Y2ggZ3JhbnQgKCUiUFJJcHRlIilcbiIsCiAgICAgICAgICAgICAgICAgIGwxZV9n ZXRfaW50cHRlKG9sMWUpLCBhZGRyLAotICAgICAgICAgICAgICAgICBsMWVfZ2V0X2ludHB0ZShs MWVfZnJvbV9wZm4oZnJhbWUsIGdyYW50X3B0ZV9mbGFncykpKTsKKyAgICAgICAgICAgICAgICAg bDFlX2dldF9pbnRwdGUobDFlX2Zyb21fbWZuKGZyYW1lLCBncmFudF9wdGVfZmxhZ3MpKSk7CiAg ICAgICAgIGdvdG8gb3V0X3VubG9jazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v Z3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCA0OGM1NDc5MzBj Li5jNTU1YzFkNDUxIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIv eGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBtYXBfZ3JhbnRf cmVmKAogCiAgICAgICAgIGlmICggb3AtPmZsYWdzICYgR05UTUFQX2hvc3RfbWFwICkKICAgICAg ICAgewotICAgICAgICAgICAgcmMgPSBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKG9wLT5ob3N0 X2FkZHIsIGZyYW1lLCBvcC0+ZmxhZ3MsCisgICAgICAgICAgICByYyA9IGNyZWF0ZV9ncmFudF9o b3N0X21hcHBpbmcob3AtPmhvc3RfYWRkciwgX21mbihmcmFtZSksIG9wLT5mbGFncywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9mbGFncyk7CiAgICAg ICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKQogICAgICAgICAgICAgICAgIGdvdG8gdW5k b19vdXQ7CkBAIC0xMDc2LDcgKzEwNzYsNyBAQCBtYXBfZ3JhbnRfcmVmKAogICAgICAgICAgICAg ICAgIHR5cGVjbnQrKzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmMgPSBjcmVhdGVf Z3JhbnRfaG9zdF9tYXBwaW5nKG9wLT5ob3N0X2FkZHIsIGZyYW1lLCBvcC0+ZmxhZ3MsIDApOwor ICAgICAgICAgICAgcmMgPSBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKG9wLT5ob3N0X2FkZHIs IF9tZm4oZnJhbWUpLCBvcC0+ZmxhZ3MsIDApOwogICAgICAgICAgICAgaWYgKCByYyAhPSBHTlRT VF9va2F5ICkKICAgICAgICAgICAgICAgICBnb3RvIHVuZG9fb3V0OwogCkBAIC0xMTUzLDcgKzEx NTMsNyBAQCBtYXBfZ3JhbnRfcmVmKAogIHVuZG9fb3V0OgogICAgIGlmICggaG9zdF9tYXBfY3Jl YXRlZCApCiAgICAgewotICAgICAgICByZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZyhvcC0+aG9z dF9hZGRyLCBmcmFtZSwgMCwgb3AtPmZsYWdzKTsKKyAgICAgICAgcmVwbGFjZV9ncmFudF9ob3N0 X21hcHBpbmcob3AtPmhvc3RfYWRkciwgX21mbihmcmFtZSksIDAsIG9wLT5mbGFncyk7CiAgICAg ICAgIGdudHRhYl9mbHVzaF90bGIobGQpOwogICAgIH0KIApAQCAtMTMzOSw3ICsxMzM5LDcgQEAg dW5tYXBfY29tbW9uKAogICAgIGlmICggb3AtPmhvc3RfYWRkciAmJiAoZmxhZ3MgJiBHTlRNQVBf aG9zdF9tYXApICkKICAgICB7CiAgICAgICAgIGlmICggKHJjID0gcmVwbGFjZV9ncmFudF9ob3N0 X21hcHBpbmcob3AtPmhvc3RfYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvcC0+ZnJhbWUsIG9wLT5uZXdfYWRkciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKG9wLT5mcmFtZSksIG9wLT5uZXdfYWRk ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykp IDwgMCApCiAgICAgICAgICAgICBnb3RvIGFjdF9yZWxlYXNlX291dDsKIApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9n cmFudF90YWJsZS5oCmluZGV4IDBkZmRjNTU3N2YuLmZmZmYxOGQ0NTYgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJt L2dyYW50X3RhYmxlLmgKQEAgLTEzLDEyICsxMywxMSBAQCBzdHJ1Y3QgZ3JhbnRfdGFibGVfYXJj aCB7CiB9OwogCiB2b2lkIGdudHRhYl9jbGVhcl9mbGFnKHVuc2lnbmVkIGxvbmcgbnIsIHVpbnQx Nl90ICphZGRyKTsKLWludCBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcg Z3BhZGRyLAotICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzLCB1 bnNpZ25lZCBpbnQKLSAgICAgICAgY2FjaGVfZmxhZ3MpOworaW50IGNyZWF0ZV9ncmFudF9ob3N0 X21hcHBpbmcodW5zaWduZWQgbG9uZyBncGFkZHIsIG1mbl90IG1mbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGNhY2hlX2Zs YWdzKTsKICNkZWZpbmUgZ250dGFiX2hvc3RfbWFwcGluZ19nZXRfcGFnZV90eXBlKHJvLCBsZCwg cmQpICgwKQotaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgZ3Bh ZGRyLCB1bnNpZ25lZCBsb25nIG1mbiwKLSAgICAgICAgdW5zaWduZWQgbG9uZyBuZXdfZ3BhZGRy LCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKHVu c2lnbmVkIGxvbmcgZ3BhZGRyLCBtZm5fdCBtZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBuZXdfZ3BhZGRyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogdm9p ZCBnbnR0YWJfbWFya19kaXJ0eShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGwpOwog I2RlZmluZSBnbnR0YWJfY3JlYXRlX3N0YXR1c19wYWdlKGQsIHQsIGkpIGRvIHt9IHdoaWxlICgw KQogI2RlZmluZSBnbnR0YWJfc3RhdHVzX2dtZm4oZCwgdCwgaSkgKDApCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2dy YW50X3RhYmxlLmgKaW5kZXggZDkxNTdlNDQxNy4uZTQwYWM4ZTNlNyAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYv Z3JhbnRfdGFibGUuaApAQCAtMjEsNyArMjEsNyBAQCBzdHJ1Y3QgZ3JhbnRfdGFibGVfYXJjaCB7 CiAgKiBDYWxsZXIgbXVzdCBvd24gY2FsbGVyJ3MgQklHTE9DSywgaXMgcmVzcG9uc2libGUgZm9y IGZsdXNoaW5nIHRoZSBUTEIsIGFuZAogICogbXVzdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBw YWdlLgogICovCi1zdGF0aWMgaW5saW5lIGludCBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKHVp bnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCitzdGF0aWMgaW5saW5lIGludCBjcmVh dGVfZ3JhbnRfaG9zdF9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIG1mbl90IGZyYW1lLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBjYWNoZV9mbGFncykKIHsKQEAgLTMwLDcgKzMwLDcgQEAgc3RhdGljIGlubGluZSBpbnQgY3Jl YXRlX2dyYW50X2hvc3RfbWFwcGluZyh1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1l LAogICAgIHJldHVybiBjcmVhdGVfZ3JhbnRfcHZfbWFwcGluZyhhZGRyLCBmcmFtZSwgZmxhZ3Ms IGNhY2hlX2ZsYWdzKTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgcmVwbGFjZV9ncmFudF9ob3N0 X21hcHBpbmcodWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKK3N0YXRpYyBpbmxp bmUgaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIG1mbl90IGZy YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgbmV3X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZ3JhbnRfdGFibGUu aAppbmRleCA3MTFjZTliNTYwLi5hNTYxMjU4NWIzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9ncmFudF90YWJsZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2dy YW50X3RhYmxlLmgKQEAgLTIzLDI0ICsyMywyNCBAQAogCiAjaWZkZWYgQ09ORklHX0hWTQogCi1p bnQgY3JlYXRlX2dyYW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcg ZnJhbWUsCitpbnQgY3JlYXRlX2dyYW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIG1mbl90 IGZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjYWNoZV9mbGFncyk7 Ci1pbnQgcmVwbGFjZV9ncmFudF9wMm1fbWFwcGluZyh1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBs b25nIGZyYW1lLAoraW50IHJlcGxhY2VfZ3JhbnRfcDJtX21hcHBpbmcodWludDY0X3QgYWRkciwg bWZuX3QgZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBuZXdf YWRkciwgdW5zaWduZWQgaW50IGZsYWdzKTsKIAogI2Vsc2UKIAogI2luY2x1ZGUgPHB1YmxpYy9n cmFudF90YWJsZS5oPgogCi1zdGF0aWMgaW5saW5lIGludCBjcmVhdGVfZ3JhbnRfcDJtX21hcHBp bmcodWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKK3N0YXRpYyBpbmxpbmUgaW50 IGNyZWF0ZV9ncmFudF9wMm1fbWFwcGluZyh1aW50NjRfdCBhZGRyLCBtZm5fdCBmcmFtZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IGNhY2hlX2ZsYWdzKQogewogICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOwogfQog Ci1zdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dyYW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFk ZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCitzdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dyYW50 X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIG1mbl90IGZyYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBuZXdfYWRkciwgdW5zaWduZWQg aW50IGZsYWdzKQogewogICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9wdi9ncmFudF90YWJsZS5oCmluZGV4IDU1NmU2OGYwZWIuLjg1NDQyYjYwNzQgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvZ3JhbnRfdGFibGUuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L3B2L2dyYW50X3RhYmxlLmgKQEAgLTIzLDIzICsyMywyMyBAQAogCiAjaWZk ZWYgQ09ORklHX1BWCiAKLWludCBjcmVhdGVfZ3JhbnRfcHZfbWFwcGluZyh1aW50NjRfdCBhZGRy LCB1bnNpZ25lZCBsb25nIGZyYW1lLAoraW50IGNyZWF0ZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2 NF90IGFkZHIsIG1mbl90IGZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGNhY2hlX2ZsYWdzKTsKLWludCByZXBsYWNlX2dy YW50X3B2X21hcHBpbmcodWludDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKK2ludCBy ZXBsYWNlX2dyYW50X3B2X21hcHBpbmcodWludDY0X3QgYWRkciwgbWZuX3QgZnJhbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG5ld19hZGRyLCB1bnNpZ25lZCBpbnQg ZmxhZ3MpOwogCiAjZWxzZQogCiAjaW5jbHVkZSA8cHVibGljL2dyYW50X3RhYmxlLmg+CiAKLXN0 YXRpYyBpbmxpbmUgaW50IGNyZWF0ZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVu c2lnbmVkIGxvbmcgZnJhbWUsCitzdGF0aWMgaW5saW5lIGludCBjcmVhdGVfZ3JhbnRfcHZfbWFw cGluZyh1aW50NjRfdCBhZGRyLCBtZm5fdCBmcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjYWNoZV9mbGFncykKIHsKICAg ICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgcmVw bGFjZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUs CitzdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dyYW50X3B2X21hcHBpbmcodWludDY0X3QgYWRk ciwgbWZuX3QgZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgbmV3X2FkZHIsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICByZXR1cm4g R05UU1RfZ2VuZXJhbF9lcnJvcjsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=