From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 03/13] iommu: make use of type-safe BFN and MFN in exported functions Date: Tue, 17 Jul 2018 14:38:06 +0100 Message-ID: <20180717133816.37958-4-paul.durrant@citrix.com> References: <20180717133816.37958-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 1ffQBP-0005mj-Ej for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:38:27 +0000 In-Reply-To: <20180717133816.37958-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 , Wei Liu , 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 YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+ CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBS emVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVs bGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdy YWxsQGFybS5jb20+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUgPHdl aS5saXUyQGNpdHJpeC5jb20+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5j b20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IEdlb3JnZSBEdW5s YXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnYzOgogLSBSZW1vdmVkIG1vc3Qgb2Yg dGhlIHVzZXMgb2YgYW4gaW50ZXJtZWRpYXRlICdmcmFtZScgdmFyaWFibGUuCgp2MjoKIC0gQWRk cmVzc2VkIGNvbW1lbnRzIGZyb20gSmFuLgogLSBVc2UgaW50ZXJtZWRpYXRlICdmcmFtZScgdmFy aWFibGUgdG8gYXZvaWQgZGlyZWN0bHkgZW5jYXBzdWxhdGluZwogICBtZm4gb3IgZ2ZuIHZhbHVl cyBhcyBiZm5zLgotLS0KIHhlbi9hcmNoL2FybS9wMm0uYyAgICAgICAgICAgICAgICAgICAgfCAg MyArKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrLS0t LQogeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAgICAgICAgICB8IDEwICsrKysrLS0tCiB4 ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICAgICAg ICAgfCAxNiArKysrKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgICAgICAgICAg ICAgIHwgIDUgKystLQogeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jICAgICAgICAgICAgICB8IDEy ICsrKysrLS0tLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgfCAgNCAr Ky0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAgICAgIHwgMjUgKysrKysrKysr Ky0tLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYyB8ICAzICsr LQogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgICB8IDE0ICsrKysrKystLS0t CiAxMSBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXgg MTQ3OTEzODhhZC4uZDcxOWRiMWUzMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisr KyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtOTUzLDcgKzk1Myw4IEBAIHN0YXRpYyBpbnQgX19w Mm1fc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAKICAgICBpZiAoIG5lZWRfaW9t bXUocDJtLT5kb21haW4pICYmCiAgICAgICAgICAobHBhZV92YWxpZChvcmlnX3B0ZSkgfHwgbHBh ZV92YWxpZCgqZW50cnkpKSApCi0gICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1c2gocDJtLT5k b21haW4sIGdmbl94KHNnZm4pLCAxVUwgPDwgcGFnZV9vcmRlcik7CisgICAgICAgIHJjID0gaW9t bXVfaW90bGJfZmx1c2gocDJtLT5kb21haW4sIF9iZm4oZ2ZuX3goc2dmbikpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDFVTCA8PCBwYWdlX29yZGVyKTsKICAgICBlbHNlCiAgICAg ICAgIHJjID0gMDsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94 ODYvbW0uYwppbmRleCBhMWExZjVmM2MzLi45OTA3MGY5MTZkIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMjcyOSwxNCArMjcyOSwxNCBA QCBzdGF0aWMgaW50IF9nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2ln bmVkIGxvbmcgdHlwZSwKICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVy KHBhZ2UpOwogICAgICAgICBpZiAoIGQgJiYgaXNfcHZfZG9tYWluKGQpICYmIHVubGlrZWx5KG5l ZWRfaW9tbXUoZCkpICkKICAgICAgICAgewotICAgICAgICAgICAgZ2ZuX3QgZ2ZuID0gX2dmbiht Zm5fdG9fZ21mbihkLCBtZm5feChwYWdlX3RvX21mbihwYWdlKSkpKTsKKyAgICAgICAgICAgIG1m bl90IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCiAgICAgICAgICAgICBpZiAoICh4ICYgUEdU X3R5cGVfbWFzaykgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11 X3JldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuX3goZ2ZuKSk7CisgICAgICAgICAgICAgICAg aW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBfYmZuKG1mbl94KG1mbikpKTsKICAgICAg ICAgICAgIGVsc2UgaWYgKCB0eXBlID09IFBHVF93cml0YWJsZV9wYWdlICkKLSAgICAgICAgICAg ICAgICBpb21tdV9yZXQgPSBpb21tdV9tYXBfcGFnZShkLCBnZm5feChnZm4pLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2Up KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVh ZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21t dV9tYXBfcGFnZShkLCBfYmZuKG1mbl94KG1mbikpLCBtZm4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfd3JpdGFibGUpOwogICAgICAgICB9 CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jIGIveGVuL2Fy Y2gveDg2L21tL3AybS1lcHQuYwppbmRleCAxNGI1OTM5MjNiLi4yMDg5YjUyMzJkIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0t ZXB0LmMKQEAgLTg3MCwxNSArODcwLDE5IEBAIG91dDoKICAgICAgICAgICAgIHJjID0gaW9tbXVf cHRlX2ZsdXNoKGQsIGdmbiwgJmVwdF9lbnRyeS0+ZXB0ZSwgb3JkZXIsIHZ0ZF9wdGVfcHJlc2Vu dCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgeworICAgICAgICAgICAgYmZuX3QgYmZuID0gX2Jm bihnZm4pOworCiAgICAgICAgICAgICBpZiAoIGlvbW11X2ZsYWdzICkKICAgICAgICAgICAgICAg ICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKICAgICAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuICsgaSwgbWZu X3gobWZuKSArIGksIGlvbW11X2ZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21t dV9tYXBfcGFnZShkLCBiZm5fYWRkKGJmbiwgaSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkpLCBpb21tdV9mbGFncyk7CiAgICAgICAgICAg ICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4s IGdmbiArIGkpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFw X3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJmbl9hZGQoYmZuLCBpKSkgKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC04 ODcsNyArODkxLDcgQEAgb3V0OgogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgICAgIHsKLSAg ICAgICAgICAgICAgICAgICAgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBnZm4gKyBpKTsKKyAg ICAgICAgICAgICAgICAgICAgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBiZm5fYWRkKGJmbiwg aSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICAgICAg ICAgICByYyA9IHJldDsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5kZXggYjhjNWQyZWQy Ni4uYTQ0MWFmMzg4YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtNjg3LDI5ICs2ODcsMzYgQEAgcDJtX3B0X3Nl dF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBnZm5fLCBtZm5fdCBtZm4sCiAg ICAgICAgICAgICBpZiAoIGlvbW11X29sZF9mbGFncyApCiAgICAgICAgICAgICAgICAgYW1kX2lv bW11X2ZsdXNoX3BhZ2VzKHAybS0+ZG9tYWluLCBnZm4sIHBhZ2Vfb3JkZXIpOwogICAgICAgICB9 Ci0gICAgICAgIGVsc2UgaWYgKCBpb21tdV9wdGVfZmxhZ3MgKQotICAgICAgICAgICAgZm9yICgg aSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQotICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGksIG1m bl94KG1mbikgKyBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVf cHRlX2ZsYWdzKTsKLSAgICAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAg IGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYmZuX3QgYmZuID0gX2JmbihnZm4pOworCisg ICAgICAgICAgICBpZiAoIGlvbW11X3B0ZV9mbGFncyApCisgICAgICAgICAgICAgICAgZm9yICgg aSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gKQotICAgICAgICAgICAgICAgICAgICAg ICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyBp KSApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAg ICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UocDJtLT5kb21haW4sIGJmbl9hZGQoYmZuLCBpKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fYWRkKG1mbiwgaSks IGlvbW11X3B0ZV9mbGFncyk7CisgICAgICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMp ICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUg KCBpLS0gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBz YXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJmbl9hZGQoYmZuLCBpKSkgKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAg ICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5k b21haW4sIGdmbiArIGkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZvciAo IGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKKyAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgIGludCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9t YWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZm5f YWRkKGJmbiwgaSkpOwogCi0gICAgICAgICAgICAgICAgaWYgKCAhcmMgKQotICAgICAgICAgICAg ICAgICAgICByYyA9IHJldDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYg KCAhcmMgKQorICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCBjNTNjYWI0NGQ5Li5lOGEz YzA0ZDA5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3AybS5jCkBAIC03MTQsOSArNzE0LDExIEBAIHAybV9yZW1vdmVfcGFnZShzdHJ1Y3Qg cDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbl9sLCB1bnNpZ25lZCBsb25nIG1mbiwK IAogICAgICAgICBpZiAoIG5lZWRfaW9tbXUocDJtLT5kb21haW4pICkKICAgICAgICAgeworICAg ICAgICAgICAgYmZuX3QgYmZuID0gX2JmbihtZm4pOworCiAgICAgICAgICAgICBmb3IgKCBpID0g MDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIGludCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBtZm4gKyBpKTsK KyAgICAgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwg YmZuX2FkZChiZm4sIGkpKTsKIAogICAgICAgICAgICAgICAgIGlmICggIXJjICkKICAgICAgICAg ICAgICAgICAgICAgcmMgPSByZXQ7CkBAIC03NzMsMTYgKzc3NSwxNyBAQCBndWVzdF9waHlzbWFw X2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIG1mbl90IG1mbiwKICAgICB7 CiAgICAgICAgIGlmICggbmVlZF9pb21tdShkKSAmJiB0ID09IHAybV9yYW1fcncgKQogICAgICAg ICB7CisgICAgICAgICAgICBiZm5fdCBiZm4gPSBfYmZuKG1mbl94KG1mbikpOworCiAgICAgICAg ICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgbWZuX3gobWZuX2Fk ZChtZm4sIGkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KG1m bl9hZGQobWZuLCBpKSksCisgICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBi Zm5fYWRkKGJmbiwgaSksIG1mbl9hZGQobWZuLCBpKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwogICAgICAgICAg ICAgICAgIGlmICggcmMgIT0gMCApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICB3aGlsZSAoIGktLSA+IDAgKQogICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgc3Rh dGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGQsIG1mbl94KG1mbl9hZGQobWZuLCBpKSkpICkKKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShkLCBiZm5fYWRkKGJm biwgaSkpICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg ICAgICAgICAgICAgICByZXR1cm4gcmM7CkBAIC0xMTU3LDcgKzExNjAsOCBAQCBpbnQgc2V0X2lk ZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbl9sLAog ICAgIHsKICAgICAgICAgaWYgKCAhbmVlZF9pb21tdShkKSApCiAgICAgICAgICAgICByZXR1cm4g MDsKLSAgICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlKGQsIGdmbl9sLCBnZm5fbCwgSU9NTVVG X3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CisgICAgICAgIHJldHVybiBpb21tdV9tYXBfcGFn ZShkLCBfYmZuKGdmbl9sKSwgX21mbihnZm5fbCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpOwogICAgIH0KIAogICAgIGdm bl9sb2NrKHAybSwgZ2ZuLCAwKTsKQEAgLTEyNDcsNyArMTI1MSw3IEBAIGludCBjbGVhcl9pZGVu dGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCkKICAg ICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkgKQogICAgICAgICAgICAgcmV0dXJuIDA7 Ci0gICAgICAgIHJldHVybiBpb21tdV91bm1hcF9wYWdlKGQsIGdmbl9sKTsKKyAgICAgICAgcmV0 dXJuIGlvbW11X3VubWFwX3BhZ2UoZCwgX2JmbihnZm5fbCkpOwogICAgIH0KIAogICAgIGdmbl9s b2NrKHAybSwgZ2ZuLCAwKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyBi L3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCBjY2E0YWU5MjZlLi5jYzU4ZTRjZWY0IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2FyY2gveDg2L3g4 Nl82NC9tbS5jCkBAIC0xNDI5LDEzICsxNDI5LDE0IEBAIGludCBtZW1vcnlfYWRkKHVuc2lnbmVk IGxvbmcgc3BmbiwgdW5zaWduZWQgbG9uZyBlcGZuLCB1bnNpZ25lZCBpbnQgcHhtKQogICAgIGlm ICggaW9tbXVfZW5hYmxlZCAmJiAhaW9tbXVfcGFzc3Rocm91Z2ggJiYgIW5lZWRfaW9tbXUoaGFy ZHdhcmVfZG9tYWluKSApCiAgICAgewogICAgICAgICBmb3IgKCBpID0gc3BmbjsgaSA8IGVwZm47 IGkrKyApCi0gICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwg aSwgaSwgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSkgKQorICAgICAgICAgICAgaWYg KCBpb21tdV9tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIF9iZm4oaSksIF9tZm4oaSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0 YWJsZSkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoIGkgIT0gZXBmbiAp CiAgICAgICAgIHsKICAgICAgICAgICAgIHdoaWxlIChpLS0gPiBvbGRfbWF4KQogICAgICAgICAg ICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAg ICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBpKSApCisg ICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwgX2Jm bihpKSkgKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgZ290 byBkZXN0cm95X20ycDsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hl bi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBkMjYxMGUzMjBjLi4yNjFlM2IxN2EwIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jCkBAIC0xMTQ0LDEzICsxMTQ0LDEzIEBAIG1hcF9ncmFudF9yZWYoCiAgICAgICAgICAg ICAgIShvbGRfcGluICYgKEdOVFBJTl9oc3R3X21hc2t8R05UUElOX2RldndfbWFzaykpICkKICAg ICAgICAgewogICAgICAgICAgICAgaWYgKCAhKGtpbmQgJiBNQVBLSU5EX1dSSVRFKSApCi0gICAg ICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG1mbl94KG1mbiksIG1mbl94KG1m biksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxl fElPTU1VRl93cml0YWJsZSk7CisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2Uo bGQsIF9iZm4obWZuX3gobWZuKSksIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpOwogICAgICAgICB9CiAg ICAgICAgIGVsc2UgaWYgKCBhY3RfcGluICYmICFvbGRfcGluICkKICAgICAgICAgewogICAgICAg ICAgICAgaWYgKCAha2luZCApCi0gICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2Uo bGQsIG1mbl94KG1mbiksIG1mbl94KG1mbiksCisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVf bWFwX3BhZ2UobGQsIF9iZm4obWZuX3gobWZuKSksIG1mbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUpOwogICAgICAgICB9CiAgICAgICAgIGlm ICggZXJyICkKQEAgLTE0MTMsMTAgKzE0MTMsMTAgQEAgdW5tYXBfY29tbW9uKAogCiAgICAgICAg IGtpbmQgPSBtYXBraW5kKGxndCwgcmQsIG9wLT5tZm4pOwogICAgICAgICBpZiAoICFraW5kICkK LSAgICAgICAgICAgIGVyciA9IGlvbW11X3VubWFwX3BhZ2UobGQsIG1mbl94KG9wLT5tZm4pKTsK KyAgICAgICAgICAgIGVyciA9IGlvbW11X3VubWFwX3BhZ2UobGQsIF9iZm4obWZuX3gob3AtPm1m bikpKTsKICAgICAgICAgZWxzZSBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAg ICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxkLCBtZm5feChvcC0+bWZuKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KG9wLT5tZm4pLCBJT01NVUZfcmVhZGFibGUp OworICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIF9iZm4obWZuX3gob3AtPm1m bikpLCBvcC0+bWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3Jl YWRhYmxlKTsKIAogICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsKIApkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggNzUw MTBiNzhhNS4uZTE2MTZlZGEzMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysg Yi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC04MzMsMTEgKzgzMywxMSBAQCBpbnQgeGVubWVtX2Fk ZF90b19waHlzbWFwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXAg KnhhdHAsCiAKICAgICAgICAgdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAwOwog Ci0gICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIHhhdHAtPmlkeCAtIGRvbmUsIGRv bmUpOworICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCBfYmZuKHhhdHAtPmlkeCAt IGRvbmUpLCBkb25lKTsKICAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICYmIHJjID49IDAgKQog ICAgICAgICAgICAgcmMgPSByZXQ7CiAKLSAgICAgICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1c2go ZCwgeGF0cC0+Z3BmbiAtIGRvbmUsIGRvbmUpOworICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9m bHVzaChkLCBfYmZuKHhhdHAtPmdwZm4gLSBkb25lKSwgZG9uZSk7CiAgICAgICAgIGlmICggdW5s aWtlbHkocmV0KSAmJiByYyA+PSAwICkKICAgICAgICAgICAgIHJjID0gcmV0OwogICAgIH0KZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDQ2ZGI5ZDBkMDQuLjQ0Nzk3ZjllOTIgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW9tbXUuYwpAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgaW9tbXVfZG9tYWluX2Rl c3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKICAgICBhcmNoX2lvbW11X2RvbWFpbl9kZXN0cm95KGQp OwogfQogCi1pbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBiZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAoraW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIGJmbl90IGJmbiwgbWZuX3QgbWZuLAogICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBmbGFncykKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9p b21tdShkKTsKQEAgLTI2NCwxMyArMjY0LDEzIEBAIGludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgaWYg KCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAgIHJldHVybiAw OwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBiZm4sIG1mbiwgZmxh Z3MpOworICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwgYmZuX3goYmZuKSwg bWZuX3gobWZuKSwgZmxhZ3MpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAg ICAgIGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAg ICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9N TVUgbWFwcGluZyBiZm4gJSNseCB0byBtZm4gJSNseCBmYWlsZWQ6ICVkXG4iLAotICAgICAgICAg ICAgICAgICAgIGQtPmRvbWFpbl9pZCwgYmZuLCBtZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAg ICAiZCVkOiBJT01NVSBtYXBwaW5nIGJmbiAlIlBSSV9iZm4iIHRvIG1mbiAlIlBSSV9tZm4iIGZh aWxlZDogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBiZm5feChiZm4p LCBtZm5feChtZm4pLCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQp ICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKQEAgLTI3OSw3ICsyNzksNyBAQCBpbnQg aW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4sIHVuc2ln bmVkIGxvbmcgbWZuLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IGlvbW11X3VubWFwX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4pCitpbnQgaW9tbXVfdW5tYXBfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4pCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFp bl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMjg3LDEzICsyODcs MTMgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBiZm4pCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAg ICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdl KGQsIGJmbik7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdlKGQsIGJmbl94 KGJmbikpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQt PmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAgICAgICAgIHBy aW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgdW5tYXBwaW5n IGJmbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lk LCBiZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgYmZu ICUiUFJJX2JmbiIgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5f aWQsIGJmbl94KGJmbiksIHJjKTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4o ZCkgKQogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwpAQCAtMzE5LDggKzMxOSw3IEBAIHN0 YXRpYyB2b2lkIGlvbW11X2ZyZWVfcGFnZXRhYmxlcyh1bnNpZ25lZCBsb25nIHVudXNlZCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVtYXNrX2N5Y2xlKHNtcF9wcm9jZXNzb3JfaWQo KSwgJmNwdV9vbmxpbmVfbWFwKSk7CiB9CiAKLWludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwKLSAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgcGFnZV9jb3VudCkKK2ludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWlu ICpkLCBiZm5fdCBiZm4sIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogewogICAgIGNvbnN0IHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwogICAgIGludCByYzsKQEAgLTMy OCwxMyArMzI3LDEzIEBAIGludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBsb25nIGJmbiwKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZv cm1fb3BzIHx8ICFoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaCApCiAgICAgICAgIHJldHVy biAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaChkLCBiZm4sIHBh Z2VfY291bnQpOworICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+aW90bGJfZmx1c2goZCwgYmZu X3goYmZuKSwgcGFnZV9jb3VudCk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAg ICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQog ICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJ T01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBiZm4gJSNseCwgcGFnZSBjb3VudCAldVxuIiwK LSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjLCBiZm4sIHBhZ2VfY291bnQpOwor ICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGJm biAlIlBSSV9iZm4iLCBwYWdlIGNvdW50ICV1XG4iLAorICAgICAgICAgICAgICAgICAgIGQtPmRv bWFpbl9pZCwgcmMsIGJmbl94KGJmbiksIHBhZ2VfY291bnQpOwogCiAgICAgICAgIGlmICggIWlz X2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CmRpZmYg LS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwppbmRleCBjYzJiZmVhMTYyLi5kYzM3ZGNlNGI2 IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKQEAgLTE1NSw3ICsxNTUsOCBA QCB2b2lkIF9faHdkb21faW5pdCB2dGRfc2V0X2h3ZG9tX21hcHBpbmcoc3RydWN0IGRvbWFpbiAq ZCkKICAgICAgICAgdG1wID0gMSA8PCAoUEFHRV9TSElGVCAtIFBBR0VfU0hJRlRfNEspOwogICAg ICAgICBmb3IgKCBqID0gMDsgaiA8IHRtcDsgaisrICkKICAgICAgICAgewotICAgICAgICAgICAg aW50IHJldCA9IGlvbW11X21hcF9wYWdlKGQsIHBmbiAqIHRtcCArIGosIHBmbiAqIHRtcCArIGos CisgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVfbWFwX3BhZ2UoZCwgX2JmbihwZm4gKiB0bXAg KyBqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKHBmbiAqIHRt cCArIGopLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFk YWJsZXxJT01NVUZfd3JpdGFibGUpOwogCiAgICAgICAgICAgICBpZiAoICFyYyApCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmlu ZGV4IDE0YWRhMGMxNGUuLmEzYzM2YzExNDggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9p b21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0yNCw2ICsyNCw3IEBACiAj aW5jbHVkZSA8eGVuL3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8eGVuL3BjaS5oPgogI2luY2x1ZGUg PHhlbi90eXBlc2FmZS5oPgorI2luY2x1ZGUgPHhlbi9tbS5oPgogI2luY2x1ZGUgPHB1YmxpYy9o dm0vaW9yZXEuaD4KICNpbmNsdWRlIDxwdWJsaWMvZG9tY3RsLmg+CiAjaW5jbHVkZSA8YXNtL2Rl dmljZS5oPgpAQCAtNDIsNiArNDMsMTEgQEAgVFlQRV9TQUZFKHVpbnQ2NF90LCBiZm4pOwogI3Vu ZGVmIGJmbl94CiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBiZm5fdCBiZm5fYWRkKGJmbl90IGJm biwgdW5zaWduZWQgbG9uZyBpKQoreworICAgIHJldHVybiBfYmZuKGJmbl94KGJmbikgKyBpKTsK K30KKwogI2RlZmluZSBJT01NVV9QQUdFX1NISUZUIDEyCiAjZGVmaW5lIElPTU1VX1BBR0VfU0la RSAgKF9BQygxLEwpIDw8IElPTU1VX1BBR0VfU0hJRlQpCiAjZGVmaW5lIElPTU1VX1BBR0VfTUFT SyAgKH4oSU9NTVVfUEFHRV9TSVpFIC0gMSkpCkBAIC04Niw5ICs5Miw5IEBAIHZvaWQgaW9tbXVf dGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAgKDF1 PDxfSU9NTVVGX3JlYWRhYmxlKQogI2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZpbmUg SU9NTVVGX3dyaXRhYmxlICAoMXU8PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2NoZWNr IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZuLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQg aW50IGZsYWdzKTsKLWludCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGJmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVj ayBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbik7CiAKIGVudW0g aW9tbXVfZmVhdHVyZQogewpAQCAtMjEzLDcgKzIxOSw3IEBAIGludCBpb21tdV9kb19wY2lfZG9t Y3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9f ZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAg ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBf X211c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg bG9uZyBiZm4sCitpbnQgX19tdXN0X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21h aW4gKmQsIGJmbl90IGJmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IHBhZ2VfY291bnQpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9mbHVz aF9hbGwoc3RydWN0IGRvbWFpbiAqZCk7CiAKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=