From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v14 4/9] iommu: don't domain_crash() inside iommu_map/unmap_page() Date: Thu, 4 Oct 2018 11:45:42 +0100 Message-ID: <20181004104547.32316-5-paul.durrant@citrix.com> References: <20181004104547.32316-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 1g818o-0002Ng-5v for xen-devel@lists.xenproject.org; Thu, 04 Oct 2018 10:45:58 +0000 In-Reply-To: <20181004104547.32316-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: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jun Nakajima List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBpbXBsaWNpdCBkb21haW5fY3Jhc2goKSBmcm9tIGlvbW11 X21hcCgpLAp1bm1hcF9wYWdlKCkgYW5kIGlvbW11X2lvdGxiX2ZsdXNoKCkgYW5kIHR1cm5zIHRo ZW0gaW50byBzdHJhaWdodGZvcndhcmQKd3JhcHBlcnMgdGhhdCBjaGVjayB0aGUgZXhpc3RlbmNl IG9mIHRoZSByZWxldmFudCBpb21tdV9vcCBhbmQgY2FsbAp0aHJvdWdoIHRvIGl0LiBUaGlzIG1h a2VzIHRoZW0gdXNhYmxlIGJ5IFBWIElPTU1VIGNvZGUgdG8gYmUgZGVsaXZlcmVkIGluCmZ1dHVy ZSBwYXRjaGVzLgpUaGlzIHBhdGNoIGFkZHMgYSBoZWxwZXIgbWFjcm8sIGRvbXVfY3Jhc2goKSwg dGhhdCB3aWxsIG9ubHkgaW52b2tlCmRvbWFpbl9jcmFzaCgpIGlmIHRoZSBkb21haW4gaXMgbm90 IHRoZSBoYXJkd2FyZSBkb21haW4gYW5kIG1vZGlmaWVzCmNhbGxlcnMgb2YgaW9tbXVfbWFwKCks IHVubWFwX3BhZ2UoKSBhbmQgaW9tbXVfaW90bGJfZmx1c2goKSB0byB1c2UgdGhpcwpzaG91bGQg YW4gb3BlcmF0aW9uIGZhaWwuCgpOT1RFOiBUaGlzIHBhdGNoIGluY2x1ZGVzIG9uZSBiaXQgb2Yg Y2xlYW4tdXAgaW4gc2V0X2lkZW50aXR5X3AybV9lbnRyeSgpCiAgICAgIHJlcGxhY2luZyB1c2Ug b2YgcDJtLT5kb21haW4gd2l0aCB0aGUgZG9tYWluIHBvaW50ZXIgcGFzc2VkIGludG8gdGhlCiAg ICAgIGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K UmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpSZXZpZXdlZC1i eTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQWNrZWQtYnk6IEp1bGll biBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Ci0tLQpDYzogV2VpIExpdSA8d2VpLmxpdTJA Y2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9y Zz4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBJYW4g SmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3Jn PgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDYzogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKdjc6CiAtIFJlLWJhc2UgYW5kIHJl LW5hbWUgQkZOIC0+IERGTi4KIC0gTW92ZSBkb211X2NyYXNoKCkgb3V0c2lkZSBkb3VibGUgbG9j a2VkIHJlZ2lvbiBpbiBncmFudF90YWJsZS5jLgogLSBBZGRlZCBKYW4ncyBSLWIuCgp2NjoKIC0g SW50cm9kdWNlIGRvbXVfY3Jhc2goKSAoaWRlYSBzdWdnZXN0ZWQgYnkgS2V2aW4sIG5hbWUgc3Vn Z2VzdGVkIGJ5IEphbikKICAgdG8gY3Jhc2ggbm9uLWhhcmR3YXJlIGRvbWFpbnMuCiAtIERyb3Bw ZWQgV2VpJ3MgYW5kIEdlb3JnZSdzIFItYiBiZWNhdXNlIG9mIGNoYW5nZS4KCnYyOgogLSBOZXcg aW4gdjIuCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgfCAgNCArKysr CiB4ZW4vYXJjaC94ODYvbW0uYyAgICAgICAgICAgICAgICAgICB8ICAzICsrKwogeGVuL2FyY2gv eDg2L21tL3AybS1lcHQuYyAgICAgICAgICAgfCAgMyArKysKIHhlbi9hcmNoL3g4Ni9tbS9wMm0t cHQuYyAgICAgICAgICAgIHwgIDMgKysrCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAg ICAgICB8IDIyICsrKysrKysrKysrKysrKysrKy0tLS0KIHhlbi9jb21tb24vZ3JhbnRfdGFibGUu YyAgICAgICAgICAgIHwgIDQgKysrKwogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgICAg ICAgfCAgMyArKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgIHwgMTIgLS0t LS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyB8ICA0ICsrKysK IHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgICAgICAgIHwgIDUgKysrKysKIDEwIGZpbGVz IGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCAwZGIxMmIwMWYx Li4xYzc5ZmY3YWRlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2Fy Y2gvYXJtL3AybS5jCkBAIC05NTcsOCArOTU3LDEyIEBAIHN0YXRpYyBpbnQgX19wMm1fc2V0X2Vu dHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAKICAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5k b21haW4pICYmCiAgICAgICAgICAobHBhZV9pc192YWxpZChvcmlnX3B0ZSkgfHwgbHBhZV9pc192 YWxpZCgqZW50cnkpKSApCisgICAgewogICAgICAgICByYyA9IGlvbW11X2lvdGxiX2ZsdXNoKHAy bS0+ZG9tYWluLCBfZGZuKGdmbl94KHNnZm4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAxVUwgPDwgcGFnZV9vcmRlcik7CisgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKKyAg ICAgICAgICAgIGRvbXVfY3Jhc2gocDJtLT5kb21haW4pOworICAgIH0KICAgICBlbHNlCiAgICAg ICAgIHJjID0gMDsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94 ODYvbW0uYwppbmRleCA1NDZkOThjODY0Li41YTdjNTMzNWEyIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMjc5Nyw2ICsyNzk3LDkgQEAg c3RhdGljIGludCBfZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25l ZCBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfbWFwX3BhZ2Uo ZCwgX2RmbihtZm5feChtZm4pKSwgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9NTVVGX3dyaXRhYmxlKTsKKworICAgICAgICAgICAgaWYgKCB1 bmxpa2VseShpb21tdV9yZXQpICkKKyAgICAgICAgICAgICAgICBkb211X2NyYXNoKGQpOwogICAg ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jIGIv eGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCBlMGViODViYzNkLi5jZDRjYjU3NTJhIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0tZXB0LmMKQEAgLTkwNiw2ICs5MDYsOSBAQCBvdXQ6CiAgICAgICAgICAgICAgICAgICAg IGlmICggIXJjICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwogICAgICAgICAg ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAg ICAgIGRvbXVfY3Jhc2goZCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCAwNTY5 ZjFkZTgwLi40NzM1OTM0NDkyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMK KysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCkBAIC03MTgsNiArNzE4LDkgQEAgcDJtX3B0 X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBnZm5fLCBtZm5fdCBtZm4s CiAgICAgICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKICAgICAgICAgICAgICAgICB9CiAg ICAgICAgIH0KKworICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgICAgICBkb211 X2NyYXNoKHAybS0+ZG9tYWluKTsKICAgICB9CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IGU1YzA2ZTIyYzcu LjMxMDhmYjJiMjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4v YXJjaC94ODYvbW0vcDJtLmMKQEAgLTczMiw2ICs3MzIsOSBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3Ry dWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm5fbCwgdW5zaWduZWQgbG9uZyBt Zm4sCiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICByYyA9 IHJldDsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQor ICAgICAgICAgICAgICAgIGRvbXVfY3Jhc2gocDJtLT5kb21haW4pOwogICAgICAgICB9CiAKICAg ICAgICAgcmV0dXJuIHJjOwpAQCAtNzk3LDYgKzgwMCw3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2Vu dHJ5KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgbWZuX3QgbWZuLAogICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSkgKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAgICAgICAg ICAgIGRvbXVfY3Jhc2goZCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsKICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMTY5LDEyICsxMTczLDE3IEBAIGludCBz ZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2Zu X2wsCiAgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKICAg ICBpbnQgcmV0OwogCi0gICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKHAybS0+ZG9tYWlu KSApCisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKICAgICB7CiAgICAgICAg IGlmICggIW5lZWRfaW9tbXUoZCkgKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJl dHVybiBpb21tdV9tYXBfcGFnZShkLCBfZGZuKGdmbl9sKSwgX21mbihnZm5fbCksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUp OworCisgICAgICAgIHJldCA9IGlvbW11X21hcF9wYWdlKGQsIF9kZm4oZ2ZuX2wpLCBfbWZuKGdm bl9sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9N TVVGX3dyaXRhYmxlKTsKKyAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICkKKyAgICAgICAgICAg IGRvbXVfY3Jhc2goZCk7CisKKyAgICAgICAgcmV0dXJuIHJldDsKICAgICB9CiAKICAgICBnZm5f bG9jayhwMm0sIGdmbiwgMCk7CkBAIC0xMjY0LDcgKzEyNzMsMTIgQEAgaW50IGNsZWFyX2lkZW50 aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbl9sKQogICAg IHsKICAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsK LSAgICAgICAgcmV0dXJuIGlvbW11X3VubWFwX3BhZ2UoZCwgX2RmbihnZm5fbCkpOworCisgICAg ICAgIHJldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgX2RmbihnZm5fbCkpOworICAgICAgICBpZiAo IHVubGlrZWx5KHJldCkgKQorICAgICAgICAgICAgZG9tdV9jcmFzaChkKTsKKworICAgICAgICBy ZXR1cm4gcmV0OwogICAgIH0KIAogICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCAwKTsKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpp bmRleCAyZDAxY2FkMTc2Li4wZjBiN2IxYTQ5IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50 X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC0xMTU1LDYgKzExNTUs NyBAQCBtYXBfZ3JhbnRfcmVmKAogICAgICAgICBpZiAoIGVyciApCiAgICAgICAgIHsKICAgICAg ICAgICAgIGRvdWJsZV9ndF91bmxvY2sobGd0LCByZ3QpOworICAgICAgICAgICAgZG9tdV9jcmFz aChsZCk7CiAgICAgICAgICAgICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgICAgICAg ICBnb3RvIHVuZG9fb3V0OwogICAgICAgICB9CkBAIC0xNDA2LDcgKzE0MDcsMTAgQEAgdW5tYXBf Y29tbW9uKAogICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsKIAogICAgICAgICBp ZiAoIGVyciApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvbXVfY3Jhc2gobGQpOwogICAgICAg ICAgICAgcmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOworICAgICAgICB9CiAgICAgfQogCiAgICAg LyogSWYganVzdCB1bm1hcHBlZCBhIHdyaXRhYmxlIG1hcHBpbmcsIG1hcmsgYXMgZGlydGllZCAq LwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMK aW5kZXggMjM4YTI4Y2FiYy4uYjU2N2JkNDZiYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1v cnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC04NDIsNiArODQyLDkgQEAgaW50IHhl bm1lbV9hZGRfdG9fcGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2FkZF90b19w aHlzbWFwICp4YXRwLAogICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCBfZGZuKHhh dHAtPmdwZm4gLSBkb25lKSwgZG9uZSk7CiAgICAgICAgIGlmICggdW5saWtlbHkocmV0KSAmJiBy YyA+PSAwICkKICAgICAgICAgICAgIHJjID0gcmV0OworCisgICAgICAgIGlmICggdW5saWtlbHko cmMgPCAwKSApCisgICAgICAgICAgICBkb211X2NyYXNoKGQpOwogICAgIH0KICNlbmRpZgogCmRp ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCBkNjFmYmJmNDM5Li5jMGRkOGU0OTRmIDEwMDY0NAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMKQEAgLTMwMiw5ICszMDIsNiBAQCBpbnQgaW9tbXVfbWFwX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sCiAgICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0VSUgogICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIG1hcHBpbmcgZGZu ICUiUFJJX2RmbiIgdG8gbWZuICUiUFJJX21mbiIgZmFpbGVkOiAlZFxuIiwKICAgICAgICAgICAg ICAgICAgICBkLT5kb21haW5faWQsIGRmbl94KGRmbiksIG1mbl94KG1mbiksIHJjKTsKLQotICAg ICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQotICAgICAgICAgICAgZG9tYWluX2Ny YXNoKGQpOwogICAgIH0KIAogICAgIHJldHVybiByYzsKQEAgLTMyNSw5ICszMjIsNiBAQCBpbnQg aW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4pCiAgICAgICAgICAg ICBwcmludGsoWEVOTE9HX0VSUgogICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIHVubWFw cGluZyBkZm4gJSJQUklfZGZuIiBmYWlsZWQ6ICVkXG4iLAogICAgICAgICAgICAgICAgICAgIGQt PmRvbWFpbl9pZCwgZGZuX3goZGZuKSwgcmMpOwotCi0gICAgICAgIGlmICggIWlzX2hhcmR3YXJl X2RvbWFpbihkKSApCi0gICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgfQogCiAgICAg cmV0dXJuIHJjOwpAQCAtMzY1LDkgKzM1OSw2IEBAIGludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1 Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIKICAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBJ T1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBkZm4gJSJQUklfZGZuIiwgcGFnZSBjb3VudCAldVxuIiwK ICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjLCBkZm5feChkZm4pLCBwYWdlX2Nv dW50KTsKLQotICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQotICAgICAgICAg ICAgZG9tYWluX2NyYXNoKGQpOwogICAgIH0KIAogICAgIHJldHVybiByYzsKQEAgLTM4OCw5ICsz NzksNiBAQCBpbnQgaW9tbXVfaW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21haW4gKmQpCiAgICAg ICAgICAgICBwcmludGsoWEVOTE9HX0VSUgogICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1V IElPVExCIGZsdXNoIGFsbCBmYWlsZWQ6ICVkXG4iLAogICAgICAgICAgICAgICAgICAgIGQtPmRv bWFpbl9pZCwgcmMpOwotCi0gICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCi0g ICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCBmNDEwNzE3YTU5Li5iY2Y3YTJmMjk4IDEw MDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAtMTA3LDcgKzEwNywxMSBAQCBpbnQg YXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgdGhp c19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAwOwogCiAgICAgaWYgKCAhcmMgKQorICAg IHsKICAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaF9hbGwoZCk7CisgICAgICAgIGlmICgg dW5saWtlbHkocmMpICkKKyAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICB9CiAKICAg ICBpZiAoIHJjICYmIHJjICE9IC1FUkVTVEFSVCApCiAgICAgICAgIGlvbW11X3RlYXJkb3duKGQp OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaAppbmRleCAwYmE4MGNiMWE4Li5mMmM1OTRkMTk3IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtNjE2LDYg KzYxNiwxMSBAQCB2b2lkIF9fZG9tYWluX2NyYXNoKHN0cnVjdCBkb21haW4gKmQpOwogICAgIF9f ZG9tYWluX2NyYXNoKGQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiB9IHdoaWxlICgwKQogCisjZGVmaW5lIGRvbXVfY3Jhc2goZCkgZG8geyAg ICAgICAgICAgICAgICBcCisgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkgICAgICAg ICBcCisgICAgICAgIGRvbWFpbl9jcmFzaChkKTsgICAgICAgICAgICAgICAgICBcCit9IHdoaWxl IChmYWxzZSkKKwogLyoKICAqIENhbGxlZCBmcm9tIGFzc2VtYmx5IGNvZGUsIHdpdGggYW4gb3B0 aW9uYWwgYWRkcmVzcyB0byBoZWxwIGluZGljYXRlIHdoeQogICogdGhlIGNyYXNoIG9jY3VyZWQu ICBJZiBhZGRyIGlzIDAsIGxvb2sgdXAgYWRkcmVzcyBmcm9tIGxhc3QgZXh0YWJsZQotLSAKMi4x MS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==