From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 05/13] iommu: don't domain_crash() inside iommu_map/unmap_page() Date: Tue, 17 Jul 2018 14:38:08 +0100 Message-ID: <20180717133816.37958-6-paul.durrant@citrix.com> References: <20180717133816.37958-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ffQBN-0005lS-31 for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:38:25 +0000 In-Reply-To: <20180717133816.37958-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Kevin Tian , Stefano Stabellini , Jun Nakajima , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VHVybiBpb21tdV9tYXAvdW5tYXBfcGFnZSgpIGludG8gc3RyYWlnaHRmb3J3YXJkIHdyYXBwZXJz IHRoYXQgY2hlY2sgdGhlCmV4aXN0ZW5jZSBvZiB0aGUgcmVsZXZhbnQgaW9tbXVfb3AgYW5kIGNh bGwgdGhyb3VnaCB0byBpdC4gVGhpcyBtYWtlcyB0aGVtCnVzYWJsZSBieSBQViBJT01NVSBjb2Rl IHRvIGJlIGRlbGl2ZXJlZCBpbiBmdXR1cmUgcGF0Y2hlcy4KTGVhdmUgdGhlIGRlY2lzaW9uIG9u IHdoZXRoZXIgdG8gaW52b2tlIGRvbWFpbl9jcmFzaCgpIHVwIHRvIHRoZSBjYWxsZXIuClRoaXMg aGFzIHRoZSBhZGRlZCBiZW5lZml0IHRoYXQgdGhlIChtb2R1bGUvbGluZSBudW1iZXIpIG1lc3Nh Z2UgdGhhdApkb21haW5fY3Jhc2goKSBzcGl0cyBvdXQgd2lsbCBiZSBtb3JlIGluZGljYXRpdmUg b2Ygd2hlcmUgdGhlIHByb2JsZW0gbGllcy4KCk5PVEU6IFRoaXMgcGF0Y2ggaW5jbHVkZXMgb25l IGJpdCBvZiBjbGVhbi11cCBpbiBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KCkKICAgICAgcmVwbGFj aW5nIHVzZSBvZiBwMm0tPmRvbWFpbiB3aXRoIHRoZSBkb21haW4gcG9pbnRlciBwYXNzZWQgaW50 byB0aGUKICAgICAgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu ZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1 bmxhcEBldS5jaXRyaXguY29tPgpSZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4 LmNvbT4KLS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+ CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3Nv bkBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzog S29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogVGltIERl ZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5j b20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IEdlb3JnZSBEdW5s YXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnYyOgogLSBOZXcgaW4gdjIuCi0tLQog eGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgfCAgNCArKysrCiB4ZW4vYXJjaC94 ODYvbW0uYyAgICAgICAgICAgICAgICAgICB8ICAzICsrKwogeGVuL2FyY2gveDg2L21tL3AybS1l cHQuYyAgICAgICAgICAgfCAgMyArKysKIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAgICAgICAg ICAgIHwgIDMgKysrCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICB8IDI0ICsr KysrKysrKysrKysrKysrKysrLS0tLQogeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jICAgICAgICAg ICAgfCAgOCArKysrKysrKwogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgICAgICAgfCAg MyArKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgIHwgMTIgLS0tLS0tLS0t LS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyB8ICA0ICsrKysKIDkgZmls ZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3AybS5jCmluZGV4IGQ3MTlkYjFl MzAuLmViMzk4NjFiNzMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9wMm0uYworKysgYi94ZW4v YXJjaC9hcm0vcDJtLmMKQEAgLTk1Myw4ICs5NTMsMTIgQEAgc3RhdGljIGludCBfX3AybV9zZXRf ZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwKIAogICAgIGlmICggbmVlZF9pb21tdShwMm0t PmRvbWFpbikgJiYKICAgICAgICAgIChscGFlX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFlX3ZhbGlk KCplbnRyeSkpICkKKyAgICB7CiAgICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1c2gocDJtLT5k b21haW4sIF9iZm4oZ2ZuX3goc2dmbikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDFVTCA8PCBwYWdlX29yZGVyKTsKKyAgICAgICAgaWYgKCB1bmxpa2VseShyYykgJiYgIWlzX2hh cmR3YXJlX2RvbWFpbihwMm0tPmRvbWFpbikgKQorICAgICAgICAgICAgZG9tYWluX2NyYXNoKHAy bS0+ZG9tYWluKTsKKyAgICB9CiAgICAgZWxzZQogICAgICAgICByYyA9IDA7CiAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggOTkwNzBmOTE2 ZC4uMDg4Nzg1NzRmMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2Fy Y2gveDg2L21tLmMKQEAgLTI3MzcsNiArMjczNyw5IEBAIHN0YXRpYyBpbnQgX2dldF9wYWdlX3R5 cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgICAgICAg ICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIF9iZm4obWZuX3gobWZuKSksIG1m biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVh ZGFibGUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1V Rl93cml0YWJsZSk7CisKKyAgICAgICAgICAgIGlmICggdW5saWtlbHkoaW9tbXVfcmV0KSAmJiAh aXNfaGFyZHdhcmVfZG9tYWluKGQpICkKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7 CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0 LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmluZGV4IDIwODliNTIzMmQuLjMzZTc3OTAz ZDYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3AybS1lcHQuYwpAQCAtODk1LDYgKzg5NSw5IEBAIG91dDoKICAgICAgICAgICAgICAg ICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CiAgICAg ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSAmJiAhaXNfaGFy ZHdhcmVfZG9tYWluKGQpICkKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAg ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCBhNDQxYWYzODhhLi45ZmYwYjNmZTdhIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3Ay bS1wdC5jCkBAIC03MTcsNiArNzE3LDkgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2Rv bWFpbiAqcDJtLCBnZm5fdCBnZm5fLCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAg ICByYyA9IHJldDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBpZiAo IHVubGlrZWx5KHJjKSAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKHAybS0+ZG9tYWluKSApCisgICAg ICAgICAgICBkb21haW5fY3Jhc2gocDJtLT5kb21haW4pOwogICAgIH0KIAogICAgIC8qCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5k ZXggZThhM2MwNGQwOS4uZmZmYTdhYTMyYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3Ay bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpAQCAtNzIzLDYgKzcyMyw5IEBAIHAybV9y ZW1vdmVfcGFnZShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbl9sLCB1 bnNpZ25lZCBsb25nIG1mbiwKICAgICAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAg ICAgICAgICAgIHJjID0gcmV0OwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIHVu bGlrZWx5KHJjKSAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKHAybS0+ZG9tYWluKSApCisgICAgICAg ICAgICAgICAgZG9tYWluX2NyYXNoKHAybS0+ZG9tYWluKTsKICAgICAgICAgfQogCiAgICAgICAg IHJldHVybiByYzsKQEAgLTc4OCw2ICs3OTEsOSBAQCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShz dHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIG1mbl90IG1mbiwKICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShkLCBiZm5fYWRkKGJmbiwgaSkpICkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICAgICAgICAgICAgICBp ZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluX2NyYXNoKGQpOworCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsKICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMTU2LDEyICsxMTYyLDE3IEBAIGludCBzZXRf aWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2ws CiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKICAgICBp bnQgcmV0OwogCi0gICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKHAybS0+ZG9tYWluKSAp CisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKICAgICB7CiAgICAgICAgIGlm ICggIW5lZWRfaW9tbXUoZCkgKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVy biBpb21tdV9tYXBfcGFnZShkLCBfYmZuKGdmbl9sKSwgX21mbihnZm5fbCksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpOwor CisgICAgICAgIHJldCA9IGlvbW11X21hcF9wYWdlKGQsIF9iZm4oZ2ZuX2wpLCBfbWZuKGdmbl9s KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVG X3dyaXRhYmxlKTsKKyAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICYmICFpc19oYXJkd2FyZV9k b21haW4oZCkgKQorICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworCisgICAgICAgIHJldHVy biByZXQ7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpAQCAtMTI1MSw3ICsx MjYyLDEyIEBAIGludCBjbGVhcl9pZGVudGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm5fbCkKICAgICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkg KQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBpb21tdV91bm1hcF9wYWdl KGQsIF9iZm4oZ2ZuX2wpKTsKKworICAgICAgICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIF9i Zm4oZ2ZuX2wpKTsKKyAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICYmICFpc19oYXJkd2FyZV9k b21haW4oZCkgKQorICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworCisgICAgICAgIHJldHVy biByZXQ7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpkaWZmIC0tZ2l0IGEv eGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4 IDI2MWUzYjE3YTAuLmExNzljOWNmMmEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFi bGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTExNTUsNiArMTE1NSw5IEBA IG1hcF9ncmFudF9yZWYoCiAgICAgICAgIH0KICAgICAgICAgaWYgKCBlcnIgKQogICAgICAgICB7 CisgICAgICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4obGQpICkKKyAgICAgICAgICAg ICAgICBkb21haW5fY3Jhc2gobGQpOworCiAgICAgICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxn dCwgcmd0KTsKICAgICAgICAgICAgIHJjID0gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICAgICAg ICAgIGdvdG8gdW5kb19vdXQ7CkBAIC0xNDIxLDcgKzE0MjQsMTIgQEAgdW5tYXBfY29tbW9uKAog ICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsKIAogICAgICAgICBpZiAoIGVyciAp CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihsZCkgKQor ICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChsZCk7CisKICAgICAgICAgICAgIHJjID0gR05U U1RfZ2VuZXJhbF9lcnJvcjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8qIElmIGp1c3QgdW5t YXBwZWQgYSB3cml0YWJsZSBtYXBwaW5nLCBtYXJrIGFzIGRpcnRpZWQgKi8KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IGUxNjE2ZWRh MzIuLjkwMTJiODNhYWUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVu L2NvbW1vbi9tZW1vcnkuYwpAQCAtODQwLDYgKzg0MCw5IEBAIGludCB4ZW5tZW1fYWRkX3RvX3Bo eXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwK ICAgICAgICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1c2goZCwgX2Jmbih4YXRwLT5ncGZuIC0gZG9u ZSksIGRvbmUpOwogICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgJiYgcmMgPj0gMCApCiAgICAg ICAgICAgICByYyA9IHJldDsKKworICAgICAgICBpZiAoIHVubGlrZWx5KHJjIDwgMCkgJiYgIWlz X2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAg fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IGNmNzBhNWM0M2MuLjlkNGVk NmQyNzUgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMjcyLDkgKzI3Miw2IEBAIGludCBp b21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4sIG1mbl90IG1mbiwKICAg ICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCiAgICAgICAgICAgICAgICAgICAgImQlZDogSU9N TVUgbWFwcGluZyBiZm4gJSJQUklfYmZuIiB0byBtZm4gJSJQUklfbWZuIiBmYWlsZWQ6ICVkXG4i LAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgYmZuX3goYmZuKSwgbWZuX3gobWZu KSwgcmMpOwotCi0gICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAg ICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwpAQCAtMjk1LDkg KzI5Miw2IEBAIGludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJm bikKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCiAgICAgICAgICAgICAgICAgICAgImQl ZDogSU9NTVUgdW5tYXBwaW5nIGJmbiAlIlBSSV9iZm4iIGZhaWxlZDogJWRcbiIsCiAgICAgICAg ICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBiZm5feChiZm4pLCByYyk7Ci0KLSAgICAgICAgaWYg KCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsK ICAgICB9CiAKICAgICByZXR1cm4gcmM7CkBAIC0zMzUsOSArMzI5LDYgQEAgaW50IGlvbW11X2lv dGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwgdW5zaWduZWQgaW50IHBhZ2Vf Y291bnQpCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAgICAgICAgICAgICAg ICJkJWQ6IElPTU1VIElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGJmbiAlIlBSSV9iZm4iLCBwYWdl IGNvdW50ICV1XG4iLAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMsIGJmbl94 KGJmbiksIHBhZ2VfY291bnQpOwotCi0gICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihk KSApCi0gICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJj OwpAQCAtMzU4LDkgKzM0OSw2IEBAIGludCBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRv bWFpbiAqZCkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCiAgICAgICAgICAgICAgICAg ICAgImQlZDogSU9NTVUgSU9UTEIgZmx1c2ggYWxsIGZhaWxlZDogJWRcbiIsCiAgICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCByYyk7Ci0KLSAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVf ZG9tYWluKGQpICkKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICB9CiAKICAgICBy ZXR1cm4gcmM7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCmluZGV4IDM3OTg4MmM2OTAu LjA5NTczNzIyYmQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCkBAIC0xMDQsNyAr MTA0LDExIEBAIGludCBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoc3RydWN0IGRvbWFp biAqZCkKICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7CiAKICAgICBp ZiAoICFyYyApCisgICAgewogICAgICAgICByYyA9IGlvbW11X2lvdGxiX2ZsdXNoX2FsbChkKTsK KyAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQp OworICAgIH0KIAogICAgIGlmICggcmMgJiYgcmMgIT0gLUVSRVNUQVJUICkKICAgICAgICAgaW9t bXVfdGVhcmRvd24oZCk7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs