From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 2/7] iommu: make use of type-safe DFN and MFN in exported functions Date: Wed, 19 Sep 2018 09:35:57 +0100 Message-ID: <20180919083602.8201-3-paul.durrant@citrix.com> References: <20180919083602.8201-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 1g2XyV-0006l3-56 for xen-devel@lists.xenproject.org; Wed, 19 Sep 2018 08:36:43 +0000 In-Reply-To: <20180919083602.8201-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+Cgp2OToK IC0gUmUtYmFzZS4KCnY3OgogLSBSZS1iYXNlIGFuZCByZS1uYW1lIEJGTiAtPiBERk4uCiAtIEFk ZGVkIEphbidzIEEtYiBzaW5jZSByZS1uYW1pbmcgd2FzIHB1cmVseSBtZWNoYW5pY2FsLgoKdjY6 CiAtIFJlLWJhc2UuCgp2MzoKIC0gUmVtb3ZlZCBtb3N0IG9mIHRoZSB1c2VzIG9mIGFuIGludGVy bWVkaWF0ZSAnZnJhbWUnIHZhcmlhYmxlLgoKdjI6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9t IEphbi4KIC0gVXNlIGludGVybWVkaWF0ZSAnZnJhbWUnIHZhcmlhYmxlIHRvIGF2b2lkIGRpcmVj dGx5IGVuY2Fwc3VsYXRpbmcKICAgbWZuIG9yIGdmbiB2YWx1ZXMgYXMgZGZucy4KLS0tCiB4ZW4v YXJjaC9hcm0vcDJtLmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKystCiB4ZW4vYXJjaC94ODYv bW0uYyAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9w Mm0tZXB0LmMgICAgICAgICAgICAgfCAxMCArKysrKy0tLQogeGVuL2FyY2gveDg2L21tL3AybS1w dC5jICAgICAgICAgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t CiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0t LQogeGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jICAgICAgICAgICAgICB8ICA1ICsrLS0KIHhlbi9j b21tb24vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgICAgfCAxMiArKysrKy0tLS0tCiB4ZW4vY29t bW9uL21lbW9yeS5jICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW9tbXUuYyAgICAgICB8IDI1ICsrKysrKysrKystLS0tLS0tLS0KIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgfCAgMSAtCiB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC94ODYvaW9tbXUuYyAgIHwgIDMgKystCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAg ICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlv bnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBi L3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCAxMzY0ZTU5NjBhLi4wZGIxMmIwMWYxIDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC05NTcs NyArOTU3LDggQEAgc3RhdGljIGludCBfX3AybV9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4g KnAybSwKIAogICAgIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFpbikgJiYKICAgICAgICAgIChs cGFlX2lzX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFlX2lzX3ZhbGlkKCplbnRyeSkpICkKLSAgICAg ICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgZ2ZuX3goc2dmbiksIDFVTCA8 PCBwYWdlX29yZGVyKTsKKyAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFp biwgX2RmbihnZm5feChzZ2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVVM IDw8IHBhZ2Vfb3JkZXIpOwogICAgIGVsc2UKICAgICAgICAgcmMgPSAwOwogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IGQzN2VlYTUzZDEu LmYzMDhjOTdlYzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9tbS5jCkBAIC0yNzk5LDE0ICsyNzk5LDE0IEBAIHN0YXRpYyBpbnQgX2dldF9wYWdlX3R5 cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgICAgICBz dHJ1Y3QgZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGFnZSk7CiAgICAgICAgIGlmICggZCAm JiBpc19wdl9kb21haW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQogICAgICAgICB7 Ci0gICAgICAgICAgICBnZm5fdCBnZm4gPSBfZ2ZuKG1mbl90b19nbWZuKGQsIG1mbl94KHBhZ2Vf dG9fbWZuKHBhZ2UpKSkpOworICAgICAgICAgICAgbWZuX3QgbWZuID0gcGFnZV90b19tZm4ocGFn ZSk7CiAKICAgICAgICAgICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQR1Rfd3JpdGFi bGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShk LCBnZm5feChnZm4pKTsKKyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV91bm1hcF9w YWdlKGQsIF9kZm4obWZuX3gobWZuKSkpOwogICAgICAgICAgICAgZWxzZSBpZiAoIHR5cGUgPT0g UEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21h cF9wYWdlKGQsIGdmbl94KGdmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwor ICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIF9kZm4obWZuX3go bWZuKSksIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ T01NVUZfcmVhZGFibGUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmluZGV4 IDFmZjRmMTRhZTQuLjlhM2E5MGU5ZTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0t ZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODcwLDE1ICs4NzAsMTkg QEAgb3V0OgogICAgICAgICAgICAgcmMgPSBpb21tdV9wdGVfZmx1c2goZCwgZ2ZuLCAmZXB0X2Vu dHJ5LT5lcHRlLCBvcmRlciwgdnRkX3B0ZV9wcmVzZW50KTsKICAgICAgICAgZWxzZQogICAgICAg ICB7CisgICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZuKGdmbik7CisKICAgICAgICAgICAgIGlm ICggaW9tbXVfZmxhZ3MgKQogICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwg b3JkZXIpOyBpKysgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmMg PSBpb21tdV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwgaW9tbXVfZmxhZ3Mp OworICAgICAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGRmbl9hZGQoZGZu LCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fYWRkKG1m biwgaSksIGlvbW11X2ZsYWdzKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCB1bmxpa2VseShy YykgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aGls ZSAoIGktLSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRv IHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSkgKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuX2FkZChkZm4s IGkpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg4Nyw3ICs4OTEsNyBAQCBvdXQ6CiAgICAg ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBvcmRl cik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICByZXQgPSBp b21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXQgPSBp b21tdV91bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSk7CiAgICAgICAgICAgICAgICAgICAg IGlmICggIXJjICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwogICAgICAgICAg ICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNo L3g4Ni9tbS9wMm0tcHQuYwppbmRleCBiOGM1ZDJlZDI2Li44ODFlOWU4N2I4IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5j CkBAIC02ODcsMjkgKzY4NywzNiBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sIGdmbl90IGdmbl8sIG1mbl90IG1mbiwKICAgICAgICAgICAgIGlmICggaW9tbXVfb2xk X2ZsYWdzICkKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMocDJtLT5kb21h aW4sIGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoIGlvbW11 X3B0ZV9mbGFncyApCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9v cmRlcik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMgPSBpb21tdV9t YXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwotICAgICAgICAgICAg ICAgIGlmICggdW5saWtlbHkocmMpICkKKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAg ICAgICBkZm5fdCBkZm4gPSBfZGZuKGdmbik7CisKKyAgICAgICAgICAgIGlmICggaW9tbXVfcHRl X2ZsYWdzICkKKyAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9v cmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB3aGls ZSAoIGktLSApCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0 aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11 X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpICkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFn ZShwMm0tPmRvbWFpbiwgZGZuX2FkZChkZm4sIGkpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgaW9tbXVfcHRlX2ZsYWdzKTsKKyAgICAg ICAgICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGktLSApCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRv bWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGZuX2FkZChkZm4sIGkpKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFV TCA8PCBwYWdlX29yZGVyKTsgaSsrICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBp bnQgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSk7CisgICAgICAg ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vf b3JkZXIpOyBpKysgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW50 IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbl9hZGQoZGZuLCBpKSk7CiAKLSAgICAgICAg ICAgICAgICBpZiAoICFyYyApCi0gICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwotICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoICFyYyApCisgICAgICAgICAgICAgICAg ICAgICAgICByYyA9IHJldDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAK ICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2 L21tL3AybS5jCmluZGV4IDYwMjA1NTNjMTcuLjgwMWI2MjliOTUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTcxNSw5ICs3 MTUsMTEgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVk IGxvbmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogCiAgICAgICAgIGlmICggbmVlZF9pb21t dShwMm0tPmRvbWFpbikgKQogICAgICAgICB7CisgICAgICAgICAgICBkZm5fdCBkZm4gPSBfZGZu KG1mbik7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgcGFnZV9vcmRlcik7 IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3Vu bWFwX3BhZ2UocDJtLT5kb21haW4sIG1mbiArIGkpOworICAgICAgICAgICAgICAgIGludCByZXQg PSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBkZm5fYWRkKGRmbiwgaSkpOwogCiAgICAg ICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKQEAg LTc3NCwxNiArNzc2LDE3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4g KmQsIGdmbl90IGdmbiwgbWZuX3QgbWZuLAogICAgIHsKICAgICAgICAgaWYgKCBuZWVkX2lvbW11 KGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCiAgICAgICAgIHsKKyAgICAgICAgICAgIGRmbl90IGRm biA9IF9kZm4obWZuX3gobWZuKSk7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEg PDwgcGFnZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMg PSBpb21tdV9tYXBfcGFnZShkLCBtZm5feChtZm5fYWRkKG1mbiwgaSkpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZuX2FkZChtZm4sIGkpKSwKKyAgICAgICAg ICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSwgbWZuX2FkZCht Zm4sIGkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRh YmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgICAgICAgICAgaWYgKCByYyAhPSAwICkKICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tID4gMCApCiAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3Rf Y2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2Uo ZCwgbWZuX3gobWZuX2FkZChtZm4sIGkpKSkgKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCBpb21tdV91bm1hcF9wYWdlKGQsIGRmbl9hZGQoZGZuLCBpKSkgKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsK QEAgLTExNTgsNyArMTE2MSw4IEBAIGludCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCiAgICAgewogICAgICAgICBpZiAoICFuZWVk X2lvbW11KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gaW9tbXVf bWFwX3BhZ2UoZCwgZ2ZuX2wsIGdmbl9sLCBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxl KTsKKyAgICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlKGQsIF9kZm4oZ2ZuX2wpLCBfbWZuKGdm bl9sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8IElP TU1VRl93cml0YWJsZSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpAQCAt MTI0OCw3ICsxMjUyLDcgQEAgaW50IGNsZWFyX2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGdmbl9sKQogICAgIHsKICAgICAgICAgaWYgKCAhbmVlZF9p b21tdShkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGlvbW11X3Vu bWFwX3BhZ2UoZCwgZ2ZuX2wpOworICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBfcGFnZShkLCBf ZGZuKGdmbl9sKSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDApOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5j CmluZGV4IDkwYTY0OGM5NTYuLmQxZmNlNTc0MzIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94 ODZfNjQvbW0uYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTE0MzAsMTMgKzE0 MzAsMTQgQEAgaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25lZCBsb25n IGVwZm4sIHVuc2lnbmVkIGludCBweG0pCiAgICAgICAgICAhbmVlZF9pb21tdShoYXJkd2FyZV9k b21haW4pICkKICAgICB7CiAgICAgICAgIGZvciAoIGkgPSBzcGZuOyBpIDwgZXBmbjsgaSsrICkK LSAgICAgICAgICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBpLCBpLCBJ T01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKSApCisgICAgICAgICAgICBpZiAoIGlvbW11 X21hcF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwgX2RmbihpKSwgX21mbihpKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSAp CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggaSAhPSBlcGZuICkKICAgICAg ICAgewogICAgICAgICAgICAgd2hpbGUgKGktLSA+IG9sZF9tYXgpCiAgICAgICAgICAgICAgICAg LyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAg ICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIGkpICkKKyAgICAgICAg ICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBfZGZuKGkpKSAp CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBnb3RvIGRlc3Ry b3lfbTJwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1v bi9ncmFudF90YWJsZS5jCmluZGV4IDczZDNlZDM3MDEuLjJkMDFjYWQxNzYgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMK QEAgLTExNDMsMTMgKzExNDMsMTMgQEAgbWFwX2dyYW50X3JlZigKICAgICAgICAgICAgICAhKG9s ZF9waW4gJiAoR05UUElOX2hzdHdfbWFza3xHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAgICB7 CiAgICAgICAgICAgICBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAgICAgICAg ICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3gobWZuKSwgbWZuX3gobWZuKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVG X3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2Rm bihtZm5feChtZm4pKSwgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICAgICAg ZWxzZSBpZiAoIGFjdF9waW4gJiYgIW9sZF9waW4gKQogICAgICAgICB7CiAgICAgICAgICAgICBp ZiAoICFraW5kICkKLSAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZu X3gobWZuKSwgbWZuX3gobWZuKSwKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFn ZShsZCwgX2RmbihtZm5feChtZm4pKSwgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCBlcnIg KQpAQCAtMTM5OCwxMCArMTM5OCwxMCBAQCB1bm1hcF9jb21tb24oCiAKICAgICAgICAga2luZCA9 IG1hcGtpbmQobGd0LCByZCwgb3AtPm1mbik7CiAgICAgICAgIGlmICggIWtpbmQgKQotICAgICAg ICAgICAgZXJyID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgbWZuX3gob3AtPm1mbikpOworICAgICAg ICAgICAgZXJyID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgX2RmbihtZm5feChvcC0+bWZuKSkpOwog ICAgICAgICBlbHNlIGlmICggIShraW5kICYgTUFQS0lORF9XUklURSkgKQotICAgICAgICAgICAg ZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG1mbl94KG9wLT5tZm4pLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWZuX3gob3AtPm1mbiksIElPTU1VRl9yZWFkYWJsZSk7CisgICAg ICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2RmbihtZm5feChvcC0+bWZuKSksIG9w LT5tZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUp OwogCiAgICAgICAgIGRvdWJsZV9ndF91bmxvY2sobGd0LCByZ3QpOwogCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCA5OTZmOTRiMTAz Li44OWIyMTFkNmFhIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9j b21tb24vbWVtb3J5LmMKQEAgLTgzNCwxMSArODM0LDExIEBAIGludCB4ZW5tZW1fYWRkX3RvX3Bo eXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwK IAogICAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7CiAKLSAgICAg ICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+aWR4IC0gZG9uZSwgZG9uZSk7Cisg ICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIF9kZm4oeGF0cC0+aWR4IC0gZG9uZSks IGRvbmUpOwogICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgJiYgcmMgPj0gMCApCiAgICAgICAg ICAgICByYyA9IHJldDsKIAotICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCB4YXRw LT5ncGZuIC0gZG9uZSwgZG9uZSk7CisgICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQs IF9kZm4oeGF0cC0+Z3BmbiAtIGRvbmUpLCBkb25lKTsKICAgICAgICAgaWYgKCB1bmxpa2VseShy ZXQpICYmIHJjID49IDAgKQogICAgICAgICAgICAgcmMgPSByZXQ7CiAgICAgfQpkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMKaW5kZXggY2E4MjYyYmU3Yy4uOTM5MGIxMzY2ZiAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBpb21tdV9kb21haW5fZGVzdHJveShz dHJ1Y3QgZG9tYWluICpkKQogICAgIGFyY2hfaW9tbXVfZG9tYWluX2Rlc3Ryb3koZCk7CiB9CiAK LWludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwg dW5zaWduZWQgbG9uZyBtZm4sCitpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg ZGZuX3QgZGZuLCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZs YWdzKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQp OwpAQCAtMzA0LDEzICszMDQsMTMgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICBpZiAoICFpb21t dV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg ICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFncyk7Cisg ICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBkZm5feChkZm4pLCBtZm5feCht Zm4pLCBmbGFncyk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYg KCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBw aW5nIGRmbiAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAg ICAgZC0+ZG9tYWluX2lkLCBkZm4sIG1mbiwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6 IElPTU1VIG1hcHBpbmcgZGZuICUiUFJJX2RmbiIgdG8gbWZuICUiUFJJX21mbiIgZmFpbGVkOiAl ZFxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGRmbl94KGRmbiksIG1mbl94 KG1mbiksIHJjKTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAg ICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwpAQCAtMzE5LDcgKzMxOSw3IEBAIGludCBpb21tdV9t YXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9u ZyBtZm4sCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbikKK2ludCBpb21tdV91bm1hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIGRmbl90IGRmbikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11 ICpoZCA9IGRvbV9pb21tdShkKTsKICAgICBpbnQgcmM7CkBAIC0zMjcsMTMgKzMyNywxMyBAQCBp bnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGRmbikK ICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAg cmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgZGZu KTsKKyAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgZGZuX3goZGZuKSk7 CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1 dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgZGZuICUj bHggZmFpbGVkOiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGRmbiwg cmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIHVubWFwcGluZyBkZm4gJSJQUklf ZGZuIiBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZGZu X3goZGZuKSwgcmMpOwogCiAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAg ICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CkBAIC0zNTksOCArMzU5LDcgQEAgc3RhdGljIHZv aWQgaW9tbXVfZnJlZV9wYWdldGFibGVzKHVuc2lnbmVkIGxvbmcgdW51c2VkKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfY3ljbGUoc21wX3Byb2Nlc3Nvcl9pZCgpLCAmY3B1 X29ubGluZV9tYXApKTsKIH0KIAotaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZGZuLAotICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBwYWdlX2NvdW50KQoraW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRv bWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMzY4LDEzICsz NjcsMTMgQEAgaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZGZuLAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMg fHwgIWhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoICkKICAgICAgICAgcmV0dXJuIDA7CiAK LSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoKGQsIGRmbiwgcGFnZV9jb3Vu dCk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaChkLCBkZm5feChkZm4p LCBwYWdlX2NvdW50KTsKICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgewogICAgICAgICBp ZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50a19yYXRlbGltaXQoKSApCiAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0VSUgotICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIElP VExCIGZsdXNoIGZhaWxlZDogJWQsIGRmbiAlI2x4LCBwYWdlIGNvdW50ICV1XG4iLAotICAgICAg ICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMsIGRmbiwgcGFnZV9jb3VudCk7CisgICAgICAg ICAgICAgICAgICAgImQlZDogSU9NTVUgSU9UTEIgZmx1c2ggZmFpbGVkOiAlZCwgZGZuICUiUFJJ X2RmbiIsIHBhZ2UgY291bnQgJXVcbiIsCisgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lk LCByYywgZGZuX3goZGZuKSwgcGFnZV9jb3VudCk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdh cmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L3Z0ZC5jCmluZGV4IDQ4ZTE2Zjk1NmIuLmZmNDU2ZTFlNzAgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwpAQCAtNjAsNCArNjAsMyBAQCB2b2lkIGZs dXNoX2FsbF9jYWNoZSgpCiB7CiAgICAgd2JpbnZkKCk7CiB9Ci0KZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv eDg2L2lvbW11LmMKaW5kZXggNDdhMDc4MjcyYS4uZDZjYmVhZTVjOSAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gveDg2L2lvbW11LmMKQEAgLTIyNyw3ICsyMjcsOCBAQCB2b2lkIF9faHdkb21faW5pdCBh cmNoX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgaWYgKCBwYWdp bmdfbW9kZV90cmFuc2xhdGUoZCkgKQogICAgICAgICAgICAgcmMgPSBzZXRfaWRlbnRpdHlfcDJt X2VudHJ5KGQsIHBmbiwgcDJtX2FjY2Vzc19ydywgMCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg ICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sIElPTU1VRl9yZWFkYWJsZXxJT01N VUZfd3JpdGFibGUpOworICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBfZGZuKHBm biksIF9tZm4ocGZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3Jl YWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAg ICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVkOiAlZFxu IiwKICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjKTsKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggMjkw ZTBhYWRhNi4uZjlkODZmYzgxNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgK KysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRl IDx4ZW4vc3BpbmxvY2suaD4KICNpbmNsdWRlIDx4ZW4vcGNpLmg+CiAjaW5jbHVkZSA8eGVuL3R5 cGVzYWZlLmg+CisjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5jbHVkZSA8cHVibGljL2h2bS9pb3Jl cS5oPgogI2luY2x1ZGUgPHB1YmxpYy9kb21jdGwuaD4KICNpbmNsdWRlIDxhc20vZGV2aWNlLmg+ CkBAIC00Miw2ICs0MywxMSBAQCBUWVBFX1NBRkUodWludDY0X3QsIGRmbik7CiAjdW5kZWYgZGZu X3gKICNlbmRpZgogCitzdGF0aWMgaW5saW5lIGRmbl90IGRmbl9hZGQoZGZuX3QgZGZuLCB1bnNp Z25lZCBsb25nIGkpCit7CisgICAgcmV0dXJuIF9kZm4oZGZuX3goZGZuKSArIGkpOworfQorCiBl eHRlcm4gYm9vbF90IGlvbW11X2VuYWJsZSwgaW9tbXVfZW5hYmxlZDsKIGV4dGVybiBib29sX3Qg Zm9yY2VfaW9tbXUsIGlvbW11X3ZlcmJvc2U7CiBleHRlcm4gYm9vbF90IGlvbW11X3dvcmthcm91 bmRfYmlvc19idWcsIGlvbW11X2lnZng7CkBAIC03OCw5ICs4NCw5IEBAIHZvaWQgaW9tbXVfdGVh cmRvd24oc3RydWN0IGRvbWFpbiAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAgKDF1PDxf SU9NTVVGX3JlYWRhYmxlKQogI2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZpbmUgSU9N TVVGX3dyaXRhYmxlICAoMXU8PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2NoZWNrIGlv bW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50 IGZsYWdzKTsKLWludCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBsb25nIGRmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVjayBp b21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbik7CiAKIGVudW0gaW9t bXVfZmVhdHVyZQogewpAQCAtMjAzLDcgKzIwOSw3IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3Rs KHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9t Y3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBfX211 c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBkZm4sCitpbnQgX19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4g KmQsIGRmbl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHBhZ2VfY291bnQpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9mbHVzaF9h bGwoc3RydWN0IGRvbWFpbiAqZCk7CiAKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=