From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 04/14] iommu: don't domain_crash() inside iommu_map/unmap_page() Date: Thu, 23 Aug 2018 10:47:01 +0100 Message-ID: <20180823094711.21376-5-paul.durrant@citrix.com> References: <20180823094711.21376-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fsmD1-00005M-0J for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 09:47:19 +0000 In-Reply-To: <20180823094711.21376-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 , Wei Liu , Jun Nakajima , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBpbXBsaWNpdCBkb21haW5fY3Jhc2goKSBmcm9tIGlvbW11 X21hcCgpLAp1bm1hcF9wYWdlKCkgYW5kIGlvbW11X2lvdGxiX2ZsdXNoKCkgYW5kIHR1cm5zIHRo ZW0gaW50byBzdHJhaWdodGZvcndhcmQKd3JhcHBlcnMgdGhhdCBjaGVjayB0aGUgZXhpc3RlbmNl IG9mIHRoZSByZWxldmFudCBpb21tdV9vcCBhbmQgY2FsbAp0aHJvdWdoIHRvIGl0LiBUaGlzIG1h a2VzIHRoZW0gdXNhYmxlIGJ5IFBWIElPTU1VIGNvZGUgdG8gYmUgZGVsaXZlcmVkIGluCmZ1dHVy ZSBwYXRjaGVzLgpUaGlzIHBhdGNoIGFkZHMgYSBoZWxwZXIgbWFjcm8sIGRvbXVfY3Jhc2goKSwg dGhhdCB3aWxsIG9ubHkgaW52b2tlCmRvbWFpbl9jcmFzaCgpIGlmIHRoZSBkb21haW4gaXMgbm90 IHRoZSBoYXJkd2FyZSBkb21haW4gYW5kIG1vZGlmaWVzIGNhbGxlcnMKb2YgaW9tbXVfbWFwKCks IHVubWFwX3BhZ2UoKSBhbmQgaW9tbXVfaW90bGJfZmx1c2goKSB0byB1c2UgdGhpcyBzaG91bGQK YW4gb3BlcmF0aW9uIGZhaWwuCgpOT1RFOiBUaGlzIHBhdGNoIGluY2x1ZGVzIG9uZSBiaXQgb2Yg Y2xlYW4tdXAgaW4gc2V0X2lkZW50aXR5X3AybV9lbnRyeSgpCiAgICAgIHJlcGxhY2luZyB1c2Ug b2YgcDJtLT5kb21haW4gd2l0aCB0aGUgZG9tYWluIHBvaW50ZXIgcGFzc2VkIGludG8gdGhlCiAg ICAgIGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA Y2l0cml4LmNvbT4KLS0tCkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzogU3Rl ZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogSnVsaWVuIEdyYWxs IDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4K Q2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3Jn PgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDYzogS2V2aW4gVGlh biA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFw QGV1LmNpdHJpeC5jb20+Cgp2NjoKIC0gSW50cm9kdWNlIGRvbXVfY3Jhc2goKSAoaWRlYSBzdWdn ZXN0ZWQgYnkgS2V2aW4sIG5hbWUgc3VnZ2VzdGVkIGJ5IEphbikKICAgdG8gY3Jhc2ggbm9uLWhh cmR3YXJlIGRvbWFpbnMuCiAtIERyb3BwZWQgV2VpJ3MgYW5kIEdlb3JnZSdzIFItYiBiZWNhdXNl IG9mIGNoYW5nZS4KCnYyOgogLSBOZXcgaW4gdjIuCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAg ICAgICAgICAgICAgICAgfCAgNCArKysrCiB4ZW4vYXJjaC94ODYvbW0uYyAgICAgICAgICAgICAg ICAgICB8ICAzICsrKwogeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAgICAgICAgfCAgMyAr KysKIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgIHwgIDMgKysrCiB4ZW4vYXJj aC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICB8IDIyICsrKysrKysrKysrKysrKysrKy0tLS0K IHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgIHwgIDQgKysrKwogeGVuL2NvbW1v bi9tZW1vcnkuYyAgICAgICAgICAgICAgICAgfCAgMyArKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMgICAgIHwgMTIgLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC94ODYvaW9tbXUuYyB8ICA0ICsrKysKIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgICAg ICAgIHwgIDUgKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2Fy bS9wMm0uYwppbmRleCAwNzIwMjlkZmJlLi40YThjYWM1MDUwIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC05NTcsOCArOTU3LDEyIEBA IHN0YXRpYyBpbnQgX19wMm1fc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAKICAg ICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICYmCiAgICAgICAgICAobHBhZV9pc192YWxp ZChvcmlnX3B0ZSkgfHwgbHBhZV9pc192YWxpZCgqZW50cnkpKSApCisgICAgewogICAgICAgICBy YyA9IGlvbW11X2lvdGxiX2ZsdXNoKHAybS0+ZG9tYWluLCBfYmZuKGdmbl94KHNnZm4pKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxVUwgPDwgcGFnZV9vcmRlcik7CisgICAgICAg IGlmICggdW5saWtlbHkocmMpICkKKyAgICAgICAgICAgIGRvbXVfY3Jhc2gocDJtLT5kb21haW4p OworICAgIH0KICAgICBlbHNlCiAgICAgICAgIHJjID0gMDsKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCA5ZTlmYjk0MjFlLi5mNTk4Njc0 ZjBjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0u YwpAQCAtMjc2MCw2ICsyNzYwLDkgQEAgc3RhdGljIGludCBfZ2V0X3BhZ2VfdHlwZShzdHJ1Y3Qg cGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgaW9t bXVfcmV0ID0gaW9tbXVfbWFwX3BhZ2UoZCwgX2JmbihtZm5feChtZm4pKSwgbWZuLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3dyaXRhYmxl KTsKKworICAgICAgICAgICAgaWYgKCB1bmxpa2VseShpb21tdV9yZXQpICkKKyAgICAgICAgICAg ICAgICBkb211X2NyYXNoKGQpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCAy MDg5YjUyMzJkLi5jOWUxYTdlMjg4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVw dC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKQEAgLTg5NSw2ICs4OTUsOSBAQCBv dXQ6CiAgICAgICAgICAgICAgICAgICAgIGlmICggIXJjICkKICAgICAgICAgICAgICAgICAgICAg ICAgIHJjID0gcmV0OwogICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCB1bmxp a2VseShyYykgKQorICAgICAgICAgICAgICAgIGRvbXVfY3Jhc2goZCk7CiAgICAgICAgIH0KICAg ICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tcHQuYwppbmRleCBhNDQxYWYzODhhLi4zYjhkMTg0MDU0IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCkBA IC03MTcsNiArNzE3LDkgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJt LCBnZm5fdCBnZm5fLCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICByYyA9IHJl dDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBpZiAoIHVubGlrZWx5 KHJjKSApCisgICAgICAgICAgICBkb211X2NyYXNoKHAybS0+ZG9tYWluKTsKICAgICB9CiAKICAg ICAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21t L3AybS5jCmluZGV4IGZiZjY3ZGVmNTAuLjc1NTMyOTM2NmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTcyNCw2ICs3MjQs OSBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9u ZyBnZm5fbCwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQog ICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKICAgICAgICAgICAgIH0KKworICAgICAgICAg ICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAgICAgIGRvbXVfY3Jhc2gocDJtLT5k b21haW4pOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHJjOwpAQCAtNzg5LDYgKzc5Miw3 IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwg bWZuX3QgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdl KGQsIGJmbl9hZGQoYmZuLCBpKSkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogCisgICAgICAgICAgICAgICAgICAgIGRvbXVfY3Jhc2goZCk7CiAgICAgICAgICAgICAg ICAgICAgIHJldHVybiByYzsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0x MTU3LDEyICsxMTYxLDE3IEBAIGludCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9 IHAybV9nZXRfaG9zdHAybShkKTsKICAgICBpbnQgcmV0OwogCi0gICAgaWYgKCAhcGFnaW5nX21v ZGVfdHJhbnNsYXRlKHAybS0+ZG9tYWluKSApCisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNs YXRlKGQpICkKICAgICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkgKQogICAgICAgICAg ICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBpb21tdV9tYXBfcGFnZShkLCBfYmZuKGdmbl9s KSwgX21mbihnZm5fbCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVh ZGFibGUgfCBJT01NVUZfd3JpdGFibGUpOworCisgICAgICAgIHJldCA9IGlvbW11X21hcF9wYWdl KGQsIF9iZm4oZ2ZuX2wpLCBfbWZuKGdmbl9sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgaWYgKCB1bmxp a2VseShyZXQpICkKKyAgICAgICAgICAgIGRvbXVfY3Jhc2goZCk7CisKKyAgICAgICAgcmV0dXJu IHJldDsKICAgICB9CiAKICAgICBnZm5fbG9jayhwMm0sIGdmbiwgMCk7CkBAIC0xMjUyLDcgKzEy NjEsMTIgQEAgaW50IGNsZWFyX2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBsb25nIGdmbl9sKQogICAgIHsKICAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSAp CiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGlvbW11X3VubWFwX3BhZ2Uo ZCwgX2JmbihnZm5fbCkpOworCisgICAgICAgIHJldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgX2Jm bihnZm5fbCkpOworICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgKQorICAgICAgICAgICAgZG9t dV9jcmFzaChkKTsKKworICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KIAogICAgIGdmbl9sb2Nr KHAybSwgZ2ZuLCAwKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hl bi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBhZjQxMTMzOTUzLi5lNjk0YTRiZjE2IDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jCkBAIC0xMTU0LDYgKzExNTQsNyBAQCBtYXBfZ3JhbnRfcmVmKAogICAgICAgICB9CiAg ICAgICAgIGlmICggZXJyICkKICAgICAgICAgeworICAgICAgICAgICAgZG9tdV9jcmFzaChsZCk7 CiAgICAgICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsKICAgICAgICAgICAgIHJj ID0gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICAgICAgICAgIGdvdG8gdW5kb19vdXQ7CkBAIC0x NDA2LDcgKzE0MDcsMTAgQEAgdW5tYXBfY29tbW9uKAogICAgICAgICBkb3VibGVfZ3RfdW5sb2Nr KGxndCwgcmd0KTsKIAogICAgICAgICBpZiAoIGVyciApCisgICAgICAgIHsKKyAgICAgICAgICAg IGRvbXVfY3Jhc2gobGQpOwogICAgICAgICAgICAgcmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwor ICAgICAgICB9CiAgICAgfQogCiAgICAgLyogSWYganVzdCB1bm1hcHBlZCBhIHdyaXRhYmxlIG1h cHBpbmcsIG1hcmsgYXMgZGlydGllZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnku YyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggOGJhODkyMWM3OS4uMmU0Y2Q4Y2RmZCAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBA IC04NDEsNiArODQxLDkgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcChzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwICp4YXRwLAogICAgICAgICByZXQgPSBpb21t dV9pb3RsYl9mbHVzaChkLCBfYmZuKHhhdHAtPmdwZm4gLSBkb25lKSwgZG9uZSk7CiAgICAgICAg IGlmICggdW5saWtlbHkocmV0KSAmJiByYyA+PSAwICkKICAgICAgICAgICAgIHJjID0gcmV0Owor CisgICAgICAgIGlmICggdW5saWtlbHkocmMgPCAwKSApCisgICAgICAgICAgICBkb211X2NyYXNo KGQpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCBkOWVjNjY3 OTQ1Li5mNzVjYWIxMzBkIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTI3Miw5ICsyNzIs NiBAQCBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuLCBtZm5f dCBtZm4sCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAgICAgICAgICAgICAg ICJkJWQ6IElPTU1VIG1hcHBpbmcgYmZuICUiUFJJX2JmbiIgdG8gbWZuICUiUFJJX21mbiIgZmFp bGVkOiAlZFxuIiwKICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGJmbl94KGJmbiks IG1mbl94KG1mbiksIHJjKTsKLQotICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkg KQotICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgIH0KIAogICAgIHJldHVybiByYzsK QEAgLTI5NSw5ICsyOTIsNiBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpk LCBiZm5fdCBiZm4pCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAgICAgICAg ICAgICAgICJkJWQ6IElPTU1VIHVubWFwcGluZyBiZm4gJSJQUklfYmZuIiBmYWlsZWQ6ICVkXG4i LAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgYmZuX3goYmZuKSwgcmMpOwotCi0g ICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAgICAgICBkb21haW5f Y3Jhc2goZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwpAQCAtMzM1LDkgKzMyOSw2IEBAIGlu dCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4sIHVuc2lnbmVk IGludCBwYWdlX2NvdW50KQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKICAgICAgICAg ICAgICAgICAgICAiZCVkOiBJT01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBiZm4gJSJQUklf YmZuIiwgcGFnZSBjb3VudCAldVxuIiwKICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQs IHJjLCBiZm5feChiZm4pLCBwYWdlX2NvdW50KTsKLQotICAgICAgICBpZiAoICFpc19oYXJkd2Fy ZV9kb21haW4oZCkgKQotICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgIH0KIAogICAg IHJldHVybiByYzsKQEAgLTM1OCw5ICszNDksNiBAQCBpbnQgaW9tbXVfaW90bGJfZmx1c2hfYWxs KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAg ICAgICAgICAgICAgICJkJWQ6IElPTU1VIElPVExCIGZsdXNoIGFsbCBmYWlsZWQ6ICVkXG4iLAog ICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMpOwotCi0gICAgICAgIGlmICggIWlz X2hhcmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAg fQogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv eDg2L2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCAz Nzk4ODJjNjkwLi4wOTU3MzcyMmJkIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC94ODYvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpA QCAtMTA0LDcgKzEwNCwxMSBAQCBpbnQgYXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0 cnVjdCBkb21haW4gKmQpCiAgICAgdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAw OwogCiAgICAgaWYgKCAhcmMgKQorICAgIHsKICAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVz aF9hbGwoZCk7CisgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKKyAgICAgICAgICAgIGRvbWFp bl9jcmFzaChkKTsKKyAgICB9CiAKICAgICBpZiAoIHJjICYmIHJjICE9IC1FUkVTVEFSVCApCiAg ICAgICAgIGlvbW11X3RlYXJkb3duKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3Nj aGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAppbmRleCA1MWNlZWJlNmNjLi4zODFlYjZk YzhjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVk ZS94ZW4vc2NoZWQuaApAQCAtNjE2LDYgKzYxNiwxMSBAQCB2b2lkIF9fZG9tYWluX2NyYXNoKHN0 cnVjdCBkb21haW4gKmQpOwogICAgIF9fZG9tYWluX2NyYXNoKGQpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9IHdoaWxlICgwKQogCisjZGVm aW5lIGRvbXVfY3Jhc2goZCkgZG8geyAgICAgICAgICAgICAgICBcCisgICAgaWYgKCAhaXNfaGFy ZHdhcmVfZG9tYWluKGQpICkgICAgICAgICBcCisgICAgICAgIGRvbWFpbl9jcmFzaChkKTsgICAg ICAgICAgICAgICAgICBcCit9IHdoaWxlIChmYWxzZSkKKwogLyoKICAqIENhbGxlZCBmcm9tIGFz c2VtYmx5IGNvZGUsIHdpdGggYW4gb3B0aW9uYWwgYWRkcmVzcyB0byBoZWxwIGluZGljYXRlIHdo eQogICogdGhlIGNyYXNoIG9jY3VyZWQuICBJZiBhZGRyIGlzIDAsIGxvb2sgdXAgYWRkcmVzcyBm cm9tIGxhc3QgZXh0YWJsZQotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL3hlbi1kZXZlbA==