From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v13 2/9] iommu: make use of type-safe DFN and MFN in exported functions Date: Tue, 2 Oct 2018 18:00:12 +0100 Message-ID: <20181002170019.1911-3-paul.durrant@citrix.com> References: <20181002170019.1911-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 1g7O2B-0001Ws-AN for xen-devel@lists.xenproject.org; Tue, 02 Oct 2018 17:00:31 +0000 In-Reply-To: <20181002170019.1911-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 , Paul Durrant , Jun Nakajima List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGVudHJ5IHBvaW50cyB0 byB0aGUgSU9NTVUKc3ViLXN5c3RlbSB0byB1c2UgZGZuX3QgYW5kIG1mbl90IGluIHBsYWNlIG9m IHVuc2lnbmVkIGxvbmcuIEEgc3Vic2VxdWVudApwYXRjaCB3aWxsIHNpbWlsYXJseSBtb2RpZnkg dGhlIG1ldGhvZHMgaW4gdGhlIGlvbW11X29wcyBzdHJ1Y3R1cmUuCgpTaWduZWQtb2ZmLWJ5OiBQ YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRp YW5AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQWNrZWQt Ynk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Ci0tLQpDYzogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3Jn ZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5j aXRyaXguY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUu Y29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzog VGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBp bnRlbC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+ Cgp2OToKIC0gUmUtYmFzZS4KCnY3OgogLSBSZS1iYXNlIGFuZCByZS1uYW1lIEJGTiAtPiBERk4u CiAtIEFkZGVkIEphbidzIEEtYiBzaW5jZSByZS1uYW1pbmcgd2FzIHB1cmVseSBtZWNoYW5pY2Fs LgoKdjY6CiAtIFJlLWJhc2UuCgp2MzoKIC0gUmVtb3ZlZCBtb3N0IG9mIHRoZSB1c2VzIG9mIGFu IGludGVybWVkaWF0ZSAnZnJhbWUnIHZhcmlhYmxlLgoKdjI6CiAtIEFkZHJlc3NlZCBjb21tZW50 cyBmcm9tIEphbi4KIC0gVXNlIGludGVybWVkaWF0ZSAnZnJhbWUnIHZhcmlhYmxlIHRvIGF2b2lk IGRpcmVjdGx5IGVuY2Fwc3VsYXRpbmcKICAgbWZuIG9yIGdmbiB2YWx1ZXMgYXMgZGZucy4KLS0t CiB4ZW4vYXJjaC9hcm0vcDJtLmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKystCiB4ZW4vYXJj aC94ODYvbW0uYyAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKy0tLS0KIHhlbi9hcmNoL3g4 Ni9tbS9wMm0tZXB0LmMgICAgICAgICAgICAgfCAxMCArKysrKy0tLQogeGVuL2FyY2gveDg2L21t L3AybS1wdC5jICAgICAgICAgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAgIHwgMTYgKysrKysr KystLS0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jICAgICAgICAgICAgICB8ICA1ICsrLS0K IHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgICAgfCAxMiArKysrKy0tLS0tCiB4 ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgICB8IDI1ICsrKysrKysrKystLS0tLS0tLS0KIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgfCAgMSAtCiB4ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC94ODYvaW9tbXUuYyAgIHwgIDMgKystCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aCAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDg1IGlu c2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9w Mm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCAxMzY0ZTU5NjBhLi4wZGIxMmIwMWYxIDEw MDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBA IC05NTcsNyArOTU3LDggQEAgc3RhdGljIGludCBfX3AybV9zZXRfZW50cnkoc3RydWN0IHAybV9k b21haW4gKnAybSwKIAogICAgIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFpbikgJiYKICAgICAg ICAgIChscGFlX2lzX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFlX2lzX3ZhbGlkKCplbnRyeSkpICkK LSAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgZ2ZuX3goc2dmbiks IDFVTCA8PCBwYWdlX29yZGVyKTsKKyAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0t PmRvbWFpbiwgX2RmbihnZm5feChzZ2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMVVMIDw8IHBhZ2Vfb3JkZXIpOwogICAgIGVsc2UKICAgICAgICAgcmMgPSAwOwogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDAyYWJk MDYxYmUuLjU0NmQ5OGM4NjQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9tbS5jCkBAIC0yNzg5LDE0ICsyNzg5LDE0IEBAIHN0YXRpYyBpbnQgX2dldF9w YWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAg ICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGFnZSk7CiAgICAgICAgIGlm ICggZCAmJiBpc19wdl9kb21haW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQogICAg ICAgICB7Ci0gICAgICAgICAgICBnZm5fdCBnZm4gPSBfZ2ZuKG1mbl90b19nbWZuKGQsIG1mbl94 KHBhZ2VfdG9fbWZuKHBhZ2UpKSkpOworICAgICAgICAgICAgbWZuX3QgbWZuID0gcGFnZV90b19t Zm4ocGFnZSk7CiAKICAgICAgICAgICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQR1Rf d3JpdGFibGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBf cGFnZShkLCBnZm5feChnZm4pKTsKKyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV91 bm1hcF9wYWdlKGQsIF9kZm4obWZuX3gobWZuKSkpOwogICAgICAgICAgICAgZWxzZSBpZiAoIHR5 cGUgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlv bW11X21hcF9wYWdlKGQsIGdmbl94KGdmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFi bGUpOworICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIF9kZm4o bWZuX3gobWZuKSksIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVUZfcmVhZGFibGUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j CmluZGV4IGQzNzY5NjY1NjAuLmUwZWI4NWJjM2QgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODgxLDE1ICs4 ODEsMTkgQEAgb3V0OgogICAgICAgICAgICAgcmMgPSBpb21tdV9wdGVfZmx1c2goZCwgZ2ZuLCAm ZXB0X2VudHJ5LT5lcHRlLCBvcmRlciwgdnRkX3B0ZV9wcmVzZW50KTsKICAgICAgICAgZWxzZQog ICAgICAgICB7CisgICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKGdmbik7CisKICAgICAgICAg ICAgIGlmICggaW9tbXVfZmxhZ3MgKQogICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwg KDEgPDwgb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg ICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwgaW9tbXVf ZmxhZ3MpOworICAgICAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGRmbl9h ZGQoZGZuLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5f YWRkKG1mbiwgaSksIGlvbW11X2ZsYWdzKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCB1bmxp a2VseShyYykgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICB3aGlsZSAoIGktLSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVt ZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSkgKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuX2Fk ZChkZm4sIGkpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg5OCw3ICs5MDIsNyBAQCBvdXQ6 CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8 PCBvcmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBy ZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAgICBy ZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSk7CiAgICAgICAgICAgICAg ICAgICAgIGlmICggIXJjICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwogICAg ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCAzM2RkMTI5NjljLi4wNTY5ZjFkZTgwIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3Ay bS1wdC5jCkBAIC02ODgsMjkgKzY4OCwzNiBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1f ZG9tYWluICpwMm0sIGdmbl90IGdmbl8sIG1mbl90IG1mbiwKICAgICAgICAgICAgIGlmICggaW9t bXVfb2xkX2ZsYWdzICkKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMocDJt LT5kb21haW4sIGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAo IGlvbW11X3B0ZV9mbGFncyApCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwg cGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMgPSBp b21tdV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwotICAgICAg ICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKKyAgICAgICAgZWxzZQorICAgICAgICB7Cisg ICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKGdmbik7CisKKyAgICAgICAgICAgIGlmICggaW9t bXVfcHRlX2ZsYWdzICkKKyAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwg cGFnZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg ICB3aGlsZSAoIGktLSApCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQg dG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpICkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21tdV9t YXBfcGFnZShwMm0tPmRvbWFpbiwgZGZuX2FkZChkZm4sIGkpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgaW9tbXVfcHRlX2ZsYWdzKTsK KyAgICAgICAgICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGktLSApCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNr LiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShw Mm0tPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGZuX2FkZChkZm4sIGkpKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlOwogCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBp IDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICBpbnQgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSk7Cisg ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8 IHBhZ2Vfb3JkZXIpOyBpKysgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg ICAgaW50IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbl9hZGQoZGZuLCBpKSk7CiAKLSAg ICAgICAgICAgICAgICBpZiAoICFyYyApCi0gICAgICAgICAgICAgICAgICAgIHJjID0gcmV0Owot ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoICFyYyApCisgICAgICAgICAg ICAgICAgICAgICAgICByYyA9IHJldDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KICAg ICB9CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2Fy Y2gveDg2L21tL3AybS5jCmluZGV4IGQ2YTg4MTBjOTYuLmU1YzA2ZTIyYzcgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTcy Myw5ICs3MjMsMTEgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVu c2lnbmVkIGxvbmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogCiAgICAgICAgIGlmICggbmVl ZF9pb21tdShwMm0tPmRvbWFpbikgKQogICAgICAgICB7CisgICAgICAgICAgICBkZm5fdCBkZm4g PSBfZGZuKG1mbik7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgcGFnZV9v cmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlv bW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIG1mbiArIGkpOworICAgICAgICAgICAgICAgIGlu dCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBkZm5fYWRkKGRmbiwgaSkpOwog CiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICByYyA9IHJl dDsKQEAgLTc4MiwxNiArNzg0LDE3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBk b21haW4gKmQsIGdmbl90IGdmbiwgbWZuX3QgbWZuLAogICAgIHsKICAgICAgICAgaWYgKCBuZWVk X2lvbW11KGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCiAgICAgICAgIHsKKyAgICAgICAgICAgIGRm bl90IGRmbiA9IF9kZm4obWZuX3gobWZuKSk7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBp IDwgKDEgPDwgcGFnZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBtZm5feChtZm5fYWRkKG1mbiwgaSkpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZuX2FkZChtZm4sIGkpKSwKKyAg ICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSwgbWZu X2FkZChtZm4sIGkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVG X3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgICAgICAgICAgaWYgKCByYyAhPSAw ICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tID4g MCApCiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBf X211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFw X3BhZ2UoZCwgbWZuX3gobWZuX2FkZChtZm4sIGkpKSkgKQorICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSkgKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgICAgIHJldHVy biByYzsKQEAgLTExNzAsNyArMTE3Myw4IEBAIGludCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCiAgICAgewogICAgICAgICBpZiAo ICFuZWVkX2lvbW11KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4g aW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuX2wsIGdmbl9sLCBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dy aXRhYmxlKTsKKyAgICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlKGQsIF9kZm4oZ2ZuX2wpLCBf bWZuKGdmbl9sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJs ZSB8IElPTU1VRl93cml0YWJsZSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDAp OwpAQCAtMTI2MCw3ICsxMjY0LDcgQEAgaW50IGNsZWFyX2lkZW50aXR5X3AybV9lbnRyeShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbl9sKQogICAgIHsKICAgICAgICAgaWYgKCAh bmVlZF9pb21tdShkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGlv bW11X3VubWFwX3BhZ2UoZCwgZ2ZuX2wpOworICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBfcGFn ZShkLCBfZGZuKGdmbl9sKSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82 NC9tbS5jCmluZGV4IDkwYTY0OGM5NTYuLmQxZmNlNTc0MzIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTE0MzAs MTMgKzE0MzAsMTQgQEAgaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25l ZCBsb25nIGVwZm4sIHVuc2lnbmVkIGludCBweG0pCiAgICAgICAgICAhbmVlZF9pb21tdShoYXJk d2FyZV9kb21haW4pICkKICAgICB7CiAgICAgICAgIGZvciAoIGkgPSBzcGZuOyBpIDwgZXBmbjsg aSsrICkKLSAgICAgICAgICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBp LCBpLCBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKSApCisgICAgICAgICAgICBpZiAo IGlvbW11X21hcF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwgX2RmbihpKSwgX21mbihpKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRh YmxlKSApCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggaSAhPSBlcGZuICkK ICAgICAgICAgewogICAgICAgICAgICAgd2hpbGUgKGktLSA+IG9sZF9tYXgpCiAgICAgICAgICAg ICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAg ICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIGkpICkKKyAg ICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBfZGZu KGkpKSApCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBnb3Rv IGRlc3Ryb3lfbTJwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVu L2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IDczZDNlZDM3MDEuLjJkMDFjYWQxNzYgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTExNDMsMTMgKzExNDMsMTMgQEAgbWFwX2dyYW50X3JlZigKICAgICAgICAgICAg ICAhKG9sZF9waW4gJiAoR05UUElOX2hzdHdfbWFza3xHTlRQSU5fZGV2d19tYXNrKSkgKQogICAg ICAgICB7CiAgICAgICAgICAgICBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAg ICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3gobWZuKSwgbWZuX3gobWZu KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8 SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShs ZCwgX2RmbihtZm5feChtZm4pKSwgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAg ICAgICAgZWxzZSBpZiAoIGFjdF9waW4gJiYgIW9sZF9waW4gKQogICAgICAgICB7CiAgICAgICAg ICAgICBpZiAoICFraW5kICkKLSAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShs ZCwgbWZuX3gobWZuKSwgbWZuX3gobWZuKSwKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9t YXBfcGFnZShsZCwgX2RmbihtZm5feChtZm4pKSwgbWZuLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYg KCBlcnIgKQpAQCAtMTM5OCwxMCArMTM5OCwxMCBAQCB1bm1hcF9jb21tb24oCiAKICAgICAgICAg a2luZCA9IG1hcGtpbmQobGd0LCByZCwgb3AtPm1mbik7CiAgICAgICAgIGlmICggIWtpbmQgKQot ICAgICAgICAgICAgZXJyID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgbWZuX3gob3AtPm1mbikpOwor ICAgICAgICAgICAgZXJyID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgX2RmbihtZm5feChvcC0+bWZu KSkpOwogICAgICAgICBlbHNlIGlmICggIShraW5kICYgTUFQS0lORF9XUklURSkgKQotICAgICAg ICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG1mbl94KG9wLT5tZm4pLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gob3AtPm1mbiksIElPTU1VRl9yZWFkYWJsZSk7 CisgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2RmbihtZm5feChvcC0+bWZu KSksIG9wLT5tZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVh ZGFibGUpOwogCiAgICAgICAgIGRvdWJsZV9ndF91bmxvY2sobGd0LCByZ3QpOwogCmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCA1Yzcx Y2UxM2NlLi4yMzhhMjhjYWJjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBi L3hlbi9jb21tb24vbWVtb3J5LmMKQEAgLTgzNSwxMSArODM1LDExIEBAIGludCB4ZW5tZW1fYWRk X3RvX3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAq eGF0cCwKIAogICAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7CiAK LSAgICAgICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+aWR4IC0gZG9uZSwgZG9u ZSk7CisgICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIF9kZm4oeGF0cC0+aWR4IC0g ZG9uZSksIGRvbmUpOwogICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgJiYgcmMgPj0gMCApCiAg ICAgICAgICAgICByYyA9IHJldDsKIAotICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChk LCB4YXRwLT5ncGZuIC0gZG9uZSwgZG9uZSk7CisgICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2Zs dXNoKGQsIF9kZm4oeGF0cC0+Z3BmbiAtIGRvbmUpLCBkb25lKTsKICAgICAgICAgaWYgKCB1bmxp a2VseShyZXQpICYmIHJjID49IDAgKQogICAgICAgICAgICAgcmMgPSByZXQ7CiAgICAgfQpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMKaW5kZXggMWFkNzdhN2U3YS4uNTM0MTlhODUzMSAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9pb21tdS5jCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBpb21tdV9kb21haW5fZGVz dHJveShzdHJ1Y3QgZG9tYWluICpkKQogICAgIGFyY2hfaW9tbXVfZG9tYWluX2Rlc3Ryb3koZCk7 CiB9CiAKLWludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGRmbiwgdW5zaWduZWQgbG9uZyBtZm4sCitpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IGZsYWdzKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOwpAQCAtMjk0LDEzICsyOTQsMTMgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICBpZiAo ICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7 CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFn cyk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBkZm5feChkZm4pLCBt Zm5feChtZm4pLCBmbGFncyk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAg ICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01N VSBtYXBwaW5nIGRmbiAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCBkZm4sIG1mbiwgcmMpOworICAgICAgICAgICAgICAgICAg ICJkJWQ6IElPTU1VIG1hcHBpbmcgZGZuICUiUFJJX2RmbiIgdG8gbWZuICUiUFJJX21mbiIgZmFp bGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGRmbl94KGRmbiks IG1mbl94KG1mbiksIHJjKTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkg KQogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwpAQCAtMzA5LDcgKzMwOSw3IEBAIGludCBp b21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWdu ZWQgbG9uZyBtZm4sCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgaW9tbXVfdW5tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbikKK2ludCBpb21tdV91bm1hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWlu X2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAgICBpbnQgcmM7CkBAIC0zMTcsMTMgKzMxNywx MyBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGRmbikKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAg ICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2Uo ZCwgZGZuKTsKKyAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgZGZuX3go ZGZuKSk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+ aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcg ZGZuICUjbHggZmFpbGVkOiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQs IGRmbiwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIHVubWFwcGluZyBkZm4g JSJQUklfZGZuIiBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9p ZCwgZGZuX3goZGZuKSwgcmMpOwogCiAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihk KSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CkBAIC0zNDksOCArMzQ5LDcgQEAgc3Rh dGljIHZvaWQgaW9tbXVfZnJlZV9wYWdldGFibGVzKHVuc2lnbmVkIGxvbmcgdW51c2VkKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfY3ljbGUoc21wX3Byb2Nlc3Nvcl9pZCgp LCAmY3B1X29ubGluZV9tYXApKTsKIH0KIAotaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAotICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBwYWdlX2NvdW50KQoraW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4g KmQsIGRmbl90IGRmbiwgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3Ry dWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMzU4 LDEzICszNTcsMTMgQEAgaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZGZuLAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9y bV9vcHMgfHwgIWhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoICkKICAgICAgICAgcmV0dXJu IDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoKGQsIGRmbiwgcGFn ZV9jb3VudCk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaChkLCBkZm5f eChkZm4pLCBwYWdlX2NvdW50KTsKICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgewogICAg ICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50a19yYXRlbGltaXQoKSApCiAg ICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgotICAgICAgICAgICAgICAgICAgICJkJWQ6IElP TU1VIElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGRmbiAlI2x4LCBwYWdlIGNvdW50ICV1XG4iLAot ICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMsIGRmbiwgcGFnZV9jb3VudCk7Cisg ICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgSU9UTEIgZmx1c2ggZmFpbGVkOiAlZCwgZGZu ICUiUFJJX2RmbiIsIHBhZ2UgY291bnQgJXVcbiIsCisgICAgICAgICAgICAgICAgICAgZC0+ZG9t YWluX2lkLCByYywgZGZuX3goZGZuKSwgcGFnZV9jb3VudCk7CiAKICAgICAgICAgaWYgKCAhaXNf aGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCmluZGV4IDQ4ZTE2Zjk1NmIuLmZmNDU2ZTFlNzAg MTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwpAQCAtNjAsNCArNjAsMyBAQCB2 b2lkIGZsdXNoX2FsbF9jYWNoZSgpCiB7CiAgICAgd2JpbnZkKCk7CiB9Ci0KZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gveDg2L2lvbW11LmMKaW5kZXggYjdjOGI1YmU0MS4uZjliZDFjOGJiMiAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAgLTIzNSw3ICsyMzUsOCBAQCB2b2lkIF9faHdkb21f aW5pdCBhcmNoX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgaWYg KCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAgICAgICAgICAgcmMgPSBzZXRfaWRlbnRp dHlfcDJtX2VudHJ5KGQsIHBmbiwgcDJtX2FjY2Vzc19ydywgMCk7CiAgICAgICAgIGVsc2UKLSAg ICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sIElPTU1VRl9yZWFkYWJs ZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBf ZGZuKHBmbiksIF9tZm4ocGZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9N TVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgaWYgKCByYyApCiAgICAg ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVk OiAlZFxuIiwKICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjKTsKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5k ZXggMjkwZTBhYWRhNi4uZjlkODZmYzgxNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lv bW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNp bmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KICNpbmNsdWRlIDx4ZW4vcGNpLmg+CiAjaW5jbHVkZSA8 eGVuL3R5cGVzYWZlLmg+CisjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5jbHVkZSA8cHVibGljL2h2 bS9pb3JlcS5oPgogI2luY2x1ZGUgPHB1YmxpYy9kb21jdGwuaD4KICNpbmNsdWRlIDxhc20vZGV2 aWNlLmg+CkBAIC00Miw2ICs0MywxMSBAQCBUWVBFX1NBRkUodWludDY0X3QsIGRmbik7CiAjdW5k ZWYgZGZuX3gKICNlbmRpZgogCitzdGF0aWMgaW5saW5lIGRmbl90IGRmbl9hZGQoZGZuX3QgZGZu LCB1bnNpZ25lZCBsb25nIGkpCit7CisgICAgcmV0dXJuIF9kZm4oZGZuX3goZGZuKSArIGkpOwor fQorCiBleHRlcm4gYm9vbF90IGlvbW11X2VuYWJsZSwgaW9tbXVfZW5hYmxlZDsKIGV4dGVybiBi b29sX3QgZm9yY2VfaW9tbXUsIGlvbW11X3ZlcmJvc2U7CiBleHRlcm4gYm9vbF90IGlvbW11X3dv cmthcm91bmRfYmlvc19idWcsIGlvbW11X2lnZng7CkBAIC03OCw5ICs4NCw5IEBAIHZvaWQgaW9t bXVfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAg KDF1PDxfSU9NTVVGX3JlYWRhYmxlKQogI2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZp bmUgSU9NTVVGX3dyaXRhYmxlICAoMXU8PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2No ZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWdu ZWQgaW50IGZsYWdzKTsKLWludCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21h cF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IF9fbXVzdF9j aGVjayBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbik7CiAKIGVu dW0gaW9tbXVfZmVhdHVyZQogewpAQCAtMjAzLDcgKzIwOSw3IEBAIGludCBpb21tdV9kb19wY2lf ZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVf ZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg ICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWlu dCBfX211c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgbG9uZyBkZm4sCitpbnQgX19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBk b21haW4gKmQsIGRmbl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IHBhZ2VfY291bnQpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9m bHVzaF9hbGwoc3RydWN0IGRvbWFpbiAqZCk7CiAKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=