From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 2/7] iommu: make use of type-safe DFN and MFN in exported functions Date: Thu, 13 Sep 2018 11:31:47 +0100 Message-ID: <20180913103153.33377-3-paul.durrant@citrix.com> References: <20180913103153.33377-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 1g0Ous-0007ky-9k for xen-devel@lists.xenproject.org; Thu, 13 Sep 2018 10:32:06 +0000 In-Reply-To: <20180913103153.33377-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 , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jun Nakajima List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGVudHJ5IHBvaW50cyB0 byB0aGUgSU9NTVUKc3ViLXN5c3RlbSB0byB1c2UgZGZuX3QgYW5kIG1mbl90IGluIHBsYWNlIG9m IHVuc2lnbmVkIGxvbmcuIEEgc3Vic2VxdWVudApwYXRjaCB3aWxsIHNpbWlsYXJseSBtb2RpZnkg dGhlIG1ldGhvZHMgaW4gdGhlIGlvbW11X29wcyBzdHJ1Y3R1cmUuCgpTaWduZWQtb2ZmLWJ5OiBQ YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRp YW5AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCkNj OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogR2VvcmdlIER1 bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5q YWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53 aWxrQG9yYWNsZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5l bC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogVGltIERl ZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5j b20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+Cgp2NzoK IC0gUmUtYmFzZSBhbmQgcmUtbmFtZSBCRk4gLT4gREZOLgogLSBBZGRlZCBKYW4ncyBBLWIgc2lu Y2UgcmUtbmFtaW5nIHdhcyBwdXJlbHkgbWVjaGFuaWNhbC4KCnY2OgogLSBSZS1iYXNlLgoKdjM6 CiAtIFJlbW92ZWQgbW9zdCBvZiB0aGUgdXNlcyBvZiBhbiBpbnRlcm1lZGlhdGUgJ2ZyYW1lJyB2 YXJpYWJsZS4KCnYyOgogLSBBZGRyZXNzZWQgY29tbWVudHMgZnJvbSBKYW4uCiAtIFVzZSBpbnRl cm1lZGlhdGUgJ2ZyYW1lJyB2YXJpYWJsZSB0byBhdm9pZCBkaXJlY3RseSBlbmNhcHN1bGF0aW5n CiAgIG1mbiBvciBnZm4gdmFsdWVzIGFzIGRmbnMuCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAg ICAgICAgICAgICAgICAgICB8ICAzICsrLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAg ICAgICAgICB8IDEwICsrKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAgICAg ICAgIHwgMTAgKysrKystLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgICAg fCA0NSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21t L3AybS5jICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni94 ODZfNjQvbW0uYyAgICAgICAgICAgICAgfCAgNSArKy0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxl LmMgICAgICAgICAgICAgIHwgMTIgKysrKystLS0tLQogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAg ICAgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMg ICAgICAgfCAyNSArKysrKysrKysrLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQveDg2L3Z0ZC5jIHwgIDMgKystCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAg ICAgIHwgMTQgKysrKysrKy0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyks IDYyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9h cmNoL2FybS9wMm0uYwppbmRleCAxMzY0ZTU5NjBhLi4wZGIxMmIwMWYxIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC05NTcsNyArOTU3 LDggQEAgc3RhdGljIGludCBfX3AybV9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwK IAogICAgIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFpbikgJiYKICAgICAgICAgIChscGFlX2lz X3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFlX2lzX3ZhbGlkKCplbnRyeSkpICkKLSAgICAgICAgcmMg PSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgZ2ZuX3goc2dmbiksIDFVTCA8PCBwYWdl X29yZGVyKTsKKyAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgX2Rm bihnZm5feChzZ2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVVMIDw8IHBh Z2Vfb3JkZXIpOwogICAgIGVsc2UKICAgICAgICAgcmMgPSAwOwogCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IGJhZWEyZjVlNjMuLmU1MDNk ZWRlYmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS5jCkBAIC0yNzU3LDE0ICsyNzU3LDE0IEBAIHN0YXRpYyBpbnQgX2dldF9wYWdlX3R5cGUoc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgICAgICBzdHJ1Y3Qg ZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGFnZSk7CiAgICAgICAgIGlmICggZCAmJiBpc19w dl9kb21haW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBnZm5fdCBnZm4gPSBfZ2ZuKG1mbl90b19nbWZuKGQsIG1mbl94KHBhZ2VfdG9fbWZu KHBhZ2UpKSkpOworICAgICAgICAgICAgbWZuX3QgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7CiAK ICAgICAgICAgICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQR1Rfd3JpdGFibGVfcGFn ZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBnZm5f eChnZm4pKTsKKyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV91bm1hcF9wYWdlKGQs IF9kZm4obWZuX3gobWZuKSkpOwogICAgICAgICAgICAgZWxzZSBpZiAoIHR5cGUgPT0gUEdUX3dy aXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdl KGQsIGdmbl94KGdmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAg ICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIF9kZm4obWZuX3gobWZuKSks IG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZf cmVhZGFibGUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElP TU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmluZGV4IDFmZjRm MTRhZTQuLjlhM2E5MGU5ZTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMK KysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODcwLDE1ICs4NzAsMTkgQEAgb3V0 OgogICAgICAgICAgICAgcmMgPSBpb21tdV9wdGVfZmx1c2goZCwgZ2ZuLCAmZXB0X2VudHJ5LT5l cHRlLCBvcmRlciwgdnRkX3B0ZV9wcmVzZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICB7Cisg ICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKGdmbik7CisKICAgICAgICAgICAgIGlmICggaW9t bXVfZmxhZ3MgKQogICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIp OyBpKysgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21t dV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwgaW9tbXVfZmxhZ3MpOworICAg ICAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fYWRkKG1mbiwgaSks IGlvbW11X2ZsYWdzKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQog ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGkt LSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlz ZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9t bXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSkgKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuX2FkZChkZm4sIGkpKSAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKQEAgLTg4Nyw3ICs4OTEsNyBAQCBvdXQ6CiAgICAgICAgICAg ICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBvcmRlcik7IGkr KyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICByZXQgPSBpb21tdV91 bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXQgPSBpb21tdV91 bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICgg IXJjICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwogICAgICAgICAgICAgICAg IH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0tcHQuYwppbmRleCBiOGM1ZDJlZDI2Li44ODFlOWU4N2I4IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCkBAIC02 ODcsMjkgKzY4NywzNiBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0s IGdmbl90IGdmbl8sIG1mbl90IG1mbiwKICAgICAgICAgICAgIGlmICggaW9tbXVfb2xkX2ZsYWdz ICkKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMocDJtLT5kb21haW4sIGdm biwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoIGlvbW11X3B0ZV9m bGFncyApCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7 IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFn ZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwotICAgICAgICAgICAgICAgIGlm ICggdW5saWtlbHkocmMpICkKKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBk Zm5fdCBkZm4gPSBfZGZuKGdmbik7CisKKyAgICAgICAgICAgIGlmICggaW9tbXVfcHRlX2ZsYWdz ICkKKyAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7 IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGkt LSApCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBf X211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFw X3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShwMm0t PmRvbWFpbiwgZGZuX2FkZChkZm4sIGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgaW9tbXVfcHRlX2ZsYWdzKTsKKyAgICAgICAgICAg ICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGktLSApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuX2Fk ZChkZm4sIGkpKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBw YWdlX29yZGVyKTsgaSsrICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmV0 ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSk7CisgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIp OyBpKysgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJldCA9 IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRmbl9hZGQoZGZuLCBpKSk7CiAKLSAgICAgICAgICAgICAg ICBpZiAoICFyYyApCi0gICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwotICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICBpZiAoICFyYyApCisgICAgICAgICAgICAgICAgICAgICAg ICByYyA9IHJldDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICAv KgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3Ay bS5jCmluZGV4IDYwMjA1NTNjMTcuLjgwMWI2MjliOTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTcxNSw5ICs3MTUsMTEg QEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcg Z2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogCiAgICAgICAgIGlmICggbmVlZF9pb21tdShwMm0t PmRvbWFpbikgKQogICAgICAgICB7CisgICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKG1mbik7 CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgcGFnZV9vcmRlcik7IGkrKyAp CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3Bh Z2UocDJtLT5kb21haW4sIG1mbiArIGkpOworICAgICAgICAgICAgICAgIGludCByZXQgPSBpb21t dV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBkZm5fYWRkKGRmbiwgaSkpOwogCiAgICAgICAgICAg ICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKQEAgLTc3NCwx NiArNzc2LDE3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIGdm bl90IGdmbiwgbWZuX3QgbWZuLAogICAgIHsKICAgICAgICAgaWYgKCBuZWVkX2lvbW11KGQpICYm IHQgPT0gcDJtX3JhbV9ydyApCiAgICAgICAgIHsKKyAgICAgICAgICAgIGRmbl90IGRmbiA9IF9k Zm4obWZuX3gobWZuKSk7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgcGFn ZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMgPSBpb21t dV9tYXBfcGFnZShkLCBtZm5feChtZm5fYWRkKG1mbiwgaSkpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWZuX3gobWZuX2FkZChtZm4sIGkpKSwKKyAgICAgICAgICAgICAg ICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSwgbWZuX2FkZChtZm4sIGkp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElP TU1VRl93cml0YWJsZSk7CiAgICAgICAgICAgICAgICAgaWYgKCByYyAhPSAwICkKICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tID4gMCApCiAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2su ICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UoZCwgbWZu X3gobWZuX2FkZChtZm4sIGkpKSkgKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21t dV91bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSkgKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsKQEAgLTEx NTgsNyArMTE2MSw4IEBAIGludCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCiAgICAgewogICAgICAgICBpZiAoICFuZWVkX2lvbW11 KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gaW9tbXVfbWFwX3Bh Z2UoZCwgZ2ZuX2wsIGdmbl9sLCBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAg ICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlKGQsIF9kZm4oZ2ZuX2wpLCBfbWZuKGdmbl9sKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93 cml0YWJsZSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpAQCAtMTI0OCw3 ICsxMjUyLDcgQEAgaW50IGNsZWFyX2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGdmbl9sKQogICAgIHsKICAgICAgICAgaWYgKCAhbmVlZF9pb21tdShk KSApCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGlvbW11X3VubWFwX3Bh Z2UoZCwgZ2ZuX2wpOworICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBfcGFnZShkLCBfZGZuKGdm bl9sKSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCmluZGV4 IDYwNjUwOGM4NzEuLjA0OGJkYTg1YmIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQv bW0uYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTE0MjksMTMgKzE0MjksMTQg QEAgaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25lZCBsb25nIGVwZm4s IHVuc2lnbmVkIGludCBweG0pCiAgICAgaWYgKCBpb21tdV9lbmFibGVkICYmICFpb21tdV9wYXNz dGhyb3VnaCAmJiAhbmVlZF9pb21tdShoYXJkd2FyZV9kb21haW4pICkKICAgICB7CiAgICAgICAg IGZvciAoIGkgPSBzcGZuOyBpIDwgZXBmbjsgaSsrICkKLSAgICAgICAgICAgIGlmICggaW9tbXVf bWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBpLCBpLCBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dy aXRhYmxlKSApCisgICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdlKGhhcmR3YXJlX2RvbWFp biwgX2RmbihpKSwgX21mbihpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9N TVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSApCiAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgIGlmICggaSAhPSBlcGZuICkKICAgICAgICAgewogICAgICAgICAgICAgd2hpbGUg KGktLSA+IG9sZF9tYXgpCiAgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlz ZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFn ZShoYXJkd2FyZV9kb21haW4sIGkpICkKKyAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFw X3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBfZGZuKGkpKSApCiAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwogCiAgICAgICAgICAgICBnb3RvIGRlc3Ryb3lfbTJwOwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IDcz ZDNlZDM3MDEuLjJkMDFjYWQxNzYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTExNDMsMTMgKzExNDMsMTMgQEAg bWFwX2dyYW50X3JlZigKICAgICAgICAgICAgICAhKG9sZF9waW4gJiAoR05UUElOX2hzdHdfbWFz a3xHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoICEoa2lu ZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFn ZShsZCwgbWZuX3gobWZuKSwgbWZuX3gobWZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAg ICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2RmbihtZm5feChtZm4pKSwgbWZuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8IElPTU1V Rl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIGFjdF9waW4gJiYgIW9s ZF9waW4gKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoICFraW5kICkKLSAgICAgICAgICAg ICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3gobWZuKSwgbWZuX3gobWZuKSwKKyAg ICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2RmbihtZm5feChtZm4pKSwg bWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJs ZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCBlcnIgKQpAQCAtMTM5OCwxMCArMTM5OCwxMCBA QCB1bm1hcF9jb21tb24oCiAKICAgICAgICAga2luZCA9IG1hcGtpbmQobGd0LCByZCwgb3AtPm1m bik7CiAgICAgICAgIGlmICggIWtpbmQgKQotICAgICAgICAgICAgZXJyID0gaW9tbXVfdW5tYXBf cGFnZShsZCwgbWZuX3gob3AtPm1mbikpOworICAgICAgICAgICAgZXJyID0gaW9tbXVfdW5tYXBf cGFnZShsZCwgX2RmbihtZm5feChvcC0+bWZuKSkpOwogICAgICAgICBlbHNlIGlmICggIShraW5k ICYgTUFQS0lORF9XUklURSkgKQotICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQs IG1mbl94KG9wLT5tZm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3go b3AtPm1mbiksIElPTU1VRl9yZWFkYWJsZSk7CisgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBf cGFnZShsZCwgX2RmbihtZm5feChvcC0+bWZuKSksIG9wLT5tZm4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUpOwogCiAgICAgICAgIGRvdWJsZV9ndF91 bmxvY2sobGd0LCByZ3QpOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIveGVu L2NvbW1vbi9tZW1vcnkuYwppbmRleCA5OTZmOTRiMTAzLi44OWIyMTFkNmFhIDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9jb21tb24vbWVtb3J5LmMKQEAgLTgzNCwx MSArODM0LDExIEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwg c3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwKIAogICAgICAgICB0aGlzX2NwdShpb21t dV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7CiAKLSAgICAgICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1 c2goZCwgeGF0cC0+aWR4IC0gZG9uZSwgZG9uZSk7CisgICAgICAgIHJldCA9IGlvbW11X2lvdGxi X2ZsdXNoKGQsIF9kZm4oeGF0cC0+aWR4IC0gZG9uZSksIGRvbmUpOwogICAgICAgICBpZiAoIHVu bGlrZWx5KHJldCkgJiYgcmMgPj0gMCApCiAgICAgICAgICAgICByYyA9IHJldDsKIAotICAgICAg ICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCB4YXRwLT5ncGZuIC0gZG9uZSwgZG9uZSk7Cisg ICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIF9kZm4oeGF0cC0+Z3BmbiAtIGRvbmUp LCBkb25lKTsKICAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICYmIHJjID49IDAgKQogICAgICAg ICAgICAgcmMgPSByZXQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKaW5kZXggMTBkMTI1 MjU1NC4uMGM2ZTU5MDRkYSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9t bXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCkBAIC0yNTQsNyArMjU0 LDcgQEAgdm9pZCBpb21tdV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQogICAgIGFy Y2hfaW9tbXVfZG9tYWluX2Rlc3Ryb3koZCk7CiB9CiAKLWludCBpb21tdV9tYXBfcGFnZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCitpbnQg aW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sCiAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQogewogICAgIGNvbnN0IHN0cnVj dCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAtMjYzLDEzICsyNjMsMTMgQEAg aW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLCB1 bnNpZ25lZCBsb25nIG1mbiwKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZv cm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMt Pm1hcF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFncyk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3Bz LT5tYXBfcGFnZShkLCBkZm5feChkZm4pLCBtZm5feChtZm4pLCBmbGFncyk7CiAgICAgaWYgKCB1 bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAm JiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAg ICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBwaW5nIGRmbiAlI2x4IHRvIG1mbiAlI2x4 IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBkZm4sIG1m biwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIG1hcHBpbmcgZGZuICUiUFJJ X2RmbiIgdG8gbWZuICUiUFJJX21mbiIgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAg ICBkLT5kb21haW5faWQsIGRmbl94KGRmbiksIG1mbl94KG1mbiksIHJjKTsKIAogICAgICAgICBp ZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQp OwpAQCAtMjc4LDcgKzI3OCw3IEBAIGludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgcmV0dXJuIHJjOwog fQogCi1pbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGRmbikKK2ludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbikK IHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAg ICBpbnQgcmM7CkBAIC0yODYsMTMgKzI4NiwxMyBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbikKICAgICBpZiAoICFpb21tdV9lbmFibGVk IHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhk LT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgZGZuKTsKKyAgICByYyA9IGhkLT5wbGF0Zm9y bV9vcHMtPnVubWFwX3BhZ2UoZCwgZGZuX3goZGZuKSk7CiAgICAgaWYgKCB1bmxpa2VseShyYykg KQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0 ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAg ICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgZGZuICUjbHggZmFpbGVkOiAlZFxuIiwKLSAgICAg ICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGRmbiwgcmMpOworICAgICAgICAgICAgICAgICAg ICJkJWQ6IElPTU1VIHVubWFwcGluZyBkZm4gJSJQUklfZGZuIiBmYWlsZWQ6ICVkXG4iLAorICAg ICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZGZuX3goZGZuKSwgcmMpOwogCiAgICAgICAg IGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2go ZCk7CkBAIC0zMTgsOCArMzE4LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfZnJlZV9wYWdldGFibGVz KHVuc2lnbmVkIGxvbmcgdW51c2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1h c2tfY3ljbGUoc21wX3Byb2Nlc3Nvcl9pZCgpLCAmY3B1X29ubGluZV9tYXApKTsKIH0KIAotaW50 IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAot ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQoraW50IGlvbW11 X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgdW5zaWduZWQgaW50IHBh Z2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMzI3LDEzICszMjYsMTMgQEAgaW50IGlvbW11X2lvdGxi X2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAogICAgIGlmICggIWlv bW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgfHwgIWhkLT5wbGF0Zm9ybV9vcHMtPmlv dGxiX2ZsdXNoICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9v cHMtPmlvdGxiX2ZsdXNoKGQsIGRmbiwgcGFnZV9jb3VudCk7CisgICAgcmMgPSBoZC0+cGxhdGZv cm1fb3BzLT5pb3RsYl9mbHVzaChkLCBkZm5feChkZm4pLCBwYWdlX2NvdW50KTsKICAgICBpZiAo IHVubGlrZWx5KHJjKSApCiAgICAgewogICAgICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3du ICYmIHByaW50a19yYXRlbGltaXQoKSApCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgot ICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGRm biAlI2x4LCBwYWdlIGNvdW50ICV1XG4iLAotICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9p ZCwgcmMsIGRmbiwgcGFnZV9jb3VudCk7CisgICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUg SU9UTEIgZmx1c2ggZmFpbGVkOiAlZCwgZGZuICUiUFJJX2RmbiIsIHBhZ2UgY291bnQgJXVcbiIs CisgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByYywgZGZuX3goZGZuKSwgcGFnZV9j b3VudCk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAg ICAgIGRvbWFpbl9jcmFzaChkKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCmlu ZGV4IGFjNjUzZWVhMGUuLjllNGU4MGRlZWQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4 Ni92dGQuYwpAQCAtMTA3LDcgKzEwNyw4IEBAIHZvaWQgX19od2RvbV9pbml0IHZ0ZF9zZXRfaHdk b21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgICAgIHBhZ2VfaXNfcmFtX3R5 cGUocGZuLCBSQU1fVFlQRV9DT05WRU5USU9OQUwpICkKICAgICAgICAgICAgIGNvbnRpbnVlOwog Ci0gICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sIElPTU1VRl9yZWFkYWJs ZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIF9kZm4o cGZuKSwgX21mbihwZm4pLAorCQkJICAgIElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0YWJs ZSk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H IFZURFBSRUZJWCAiIGQlZDogSU9NTVUgbWFwcGluZyBmYWlsZWQ6ICVkXG4iLAogICAgICAgICAg ICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVu L2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCBhYTU0NGI1MjI1Li41YmJm ZWI4YmJkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5j bHVkZS94ZW4vaW9tbXUuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHhlbi9zcGlubG9j ay5oPgogI2luY2x1ZGUgPHhlbi9wY2kuaD4KICNpbmNsdWRlIDx4ZW4vdHlwZXNhZmUuaD4KKyNp bmNsdWRlIDx4ZW4vbW0uaD4KICNpbmNsdWRlIDxwdWJsaWMvaHZtL2lvcmVxLmg+CiAjaW5jbHVk ZSA8cHVibGljL2RvbWN0bC5oPgogI2luY2x1ZGUgPGFzbS9kZXZpY2UuaD4KQEAgLTQyLDYgKzQz LDExIEBAIFRZUEVfU0FGRSh1aW50NjRfdCwgZGZuKTsKICN1bmRlZiBkZm5feAogI2VuZGlmCiAK K3N0YXRpYyBpbmxpbmUgZGZuX3QgZGZuX2FkZChkZm5fdCBkZm4sIHVuc2lnbmVkIGxvbmcgaSkK K3sKKyAgICByZXR1cm4gX2RmbihkZm5feChkZm4pICsgaSk7Cit9CisKICNkZWZpbmUgSU9NTVVf UEFHRV9TSElGVCAxMgogI2RlZmluZSBJT01NVV9QQUdFX1NJWkUgICgxIDw8IElPTU1VX1BBR0Vf U0hJRlQpCiAjZGVmaW5lIElPTU1VX1BBR0VfTUFTSyAgKH4oSU9NTVVfUEFHRV9TSVpFIC0gMSkp CkBAIC04Niw5ICs5Miw5IEBAIHZvaWQgaW9tbXVfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCk7 CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAgKDF1PDxfSU9NTVVGX3JlYWRhYmxlKQogI2RlZmlu ZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZpbmUgSU9NTVVGX3dyaXRhYmxlICAoMXU8PF9JT01N VUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKLWludCBfX211c3RfY2hl Y2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbik7 CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90 IGRmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIGRmbl90IGRmbik7CiAKIGVudW0gaW9tbXVfZmVhdHVyZQogewpAQCAtMjExLDcg KzIxNyw3IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0 cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICos IHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBfX211c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1 c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCitpbnQgX19tdXN0X2NoZWNr IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpOwogaW50 IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRvbWFpbiAqZCk7CiAK LS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=