From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 03/15] iommu: make use of type-safe BFN and MFN in exported functions Date: Wed, 1 Aug 2018 14:40:16 +0100 Message-ID: <20180801134028.1654-4-paul.durrant@citrix.com> References: <20180801134028.1654-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 1fkrMm-0008On-86 for xen-devel@lists.xenproject.org; Wed, 01 Aug 2018 13:40:40 +0000 In-Reply-To: <20180801134028.1654-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: Kevin Tian , Stefano Stabellini , Jun Nakajima , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGVudHJ5IHBvaW50cyB0 byB0aGUgSU9NTVUKc3ViLXN5c3RlbSB0byB1c2UgYmZuX3QgYW5kIG1mbl90IGluIHBsYWNlIG9m IHVuc2lnbmVkIGxvbmcuIEEgc3Vic2VxdWVudApwYXRjaCB3aWxsIHNpbWlsYXJseSBtb2RpZnkg dGhlIG1ldGhvZHMgaW4gdGhlIGlvbW11X29wcyBzdHJ1Y3R1cmUuCgpTaWduZWQtb2ZmLWJ5OiBQ YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzog R2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tz b24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsg PGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxs aW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpD YzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamlt YUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IEdl b3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnYzOgogLSBSZW1vdmVk IG1vc3Qgb2YgdGhlIHVzZXMgb2YgYW4gaW50ZXJtZWRpYXRlICdmcmFtZScgdmFyaWFibGUuCgp2 MjoKIC0gQWRkcmVzc2VkIGNvbW1lbnRzIGZyb20gSmFuLgogLSBVc2UgaW50ZXJtZWRpYXRlICdm cmFtZScgdmFyaWFibGUgdG8gYXZvaWQgZGlyZWN0bHkgZW5jYXBzdWxhdGluZwogICBtZm4gb3Ig Z2ZuIHZhbHVlcyBhcyBiZm5zLgotLS0KIHhlbi9hcmNoL2FybS9wMm0uYyAgICAgICAgICAgICAg ICAgICAgfCAgMyArKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgfCAx MCArKysrLS0tLQogeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAgICAgICAgICB8IDEwICsr KysrLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgICAgICAgICAgICAgIHwgNDUgKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAg ICAgICAgICAgICAgfCAxNiArKysrKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L21tLmMg ICAgICAgICAgICAgIHwgIDUgKystLQogeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jICAgICAgICAg ICAgICB8IDEyICsrKysrLS0tLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAgICAgICAgICAg ICAgfCAgNCArKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAgICAgIHwgMjUg KysrKysrKysrKy0tLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQu YyB8ICAzICsrLQogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgICB8IDE0ICsr KysrKystLS0tCiAxMSBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJt LmMKaW5kZXggMTQ3OTEzODhhZC4uZDcxOWRiMWUzMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJt L3AybS5jCisrKyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtOTUzLDcgKzk1Myw4IEBAIHN0YXRp YyBpbnQgX19wMm1fc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAKICAgICBpZiAo IG5lZWRfaW9tbXUocDJtLT5kb21haW4pICYmCiAgICAgICAgICAobHBhZV92YWxpZChvcmlnX3B0 ZSkgfHwgbHBhZV92YWxpZCgqZW50cnkpKSApCi0gICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1 c2gocDJtLT5kb21haW4sIGdmbl94KHNnZm4pLCAxVUwgPDwgcGFnZV9vcmRlcik7CisgICAgICAg IHJjID0gaW9tbXVfaW90bGJfZmx1c2gocDJtLT5kb21haW4sIF9iZm4oZ2ZuX3goc2dmbikpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFVTCA8PCBwYWdlX29yZGVyKTsKICAgICBl bHNlCiAgICAgICAgIHJjID0gMDsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94 ZW4vYXJjaC94ODYvbW0uYwppbmRleCBhMWExZjVmM2MzLi45OTA3MGY5MTZkIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMjcyOSwxNCAr MjcyOSwxNCBAQCBzdGF0aWMgaW50IF9nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBh Z2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwKICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2Vf Z2V0X293bmVyKHBhZ2UpOwogICAgICAgICBpZiAoIGQgJiYgaXNfcHZfZG9tYWluKGQpICYmIHVu bGlrZWx5KG5lZWRfaW9tbXUoZCkpICkKICAgICAgICAgewotICAgICAgICAgICAgZ2ZuX3QgZ2Zu ID0gX2dmbihtZm5fdG9fZ21mbihkLCBtZm5feChwYWdlX3RvX21mbihwYWdlKSkpKTsKKyAgICAg ICAgICAgIG1mbl90IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCiAgICAgICAgICAgICBpZiAo ICh4ICYgUEdUX3R5cGVfbWFzaykgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAg ICAgIGlvbW11X3JldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuX3goZ2ZuKSk7CisgICAgICAg ICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBfYmZuKG1mbl94KG1mbikp KTsKICAgICAgICAgICAgIGVsc2UgaWYgKCB0eXBlID09IFBHVF93cml0YWJsZV9wYWdlICkKLSAg ICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV9tYXBfcGFnZShkLCBnZm5feChnZm4pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KHBhZ2VfdG9f bWZuKHBhZ2UpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ T01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICBpb21tdV9y ZXQgPSBpb21tdV9tYXBfcGFnZShkLCBfYmZuKG1mbl94KG1mbikpLCBtZm4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfd3JpdGFibGUpOwog ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j IGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCAxNGI1OTM5MjNiLi4yMDg5YjUyMzJk IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tZXB0LmMKQEAgLTg3MCwxNSArODcwLDE5IEBAIG91dDoKICAgICAgICAgICAgIHJj ID0gaW9tbXVfcHRlX2ZsdXNoKGQsIGdmbiwgJmVwdF9lbnRyeS0+ZXB0ZSwgb3JkZXIsIHZ0ZF9w dGVfcHJlc2VudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgeworICAgICAgICAgICAgYmZuX3Qg YmZuID0gX2JmbihnZm4pOworCiAgICAgICAgICAgICBpZiAoIGlvbW11X2ZsYWdzICkKICAgICAg ICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKICAgICAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgZ2Zu ICsgaSwgbWZuX3gobWZuKSArIGksIGlvbW11X2ZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAg cmMgPSBpb21tdV9tYXBfcGFnZShkLCBiZm5fYWRkKGJmbiwgaSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkpLCBpb21tdV9mbGFncyk7CiAg ICAgICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4g Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UocDJt LT5kb21haW4sIGdmbiArIGkpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlv bW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJmbl9hZGQoYmZuLCBpKSkgKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CkBAIC04ODcsNyArODkxLDcgQEAgb3V0OgogICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQogICAgICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBnZm4g KyBpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBiZm5f YWRkKGJmbiwgaSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAg ICAgICAgICAgICAgICByYyA9IHJldDsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5kZXgg YjhjNWQyZWQyNi4uYTQ0MWFmMzg4YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1w dC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtNjg3LDI5ICs2ODcsMzYgQEAg cDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBnZm5fLCBtZm5f dCBtZm4sCiAgICAgICAgICAgICBpZiAoIGlvbW11X29sZF9mbGFncyApCiAgICAgICAgICAgICAg ICAgYW1kX2lvbW11X2ZsdXNoX3BhZ2VzKHAybS0+ZG9tYWluLCBnZm4sIHBhZ2Vfb3JkZXIpOwog ICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCBpb21tdV9wdGVfZmxhZ3MgKQotICAgICAgICAg ICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQotICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UocDJtLT5kb21haW4sIGdm biArIGksIG1mbl94KG1mbikgKyBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW9tbXVfcHRlX2ZsYWdzKTsKLSAgICAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSAp CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYmZuX3QgYmZuID0gX2Jmbihn Zm4pOworCisgICAgICAgICAgICBpZiAoIGlvbW11X3B0ZV9mbGFncyApCisgICAgICAgICAgICAg ICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gKQotICAgICAgICAgICAg ICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwot ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWlu LCBnZm4gKyBpKSApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg ICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UocDJtLT5kb21haW4sIGJmbl9hZGQo YmZuLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fYWRk KG1mbiwgaSksIGlvbW11X3B0ZV9mbGFncyk7CisgICAgICAgICAgICAgICAgICAgIGlmICggdW5s aWtlbHkocmMpICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg ICAgd2hpbGUgKCBpLS0gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRl bWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmbl9hZGQoYmZuLCBpKSkgKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICBlbHNl Ci0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7IGkrKyAp Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3Bh Z2UocDJtLT5kb21haW4sIGdmbiArIGkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGludCByZXQgPSBpb21tdV91bm1hcF9wYWdl KHAybS0+ZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBiZm5fYWRkKGJmbiwgaSkpOwogCi0gICAgICAgICAgICAgICAgaWYgKCAhcmMgKQotICAg ICAgICAgICAgICAgICAgICByYyA9IHJldDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgaWYgKCAhcmMgKQorICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCA4ZTlmYmI1 YTE0Li5mYmY2N2RlZjUwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIv eGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC03MTUsOSArNzE1LDExIEBAIHAybV9yZW1vdmVfcGFn ZShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbl9sLCB1bnNpZ25lZCBs b25nIG1mbiwKIAogICAgICAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICkKICAgICAg ICAgeworICAgICAgICAgICAgYmZuX3QgYmZuID0gX2JmbihtZm4pOworCiAgICAgICAgICAgICBm b3IgKCBpID0gMDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgIGludCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBt Zm4gKyBpKTsKKyAgICAgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0t PmRvbWFpbiwgYmZuX2FkZChiZm4sIGkpKTsKIAogICAgICAgICAgICAgICAgIGlmICggIXJjICkK ICAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CkBAIC03NzQsMTYgKzc3NiwxNyBAQCBndWVz dF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIG1mbl90IG1m biwKICAgICB7CiAgICAgICAgIGlmICggbmVlZF9pb21tdShkKSAmJiB0ID09IHAybV9yYW1fcncg KQogICAgICAgICB7CisgICAgICAgICAgICBiZm5fdCBiZm4gPSBfYmZuKG1mbl94KG1mbikpOwor CiAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQog ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgbWZu X3gobWZuX2FkZChtZm4sIGkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1mbl94KG1mbl9hZGQobWZuLCBpKSksCisgICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBf cGFnZShkLCBiZm5fYWRkKGJmbiwgaSksIG1mbl9hZGQobWZuLCBpKSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwog ICAgICAgICAgICAgICAgIGlmICggcmMgIT0gMCApCiAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICB3aGlsZSAoIGktLSA+IDAgKQogICAgICAgICAgICAgICAgICAgICAgICAg LyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGQsIG1mbl94KG1mbl9hZGQobWZuLCBp KSkpICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShkLCBi Zm5fYWRkKGJmbiwgaSkpICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK IAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CkBAIC0xMTU4LDcgKzExNjEsOCBAQCBp bnQgc2V0X2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbl9sLAogICAgIHsKICAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCiAgICAgICAgICAg ICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlKGQsIGdmbl9sLCBnZm5f bCwgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CisgICAgICAgIHJldHVybiBpb21t dV9tYXBfcGFnZShkLCBfYmZuKGdmbl9sKSwgX21mbihnZm5fbCksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpOwogICAgIH0K IAogICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCAwKTsKQEAgLTEyNDgsNyArMTI1Miw3IEBAIGludCBj bGVhcl9pZGVudGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBn Zm5fbCkKICAgICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkgKQogICAgICAgICAgICAg cmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBpb21tdV91bm1hcF9wYWdlKGQsIGdmbl9sKTsKKyAg ICAgICAgcmV0dXJuIGlvbW11X3VubWFwX3BhZ2UoZCwgX2JmbihnZm5fbCkpOwogICAgIH0KIAog ICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCAwKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf NjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCBjY2E0YWU5MjZlLi5jYzU4 ZTRjZWY0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2Fy Y2gveDg2L3g4Nl82NC9tbS5jCkBAIC0xNDI5LDEzICsxNDI5LDE0IEBAIGludCBtZW1vcnlfYWRk KHVuc2lnbmVkIGxvbmcgc3BmbiwgdW5zaWduZWQgbG9uZyBlcGZuLCB1bnNpZ25lZCBpbnQgcHht KQogICAgIGlmICggaW9tbXVfZW5hYmxlZCAmJiAhaW9tbXVfcGFzc3Rocm91Z2ggJiYgIW5lZWRf aW9tbXUoaGFyZHdhcmVfZG9tYWluKSApCiAgICAgewogICAgICAgICBmb3IgKCBpID0gc3Bmbjsg aSA8IGVwZm47IGkrKyApCi0gICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdlKGhhcmR3YXJl X2RvbWFpbiwgaSwgaSwgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSkgKQorICAgICAg ICAgICAgaWYgKCBpb21tdV9tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIF9iZm4oaSksIF9tZm4o aSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8IElP TU1VRl93cml0YWJsZSkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoIGkg IT0gZXBmbiApCiAgICAgICAgIHsKICAgICAgICAgICAgIHdoaWxlIChpLS0gPiBvbGRfbWF4KQog ICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4g Ki8KLSAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWlu LCBpKSApCisgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGhhcmR3YXJlX2Rv bWFpbiwgX2JmbihpKSkgKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg ICAgICAgZ290byBkZXN0cm95X20ycDsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFi bGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBkOWVjNzExYzczLi5hODNjODgz MmFmIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1v bi9ncmFudF90YWJsZS5jCkBAIC0xMTM1LDEzICsxMTM1LDEzIEBAIG1hcF9ncmFudF9yZWYoCiAg ICAgICAgICAgICAgIShvbGRfcGluICYgKEdOVFBJTl9oc3R3X21hc2t8R05UUElOX2RldndfbWFz aykpICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAhKGtpbmQgJiBNQVBLSU5EX1dSSVRF KSApCi0gICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG1mbl94KG1mbiks IG1mbl94KG1mbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVG X3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVf bWFwX3BhZ2UobGQsIF9iZm4obWZuX3gobWZuKSksIG1mbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpOwogICAg ICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCBhY3RfcGluICYmICFvbGRfcGluICkKICAgICAgICAg ewogICAgICAgICAgICAgaWYgKCAha2luZCApCi0gICAgICAgICAgICAgICAgZXJyID0gaW9tbXVf bWFwX3BhZ2UobGQsIG1mbl94KG1mbiksIG1mbl94KG1mbiksCisgICAgICAgICAgICAgICAgZXJy ID0gaW9tbXVfbWFwX3BhZ2UobGQsIF9iZm4obWZuX3gobWZuKSksIG1mbiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUpOwogICAgICAgICB9CiAg ICAgICAgIGlmICggZXJyICkKQEAgLTE0MDQsMTAgKzE0MDQsMTAgQEAgdW5tYXBfY29tbW9uKAog CiAgICAgICAgIGtpbmQgPSBtYXBraW5kKGxndCwgcmQsIG9wLT5tZm4pOwogICAgICAgICBpZiAo ICFraW5kICkKLSAgICAgICAgICAgIGVyciA9IGlvbW11X3VubWFwX3BhZ2UobGQsIG1mbl94KG9w LT5tZm4pKTsKKyAgICAgICAgICAgIGVyciA9IGlvbW11X3VubWFwX3BhZ2UobGQsIF9iZm4obWZu X3gob3AtPm1mbikpKTsKICAgICAgICAgZWxzZSBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUp ICkKLSAgICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxkLCBtZm5feChvcC0+bWZuKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KG9wLT5tZm4pLCBJT01NVUZf cmVhZGFibGUpOworICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIF9iZm4obWZu X3gob3AtPm1mbikpLCBvcC0+bWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SU9NTVVGX3JlYWRhYmxlKTsKIAogICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsK IApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMK aW5kZXggZTI5ZDU5NjcyNy4uYTU2NTY3NDNjMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1v cnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC04MzMsMTEgKzgzMywxMSBAQCBpbnQg eGVubWVtX2FkZF90b19waHlzbWFwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fYWRkX3Rv X3BoeXNtYXAgKnhhdHAsCiAKICAgICAgICAgdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3Rs YikgPSAwOwogCi0gICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIHhhdHAtPmlkeCAt IGRvbmUsIGRvbmUpOworICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCBfYmZuKHhh dHAtPmlkeCAtIGRvbmUpLCBkb25lKTsKICAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICYmIHJj ID49IDAgKQogICAgICAgICAgICAgcmMgPSByZXQ7CiAKLSAgICAgICAgcmV0ID0gaW9tbXVfaW90 bGJfZmx1c2goZCwgeGF0cC0+Z3BmbiAtIGRvbmUsIGRvbmUpOworICAgICAgICByZXQgPSBpb21t dV9pb3RsYl9mbHVzaChkLCBfYmZuKHhhdHAtPmdwZm4gLSBkb25lKSwgZG9uZSk7CiAgICAgICAg IGlmICggdW5saWtlbHkocmV0KSAmJiByYyA+PSAwICkKICAgICAgICAgICAgIHJjID0gcmV0Owog ICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDBmYWFiMThlODguLjMwM2FjNTZlMDgg MTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgaW9tbXVf ZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKICAgICBhcmNoX2lvbW11X2RvbWFpbl9k ZXN0cm95KGQpOwogfQogCi1pbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgbG9uZyBiZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAoraW50IGlvbW11X21hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwgbWZuX3QgbWZuLAogICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpo ZCA9IGRvbV9pb21tdShkKTsKQEAgLTI2NCwxMyArMjY0LDEzIEBAIGludCBpb21tdV9tYXBfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwgdW5zaWduZWQgbG9uZyBtZm4s CiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAg IHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBiZm4s IG1mbiwgZmxhZ3MpOworICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwgYmZu X3goYmZuKSwgbWZuX3gobWZuKSwgZmxhZ3MpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAg ICB7CiAgICAgICAgIGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1p dCgpICkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAg ImQlZDogSU9NTVUgbWFwcGluZyBiZm4gJSNseCB0byBtZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAot ICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgYmZuLCBtZm4sIHJjKTsKKyAgICAgICAg ICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBwaW5nIGJmbiAlIlBSSV9iZm4iIHRvIG1mbiAlIlBS SV9tZm4iIGZhaWxlZDogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBi Zm5feChiZm4pLCBtZm5feChtZm4pLCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVf ZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKQEAgLTI3OSw3ICsyNzks NyBAQCBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBi Zm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IGlvbW11X3Vu bWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4pCitpbnQgaW9tbXVf dW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4pCiB7CiAgICAgY29uc3Qgc3Ry dWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMjg3 LDEzICsyODcsMTMgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgbG9uZyBiZm4pCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3Jt X29wcyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51 bm1hcF9wYWdlKGQsIGJmbik7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdl KGQsIGJmbl94KGJmbikpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAg IGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUg dW5tYXBwaW5nIGJmbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ ZG9tYWluX2lkLCBiZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1h cHBpbmcgYmZuICUiUFJJX2JmbiIgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICBk LT5kb21haW5faWQsIGJmbl94KGJmbiksIHJjKTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2Fy ZV9kb21haW4oZCkgKQogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwpAQCAtMzE5LDggKzMx OSw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X2ZyZWVfcGFnZXRhYmxlcyh1bnNpZ25lZCBsb25nIHVu dXNlZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVtYXNrX2N5Y2xlKHNtcF9wcm9j ZXNzb3JfaWQoKSwgJmNwdV9vbmxpbmVfbWFwKSk7CiB9CiAKLWludCBpb21tdV9pb3RsYl9mbHVz aChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwKLSAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCkKK2ludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1 Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4sIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogewogICAg IGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwogICAgIGludCBy YzsKQEAgLTMyOCwxMyArMzI3LDEzIEBAIGludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFo ZC0+cGxhdGZvcm1fb3BzIHx8ICFoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaCApCiAgICAg ICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaChk LCBiZm4sIHBhZ2VfY291bnQpOworICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+aW90bGJfZmx1 c2goZCwgYmZuX3goYmZuKSwgcGFnZV9jb3VudCk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQog ICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxp bWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAg ICAiZCVkOiBJT01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBiZm4gJSNseCwgcGFnZSBjb3Vu dCAldVxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjLCBiZm4sIHBhZ2Vf Y291bnQpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIElPVExCIGZsdXNoIGZhaWxl ZDogJWQsIGJmbiAlIlBSSV9iZm4iLCBwYWdlIGNvdW50ICV1XG4iLAorICAgICAgICAgICAgICAg ICAgIGQtPmRvbWFpbl9pZCwgcmMsIGJmbl94KGJmbiksIHBhZ2VfY291bnQpOwogCiAgICAgICAg IGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2go ZCk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwppbmRleCBjYzJiZmVhMTYyLi5k YzM3ZGNlNGI2IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0 ZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKQEAgLTE1NSw3 ICsxNTUsOCBAQCB2b2lkIF9faHdkb21faW5pdCB2dGRfc2V0X2h3ZG9tX21hcHBpbmcoc3RydWN0 IGRvbWFpbiAqZCkKICAgICAgICAgdG1wID0gMSA8PCAoUEFHRV9TSElGVCAtIFBBR0VfU0hJRlRf NEspOwogICAgICAgICBmb3IgKCBqID0gMDsgaiA8IHRtcDsgaisrICkKICAgICAgICAgewotICAg ICAgICAgICAgaW50IHJldCA9IGlvbW11X21hcF9wYWdlKGQsIHBmbiAqIHRtcCArIGosIHBmbiAq IHRtcCArIGosCisgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVfbWFwX3BhZ2UoZCwgX2Jmbihw Zm4gKiB0bXAgKyBqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZu KHBmbiAqIHRtcCArIGopLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElP TU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwogCiAgICAgICAgICAgICBpZiAoICFyYyAp CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9p b21tdS5oCmluZGV4IDE0YWRhMGMxNGUuLmEzYzM2YzExNDggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0yNCw2ICsy NCw3IEBACiAjaW5jbHVkZSA8eGVuL3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8eGVuL3BjaS5oPgog I2luY2x1ZGUgPHhlbi90eXBlc2FmZS5oPgorI2luY2x1ZGUgPHhlbi9tbS5oPgogI2luY2x1ZGUg PHB1YmxpYy9odm0vaW9yZXEuaD4KICNpbmNsdWRlIDxwdWJsaWMvZG9tY3RsLmg+CiAjaW5jbHVk ZSA8YXNtL2RldmljZS5oPgpAQCAtNDIsNiArNDMsMTEgQEAgVFlQRV9TQUZFKHVpbnQ2NF90LCBi Zm4pOwogI3VuZGVmIGJmbl94CiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBiZm5fdCBiZm5fYWRk KGJmbl90IGJmbiwgdW5zaWduZWQgbG9uZyBpKQoreworICAgIHJldHVybiBfYmZuKGJmbl94KGJm bikgKyBpKTsKK30KKwogI2RlZmluZSBJT01NVV9QQUdFX1NISUZUIDEyCiAjZGVmaW5lIElPTU1V X1BBR0VfU0laRSAgKF9BQygxLEwpIDw8IElPTU1VX1BBR0VfU0hJRlQpCiAjZGVmaW5lIElPTU1V X1BBR0VfTUFTSyAgKH4oSU9NTVVfUEFHRV9TSVpFIC0gMSkpCkBAIC04Niw5ICs5Miw5IEBAIHZv aWQgaW9tbXVfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFk YWJsZSAgKDF1PDxfSU9NTVVGX3JlYWRhYmxlKQogI2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEK ICNkZWZpbmUgSU9NTVVGX3dyaXRhYmxlICAoMXU8PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19t dXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg YmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwg dW5zaWduZWQgaW50IGZsYWdzKTsKLWludCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbik7CitpbnQgX19tdXN0X2NoZWNrIGlv bW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IF9f bXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbik7 CiAKIGVudW0gaW9tbXVfZmVhdHVyZQogewpAQCAtMjEzLDcgKzIxOSw3IEBAIGludCBpb21tdV9k b19wY2lfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQg aW9tbXVfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAg ICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7 CiAKLWludCBfX211c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBiZm4sCitpbnQgX19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0 cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV9p b3RsYl9mbHVzaF9hbGwoc3RydWN0IGRvbWFpbiAqZCk7CiAKLS0gCjIuMTEuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=