From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 2/6] iommu: make use of type-safe DFN and MFN in exported functions Date: Wed, 12 Sep 2018 12:30:24 +0100 Message-ID: <20180912113028.19610-3-paul.durrant@citrix.com> References: <20180912113028.19610-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 1g03Ly-0005lT-Ur for xen-devel@lists.xenproject.org; Wed, 12 Sep 2018 11:30:38 +0000 In-Reply-To: <20180912113028.19610-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 YW5AaW50ZWwuY29tPgpBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgot LS0KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9y Z2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8 aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlA a2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBU aW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGlu dGVsLmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4K CnY3OgogLSBSZS1iYXNlIGFuZCByZS1uYW1lIEJGTiAtPiBERk4uCiAtIEFkZGVkIEphbidzIEEt YiBzaW5jZSByZS1uYW1pbmcgd2FzIHB1cmVseSBtZWNoYW5pY2FsLgoKdjY6CiAtIFJlLWJhc2Uu Cgp2MzoKIC0gUmVtb3ZlZCBtb3N0IG9mIHRoZSB1c2VzIG9mIGFuIGludGVybWVkaWF0ZSAnZnJh bWUnIHZhcmlhYmxlLgoKdjI6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEphbi4KIC0gVXNl IGludGVybWVkaWF0ZSAnZnJhbWUnIHZhcmlhYmxlIHRvIGF2b2lkIGRpcmVjdGx5IGVuY2Fwc3Vs YXRpbmcKICAgbWZuIG9yIGdmbiB2YWx1ZXMgYXMgZGZucy4KLS0tCiB4ZW4vYXJjaC9hcm0vcDJt LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKystCiB4ZW4vYXJjaC94ODYvbW0uYyAgICAgICAg ICAgICAgICAgICAgIHwgMTAgKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgICAg ICAgICAgICAgfCAxMCArKysrKy0tLQogeGVuL2FyY2gveDg2L21tL3AybS1wdC5jICAgICAgICAg ICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94 ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLQogeGVuL2FyY2gv eDg2L3g4Nl82NC9tbS5jICAgICAgICAgICAgICB8ICA1ICsrLS0KIHhlbi9jb21tb24vZ3JhbnRf dGFibGUuYyAgICAgICAgICAgICAgfCAxMiArKysrKy0tLS0tCiB4ZW4vY29tbW9uL21lbW9yeS5j ICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9t bXUuYyAgICAgICB8IDI1ICsrKysrKysrKystLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC94ODYvdnRkLmMgfCAgMyArKy0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAg ICAgICAgICAgfCAxNCArKysrKysrLS0tLQogMTEgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9u cygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIv eGVuL2FyY2gvYXJtL3AybS5jCmluZGV4IDEzNjRlNTk2MGEuLjBkYjEyYjAxZjEgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL2FybS9wMm0uYworKysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTk1Nyw3 ICs5NTcsOCBAQCBzdGF0aWMgaW50IF9fcDJtX3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAq cDJtLAogCiAgICAgaWYgKCBuZWVkX2lvbW11KHAybS0+ZG9tYWluKSAmJgogICAgICAgICAgKGxw YWVfaXNfdmFsaWQob3JpZ19wdGUpIHx8IGxwYWVfaXNfdmFsaWQoKmVudHJ5KSkgKQotICAgICAg ICByYyA9IGlvbW11X2lvdGxiX2ZsdXNoKHAybS0+ZG9tYWluLCBnZm5feChzZ2ZuKSwgMVVMIDw8 IHBhZ2Vfb3JkZXIpOworICAgICAgICByYyA9IGlvbW11X2lvdGxiX2ZsdXNoKHAybS0+ZG9tYWlu LCBfZGZuKGdmbl94KHNnZm4pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxVUwg PDwgcGFnZV9vcmRlcik7CiAgICAgZWxzZQogICAgICAgICByYyA9IDA7CiAKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggYmFlYTJmNWU2My4u ZTUwM2RlZGViZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gv eDg2L21tLmMKQEAgLTI3NTcsMTQgKzI3NTcsMTQgQEAgc3RhdGljIGludCBfZ2V0X3BhZ2VfdHlw ZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgIHN0 cnVjdCBkb21haW4gKmQgPSBwYWdlX2dldF9vd25lcihwYWdlKTsKICAgICAgICAgaWYgKCBkICYm IGlzX3B2X2RvbWFpbihkKSAmJiB1bmxpa2VseShuZWVkX2lvbW11KGQpKSApCiAgICAgICAgIHsK LSAgICAgICAgICAgIGdmbl90IGdmbiA9IF9nZm4obWZuX3RvX2dtZm4oZCwgbWZuX3gocGFnZV90 b19tZm4ocGFnZSkpKSk7CisgICAgICAgICAgICBtZm5fdCBtZm4gPSBwYWdlX3RvX21mbihwYWdl KTsKIAogICAgICAgICAgICAgaWYgKCAoeCAmIFBHVF90eXBlX21hc2spID09IFBHVF93cml0YWJs ZV9wYWdlICkKLSAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV91bm1hcF9wYWdlKGQs IGdmbl94KGdmbikpOworICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X3VubWFwX3Bh Z2UoZCwgX2RmbihtZm5feChtZm4pKSk7CiAgICAgICAgICAgICBlbHNlIGlmICggdHlwZSA9PSBQ R1Rfd3JpdGFibGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfbWFw X3BhZ2UoZCwgZ2ZuX3goZ2ZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZm5feChwYWdlX3RvX21mbihwYWdlKSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7Cisg ICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfbWFwX3BhZ2UoZCwgX2RmbihtZm5feCht Zm4pKSwgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElP TU1VRl9yZWFkYWJsZSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L21tL3AybS1lcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXgg MWZmNGYxNGFlNC4uOWEzYTkwZTllNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1l cHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCkBAIC04NzAsMTUgKzg3MCwxOSBA QCBvdXQ6CiAgICAgICAgICAgICByYyA9IGlvbW11X3B0ZV9mbHVzaChkLCBnZm4sICZlcHRfZW50 cnktPmVwdGUsIG9yZGVyLCB2dGRfcHRlX3ByZXNlbnQpOwogICAgICAgICBlbHNlCiAgICAgICAg IHsKKyAgICAgICAgICAgIGRmbl90IGRmbiA9IF9kZm4oZ2ZuKTsKKwogICAgICAgICAgICAgaWYg KCBpb21tdV9mbGFncyApCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBv cmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICByYyA9 IGlvbW11X21hcF9wYWdlKGQsIGdmbiArIGksIG1mbl94KG1mbikgKyBpLCBpb21tdV9mbGFncyk7 CisgICAgICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgZGZuX2FkZChkZm4s IGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl9hZGQobWZu LCBpKSwgaW9tbXVfZmxhZ3MpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJj KSApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxl ICggaS0tICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8g c2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyBpKSApCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZm5fYWRkKGRmbiwg aSkpICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtODg3LDcgKzg5MSw3IEBAIG91dDoKICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVy KTsgaSsrICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldCA9IGlv bW11X3VubWFwX3BhZ2UoZCwgZ2ZuICsgaSk7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IGlv bW11X3VubWFwX3BhZ2UoZCwgZGZuX2FkZChkZm4sIGkpKTsKICAgICAgICAgICAgICAgICAgICAg aWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CiAgICAgICAgICAg ICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jIGIveGVuL2FyY2gv eDg2L21tL3AybS1wdC5jCmluZGV4IGI4YzVkMmVkMjYuLjg4MWU5ZTg3YjggMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMK QEAgLTY4NywyOSArNjg3LDM2IEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4g KnAybSwgZ2ZuX3QgZ2ZuXywgbWZuX3QgbWZuLAogICAgICAgICAgICAgaWYgKCBpb21tdV9vbGRf ZmxhZ3MgKQogICAgICAgICAgICAgICAgIGFtZF9pb21tdV9mbHVzaF9wYWdlcyhwMm0tPmRvbWFp biwgZ2ZuLCBwYWdlX29yZGVyKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggaW9tbXVf cHRlX2ZsYWdzICkKLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29y ZGVyKTsgaSsrICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByYyA9IGlvbW11X21h cF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlvbW11X3B0ZV9mbGFncyk7Ci0gICAgICAgICAgICAg ICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAg ICAgIGRmbl90IGRmbiA9IF9kZm4oZ2ZuKTsKKworICAgICAgICAgICAgaWYgKCBpb21tdV9wdGVf ZmxhZ3MgKQorICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29y ZGVyKTsgaSsrICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxl ICggaS0tICkKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRp c2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVf dW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSkgKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdl KHAybS0+ZG9tYWluLCBkZm5fYWRkKGRmbiwgaSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkpLCBpb21tdV9wdGVfZmxhZ3MpOworICAgICAg ICAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tICkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9t YWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk Zm5fYWRkKGRmbiwgaSkpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7CiAKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVM IDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlu dCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyBpKTsKKyAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9v cmRlcik7IGkrKyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQg cmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuX2FkZChkZm4sIGkpKTsKIAotICAgICAgICAg ICAgICAgIGlmICggIXJjICkKLSAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7Ci0gICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICggIXJjICkKKyAgICAgICAgICAgICAgICAg ICAgICAgIHJjID0gcmV0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAog ICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYv bW0vcDJtLmMKaW5kZXggNjAyMDU1M2MxNy4uODAxYjYyOWI5NSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpAQCAtNzE1LDkgKzcx NSwxMSBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQg bG9uZyBnZm5fbCwgdW5zaWduZWQgbG9uZyBtZm4sCiAKICAgICAgICAgaWYgKCBuZWVkX2lvbW11 KHAybS0+ZG9tYWluKSApCiAgICAgICAgIHsKKyAgICAgICAgICAgIGRmbl90IGRmbiA9IF9kZm4o bWZuKTsKKwogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBwYWdlX29yZGVyKTsg aSsrICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVfdW5t YXBfcGFnZShwMm0tPmRvbWFpbiwgbWZuICsgaSk7CisgICAgICAgICAgICAgICAgaW50IHJldCA9 IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGRmbl9hZGQoZGZuLCBpKSk7CiAKICAgICAg ICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwpAQCAt Nzc0LDE2ICs3NzYsMTcgQEAgZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAq ZCwgZ2ZuX3QgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgewogICAgICAgICBpZiAoIG5lZWRfaW9tbXUo ZCkgJiYgdCA9PSBwMm1fcmFtX3J3ICkKICAgICAgICAgeworICAgICAgICAgICAgZGZuX3QgZGZu ID0gX2RmbihtZm5feChtZm4pKTsKKwogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8 PCBwYWdlX29yZGVyKTsgaSsrICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByYyA9 IGlvbW11X21hcF9wYWdlKGQsIG1mbl94KG1mbl9hZGQobWZuLCBpKSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtZm5feChtZm5fYWRkKG1mbiwgaSkpLAorICAgICAgICAg ICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgZGZuX2FkZChkZm4sIGkpLCBtZm5fYWRkKG1m biwgaSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFi bGV8SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgICAgICAgICBpZiAoIHJjICE9IDAgKQogICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gPiAwICkKICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9j aGVjay4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShk LCBtZm5feChtZm5fYWRkKG1mbiwgaSkpKSApCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo IGlvbW11X3VubWFwX3BhZ2UoZCwgZGZuX2FkZChkZm4sIGkpKSApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOwpA QCAtMTE1OCw3ICsxMTYxLDggQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50cnkoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCwKICAgICB7CiAgICAgICAgIGlmICggIW5lZWRf aW9tbXUoZCkgKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBpb21tdV9t YXBfcGFnZShkLCBnZm5fbCwgZ2ZuX2wsIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUp OworICAgICAgICByZXR1cm4gaW9tbXVfbWFwX3BhZ2UoZCwgX2RmbihnZm5fbCksIF9tZm4oZ2Zu X2wpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9N TVVGX3dyaXRhYmxlKTsKICAgICB9CiAKICAgICBnZm5fbG9jayhwMm0sIGdmbiwgMCk7CkBAIC0x MjQ4LDcgKzEyNTIsNyBAQCBpbnQgY2xlYXJfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wpCiAgICAgewogICAgICAgICBpZiAoICFuZWVkX2lv bW11KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gaW9tbXVfdW5t YXBfcGFnZShkLCBnZm5fbCk7CisgICAgICAgIHJldHVybiBpb21tdV91bm1hcF9wYWdlKGQsIF9k Zm4oZ2ZuX2wpKTsKICAgICB9CiAKICAgICBnZm5fbG9jayhwMm0sIGdmbiwgMCk7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMK aW5kZXggNjA2NTA4Yzg3MS4uMDQ4YmRhODViYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl82NC9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtMTQyOSwxMyArMTQy OSwxNCBAQCBpbnQgbWVtb3J5X2FkZCh1bnNpZ25lZCBsb25nIHNwZm4sIHVuc2lnbmVkIGxvbmcg ZXBmbiwgdW5zaWduZWQgaW50IHB4bSkKICAgICBpZiAoIGlvbW11X2VuYWJsZWQgJiYgIWlvbW11 X3Bhc3N0aHJvdWdoICYmICFuZWVkX2lvbW11KGhhcmR3YXJlX2RvbWFpbikgKQogICAgIHsKICAg ICAgICAgZm9yICggaSA9IHNwZm47IGkgPCBlcGZuOyBpKysgKQotICAgICAgICAgICAgaWYgKCBp b21tdV9tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIGksIGksIElPTU1VRl9yZWFkYWJsZXxJT01N VUZfd3JpdGFibGUpICkKKyAgICAgICAgICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoaGFyZHdhcmVf ZG9tYWluLCBfZGZuKGkpLCBfbWZuKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpICkKICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgaWYgKCBpICE9IGVwZm4gKQogICAgICAgICB7CiAgICAgICAgICAgICB3 aGlsZSAoaS0tID4gb2xkX21heCkKICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8g c2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1h cF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwgaSkgKQorICAgICAgICAgICAgICAgIGlmICggaW9tbXVf dW5tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIF9kZm4oaSkpICkKICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7CiAKICAgICAgICAgICAgIGdvdG8gZGVzdHJveV9tMnA7CmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5k ZXggNzNkM2VkMzcwMS4uMmQwMWNhZDE3NiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMTE0MywxMyArMTE0Mywx MyBAQCBtYXBfZ3JhbnRfcmVmKAogICAgICAgICAgICAgICEob2xkX3BpbiAmIChHTlRQSU5faHN0 d19tYXNrfEdOVFBJTl9kZXZ3X21hc2spKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgg IShraW5kICYgTUFQS0lORF9XUklURSkgKQotICAgICAgICAgICAgICAgIGVyciA9IGlvbW11X21h cF9wYWdlKGxkLCBtZm5feChtZm4pLCBtZm5feChtZm4pLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAg ICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxkLCBfZGZuKG1mbl94KG1mbikpLCBtZm4s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwg SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICggYWN0X3BpbiAm JiAhb2xkX3BpbiApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggIWtpbmQgKQotICAgICAg ICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxkLCBtZm5feChtZm4pLCBtZm5feChtZm4p LAorICAgICAgICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxkLCBfZGZuKG1mbl94KG1m bikpLCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3Jl YWRhYmxlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIGVyciApCkBAIC0xMzk4LDEwICsxMzk4 LDEwIEBAIHVubWFwX2NvbW1vbigKIAogICAgICAgICBraW5kID0gbWFwa2luZChsZ3QsIHJkLCBv cC0+bWZuKTsKICAgICAgICAgaWYgKCAha2luZCApCi0gICAgICAgICAgICBlcnIgPSBpb21tdV91 bm1hcF9wYWdlKGxkLCBtZm5feChvcC0+bWZuKSk7CisgICAgICAgICAgICBlcnIgPSBpb21tdV91 bm1hcF9wYWdlKGxkLCBfZGZuKG1mbl94KG9wLT5tZm4pKSk7CiAgICAgICAgIGVsc2UgaWYgKCAh KGtpbmQgJiBNQVBLSU5EX1dSSVRFKSApCi0gICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFn ZShsZCwgbWZuX3gob3AtPm1mbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt Zm5feChvcC0+bWZuKSwgSU9NTVVGX3JlYWRhYmxlKTsKKyAgICAgICAgICAgIGVyciA9IGlvbW11 X21hcF9wYWdlKGxkLCBfZGZuKG1mbl94KG9wLT5tZm4pKSwgb3AtPm1mbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSk7CiAKICAgICAgICAgZG91Ymxl X2d0X3VubG9jayhsZ3QsIHJndCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbWVtb3J5LmMg Yi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IDk5NmY5NGIxMDMuLjg5YjIxMWQ2YWEgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9tZW1vcnkuYwpAQCAt ODM0LDExICs4MzQsMTEgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcChzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwICp4YXRwLAogCiAgICAgICAgIHRoaXNfY3B1 KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpID0gMDsKIAotICAgICAgICByZXQgPSBpb21tdV9pb3Rs Yl9mbHVzaChkLCB4YXRwLT5pZHggLSBkb25lLCBkb25lKTsKKyAgICAgICAgcmV0ID0gaW9tbXVf aW90bGJfZmx1c2goZCwgX2Rmbih4YXRwLT5pZHggLSBkb25lKSwgZG9uZSk7CiAgICAgICAgIGlm ICggdW5saWtlbHkocmV0KSAmJiByYyA+PSAwICkKICAgICAgICAgICAgIHJjID0gcmV0OwogCi0g ICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIHhhdHAtPmdwZm4gLSBkb25lLCBkb25l KTsKKyAgICAgICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1c2goZCwgX2Rmbih4YXRwLT5ncGZuIC0g ZG9uZSksIGRvbmUpOwogICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgJiYgcmMgPj0gMCApCiAg ICAgICAgICAgICByYyA9IHJldDsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCAx MGQxMjUyNTU0Li4wYzZlNTkwNGRhIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTI1NCw3 ICsyNTQsNyBAQCB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCiAg ICAgYXJjaF9pb21tdV9kb21haW5fZGVzdHJveShkKTsKIH0KIAotaW50IGlvbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBsb25nIG1mbiwK K2ludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90IG1m biwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAgICAgY29uc3Qg c3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CkBAIC0yNjMsMTMgKzI2Mywx MyBAQCBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBk Zm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5w bGF0Zm9ybV9vcHMgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJjID0gaGQtPnBsYXRmb3Jt X29wcy0+bWFwX3BhZ2UoZCwgZGZuLCBtZm4sIGZsYWdzKTsKKyAgICByYyA9IGhkLT5wbGF0Zm9y bV9vcHMtPm1hcF9wYWdlKGQsIGRmbl94KGRmbiksIG1mbl94KG1mbiksIGZsYWdzKTsKICAgICBp ZiAoIHVubGlrZWx5KHJjKSApCiAgICAgewogICAgICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19k b3duICYmIHByaW50a19yYXRlbGltaXQoKSApCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VS UgotICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIG1hcHBpbmcgZGZuICUjbHggdG8gbWZu ICUjbHggZmFpbGVkOiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGRm biwgbWZuLCByYyk7CisgICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgbWFwcGluZyBkZm4g JSJQUklfZGZuIiB0byBtZm4gJSJQUklfbWZuIiBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAg ICAgICAgIGQtPmRvbWFpbl9pZCwgZGZuX3goZGZuKSwgbWZuX3gobWZuKSwgcmMpOwogCiAgICAg ICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jh c2goZCk7CkBAIC0yNzgsNyArMjc4LDcgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICByZXR1cm4g cmM7CiB9CiAKLWludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZGZuKQoraW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3Qg ZGZuKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQp OwogICAgIGludCByYzsKQEAgLTI4NiwxMyArMjg2LDEzIEBAIGludCBpb21tdV91bm1hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuKQogICAgIGlmICggIWlvbW11X2Vu YWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJj ID0gaGQtPnBsYXRmb3JtX29wcy0+dW5tYXBfcGFnZShkLCBkZm4pOworICAgIHJjID0gaGQtPnBs YXRmb3JtX29wcy0+dW5tYXBfcGFnZShkLCBkZm5feChkZm4pKTsKICAgICBpZiAoIHVubGlrZWx5 KHJjKSApCiAgICAgewogICAgICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50 a19yYXRlbGltaXQoKSApCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgotICAgICAgICAg ICAgICAgICAgICJkJWQ6IElPTU1VIHVubWFwcGluZyBkZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAot ICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZGZuLCByYyk7CisgICAgICAgICAgICAg ICAgICAgImQlZDogSU9NTVUgdW5tYXBwaW5nIGRmbiAlIlBSSV9kZm4iIGZhaWxlZDogJWRcbiIs CisgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBkZm5feChkZm4pLCByYyk7CiAKICAg ICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkKTsKQEAgLTMxOCw4ICszMTgsNyBAQCBzdGF0aWMgdm9pZCBpb21tdV9mcmVlX3BhZ2V0 YWJsZXModW5zaWduZWQgbG9uZyB1bnVzZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3B1bWFza19jeWNsZShzbXBfcHJvY2Vzc29yX2lkKCksICZjcHVfb25saW5lX21hcCkpOwogfQog Ci1pbnQgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBk Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCitpbnQg aW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCB1bnNpZ25lZCBp bnQgcGFnZV9jb3VudCkKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRv bV9pb21tdShkKTsKICAgICBpbnQgcmM7CkBAIC0zMjcsMTMgKzMyNiwxMyBAQCBpbnQgaW9tbXVf aW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCiAgICAgaWYg KCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyB8fCAhaGQtPnBsYXRmb3JtX29w cy0+aW90bGJfZmx1c2ggKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJjID0gaGQtPnBsYXRm b3JtX29wcy0+aW90bGJfZmx1c2goZCwgZGZuLCBwYWdlX2NvdW50KTsKKyAgICByYyA9IGhkLT5w bGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoKGQsIGRmbl94KGRmbiksIHBhZ2VfY291bnQpOwogICAg IGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQtPmlzX3NodXR0aW5n X2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0df RVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgSU9UTEIgZmx1c2ggZmFpbGVkOiAl ZCwgZGZuICUjbHgsIHBhZ2UgY291bnQgJXVcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9t YWluX2lkLCByYywgZGZuLCBwYWdlX2NvdW50KTsKKyAgICAgICAgICAgICAgICAgICAiZCVkOiBJ T01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBkZm4gJSJQUklfZGZuIiwgcGFnZSBjb3VudCAl dVxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjLCBkZm5feChkZm4pLCBw YWdlX2NvdW50KTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAg ICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3g4Ni92dGQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRk LmMKaW5kZXggYWM2NTNlZWEwZS4uOWU0ZTgwZGVlZCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQveDg2L3Z0ZC5jCkBAIC0xMDcsNyArMTA3LDggQEAgdm9pZCBfX2h3ZG9tX2luaXQgdnRkX3Nl dF9od2RvbV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAgICAgcGFnZV9pc19y YW1fdHlwZShwZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkgKQogICAgICAgICAgICAgY29udGlu dWU7CiAKLSAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBwZm4sIHBmbiwgSU9NTVVGX3Jl YWRhYmxlfElPTU1VRl93cml0YWJsZSk7CisgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwg X2RmbihwZm4pLCBfbWZuKHBmbiksCisJCQkgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dy aXRhYmxlKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dB Uk5JTkcgVlREUFJFRklYICIgZCVkOiBJT01NVSBtYXBwaW5nIGZhaWxlZDogJWRcbiIsCiAgICAg ICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByYyk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDE5ZDVkNTVkNzku LjI5OWI2OWVlN2YgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hl bi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8eGVuL3Nw aW5sb2NrLmg+CiAjaW5jbHVkZSA8eGVuL3BjaS5oPgogI2luY2x1ZGUgPHhlbi90eXBlc2FmZS5o PgorI2luY2x1ZGUgPHhlbi9tbS5oPgogI2luY2x1ZGUgPHB1YmxpYy9odm0vaW9yZXEuaD4KICNp bmNsdWRlIDxwdWJsaWMvZG9tY3RsLmg+CiAjaW5jbHVkZSA8YXNtL2RldmljZS5oPgpAQCAtNDIs NiArNDMsMTEgQEAgVFlQRV9TQUZFKHVpbnQ2NF90LCBkZm4pOwogI3VuZGVmIGRmbl94CiAjZW5k aWYKIAorc3RhdGljIGlubGluZSBkZm5fdCBkZm5fYWRkKGRmbl90IGRmbiwgdW5zaWduZWQgbG9u ZyBpKQoreworICAgIHJldHVybiBfZGZuKGRmbl94KGRmbikgKyBpKTsKK30KKwogI2RlZmluZSBJ T01NVV9QQUdFX1NISUZUIDEyCiAjZGVmaW5lIElPTU1VX1BBR0VfU0laRSAgKF9BQygxLEwpIDw8 IElPTU1VX1BBR0VfU0hJRlQpCiAjZGVmaW5lIElPTU1VX1BBR0VfTUFTSyAgKH4oSU9NTVVfUEFH RV9TSVpFIC0gMSkpCkBAIC04Niw5ICs5Miw5IEBAIHZvaWQgaW9tbXVfdGVhcmRvd24oc3RydWN0 IGRvbWFpbiAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAgKDF1PDxfSU9NTVVGX3JlYWRh YmxlKQogI2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZpbmUgSU9NTVVGX3dyaXRhYmxl ICAoMXU8PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKLWlu dCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGRmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIGRmbl90IGRmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3Qg bWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbik7CiAKIGVudW0gaW9tbXVfZmVhdHVyZQog ewpAQCAtMjExLDcgKzIxNyw3IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVjdCB4ZW5f ZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9tY3RsKHN0cnVjdCB4 ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBfX211c3RfY2hlY2sgaW9t bXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4sCitpbnQg X19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRm biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2Vf Y291bnQpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRv bWFpbiAqZCk7CiAKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=