From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 02/14] iommu: make use of type-safe BFN and MFN in exported functions Date: Thu, 23 Aug 2018 10:46:59 +0100 Message-ID: <20180823094711.21376-3-paul.durrant@citrix.com> References: <20180823094711.21376-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 1fsmD3-00006B-GY for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 09:47:21 +0000 In-Reply-To: <20180823094711.21376-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 , 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 dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRp YW5AaW50ZWwuY29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVu bGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndp bGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVs Lm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBUaW0gRGVl Z2FuIDx0aW1AeGVuLm9yZz4KQ2M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNv bT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnY2Ogog LSBSZS1iYXNlLgoKdjM6CiAtIFJlbW92ZWQgbW9zdCBvZiB0aGUgdXNlcyBvZiBhbiBpbnRlcm1l ZGlhdGUgJ2ZyYW1lJyB2YXJpYWJsZS4KCnYyOgogLSBBZGRyZXNzZWQgY29tbWVudHMgZnJvbSBK YW4uCiAtIFVzZSBpbnRlcm1lZGlhdGUgJ2ZyYW1lJyB2YXJpYWJsZSB0byBhdm9pZCBkaXJlY3Rs eSBlbmNhcHN1bGF0aW5nCiAgIG1mbiBvciBnZm4gdmFsdWVzIGFzIGJmbnMuCi0tLQogeGVuL2Fy Y2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQogeGVuL2FyY2gveDg2L21t LmMgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJt LWVwdC5jICAgICAgICAgICAgIHwgMTAgKysrKystLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQu YyAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQog eGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0K IHhlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyAgICAgICAgICAgICAgfCAgNSArKy0tCiB4ZW4vY29t bW9uL2dyYW50X3RhYmxlLmMgICAgICAgICAgICAgIHwgMTIgKysrKystLS0tLQogeGVuL2NvbW1v bi9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMgICAgICAgfCAyNSArKysrKysrKysrLS0tLS0tLS0tCiB4ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jIHwgIDMgKystCiB4ZW4vaW5jbHVkZS94ZW4vaW9t bXUuaCAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDg1 IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCA1NmI1NDc0NjI1Li4wNzIwMjlkZmJl IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5j CkBAIC05NTcsNyArOTU3LDggQEAgc3RhdGljIGludCBfX3AybV9zZXRfZW50cnkoc3RydWN0IHAy bV9kb21haW4gKnAybSwKIAogICAgIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFpbikgJiYKICAg ICAgICAgIChscGFlX2lzX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFlX2lzX3ZhbGlkKCplbnRyeSkp ICkKLSAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgZ2ZuX3goc2dm biksIDFVTCA8PCBwYWdlX29yZGVyKTsKKyAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChw Mm0tPmRvbWFpbiwgX2JmbihnZm5feChzZ2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMVVMIDw8IHBhZ2Vfb3JkZXIpOwogICAgIGVsc2UKICAgICAgICAgcmMgPSAwOwogCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDhh YzQ0MTI1NTQuLjllOWZiOTQyMWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yNzUyLDE0ICsyNzUyLDE0IEBAIHN0YXRpYyBpbnQgX2dl dF9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAog ICAgICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGFnZSk7CiAgICAgICAg IGlmICggZCAmJiBpc19wdl9kb21haW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQog ICAgICAgICB7Ci0gICAgICAgICAgICBnZm5fdCBnZm4gPSBfZ2ZuKG1mbl90b19nbWZuKGQsIG1m bl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSkpOworICAgICAgICAgICAgbWZuX3QgbWZuID0gcGFnZV90 b19tZm4ocGFnZSk7CiAKICAgICAgICAgICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQ R1Rfd3JpdGFibGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5t YXBfcGFnZShkLCBnZm5feChnZm4pKTsKKyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21t dV91bm1hcF9wYWdlKGQsIF9iZm4obWZuX3gobWZuKSkpOwogICAgICAgICAgICAgZWxzZSBpZiAo IHR5cGUgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X3JldCA9 IGlvbW11X21hcF9wYWdlKGQsIGdmbl94KGdmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3Jp dGFibGUpOworICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIF9i Zm4obWZuX3gobWZuKSksIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJT01NVUZfcmVhZGFibGUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVw dC5jCmluZGV4IDE0YjU5MzkyM2IuLjIwODliNTIzMmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODcwLDE1 ICs4NzAsMTkgQEAgb3V0OgogICAgICAgICAgICAgcmMgPSBpb21tdV9wdGVfZmx1c2goZCwgZ2Zu LCAmZXB0X2VudHJ5LT5lcHRlLCBvcmRlciwgdnRkX3B0ZV9wcmVzZW50KTsKICAgICAgICAgZWxz ZQogICAgICAgICB7CisgICAgICAgICAgICBiZm5fdCBiZm4gPSBfYmZuKGdmbik7CisKICAgICAg ICAgICAgIGlmICggaW9tbXVfZmxhZ3MgKQogICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBp IDwgKDEgPDwgb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwgaW9t bXVfZmxhZ3MpOworICAgICAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGJm bl9hZGQoYmZuLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt Zm5fYWRkKG1mbiwgaSksIGlvbW11X2ZsYWdzKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCB1 bmxpa2VseShyYykgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICB3aGlsZSAoIGktLSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgc3Rh dGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSkgKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFp biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZu X2FkZChiZm4sIGkpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl OwogCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg4Nyw3ICs4OTEsNyBAQCBv dXQ6CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAo MSA8PCBvcmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg ICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAg ICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIGJmbl9hZGQoYmZuLCBpKSk7CiAgICAgICAgICAg ICAgICAgICAgIGlmICggIXJjICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0Owog ICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBi L3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCBiOGM1ZDJlZDI2Li5hNDQxYWYzODhhIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21t L3AybS1wdC5jCkBAIC02ODcsMjkgKzY4NywzNiBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sIGdmbl90IGdmbl8sIG1mbl90IG1mbiwKICAgICAgICAgICAgIGlmICgg aW9tbXVfb2xkX2ZsYWdzICkKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMo cDJtLT5kb21haW4sIGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBp ZiAoIGlvbW11X3B0ZV9mbGFncyApCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwg PDwgcGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMg PSBpb21tdV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwotICAg ICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKKyAgICAgICAgZWxzZQorICAgICAgICB7 CisgICAgICAgICAgICBiZm5fdCBiZm4gPSBfYmZuKGdmbik7CisKKyAgICAgICAgICAgIGlmICgg aW9tbXVfcHRlX2ZsYWdzICkKKyAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwg PDwgcGFnZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg ICAgICB3aGlsZSAoIGktLSApCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1l bnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBp ZiAoIGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpICkKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21t dV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgYmZuX2FkZChiZm4sIGkpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl9hZGQobWZuLCBpKSwgaW9tbXVfcHRlX2ZsYWdz KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGktLSApCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2No ZWNrLiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFn ZShwMm0tPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYmZuX2FkZChiZm4sIGkpKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZvciAoIGkgPSAw OyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKLSAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICBpbnQgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSk7 CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVM IDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmbl9hZGQoYmZuLCBpKSk7CiAK LSAgICAgICAgICAgICAgICBpZiAoICFyYyApCi0gICAgICAgICAgICAgICAgICAgIHJjID0gcmV0 OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoICFyYyApCisgICAgICAg ICAgICAgICAgICAgICAgICByYyA9IHJldDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0K ICAgICB9CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVu L2FyY2gveDg2L21tL3AybS5jCmluZGV4IDhlOWZiYjVhMTQuLmZiZjY3ZGVmNTAgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAg LTcxNSw5ICs3MTUsMTEgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0s IHVuc2lnbmVkIGxvbmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogCiAgICAgICAgIGlmICgg bmVlZF9pb21tdShwMm0tPmRvbWFpbikgKQogICAgICAgICB7CisgICAgICAgICAgICBiZm5fdCBi Zm4gPSBfYmZuKG1mbik7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgcGFn ZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9 IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIG1mbiArIGkpOworICAgICAgICAgICAgICAg IGludCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBiZm5fYWRkKGJmbiwgaSkp OwogCiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgICAgICByYyA9 IHJldDsKQEAgLTc3NCwxNiArNzc2LDE3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVj dCBkb21haW4gKmQsIGdmbl90IGdmbiwgbWZuX3QgbWZuLAogICAgIHsKICAgICAgICAgaWYgKCBu ZWVkX2lvbW11KGQpICYmIHQgPT0gcDJtX3JhbV9ydyApCiAgICAgICAgIHsKKyAgICAgICAgICAg IGJmbl90IGJmbiA9IF9iZm4obWZuX3gobWZuKSk7CisKICAgICAgICAgICAgIGZvciAoIGkgPSAw OyBpIDwgKDEgPDwgcGFnZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShkLCBtZm5feChtZm5fYWRkKG1mbiwgaSkpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZuX2FkZChtZm4sIGkpKSwK KyAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGJmbl9hZGQoYmZuLCBpKSwg bWZuX2FkZChtZm4sIGkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9N TVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgICAgICAgICAgaWYgKCByYyAh PSAwICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0t ID4gMCApCiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNm eSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3Vu bWFwX3BhZ2UoZCwgbWZuX3gobWZuX2FkZChtZm4sIGkpKSkgKQorICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGQsIGJmbl9hZGQoYmZuLCBpKSkgKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgICAgIHJl dHVybiByYzsKQEAgLTExNTgsNyArMTE2MSw4IEBAIGludCBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5 KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCiAgICAgewogICAgICAgICBp ZiAoICFuZWVkX2lvbW11KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1 cm4gaW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuX2wsIGdmbl9sLCBJT01NVUZfcmVhZGFibGV8SU9NTVVG X3dyaXRhYmxlKTsKKyAgICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlKGQsIF9iZm4oZ2ZuX2wp LCBfbWZuKGdmbl9sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFk YWJsZSB8IElPTU1VRl93cml0YWJsZSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4s IDApOwpAQCAtMTI0OCw3ICsxMjUyLDcgQEAgaW50IGNsZWFyX2lkZW50aXR5X3AybV9lbnRyeShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbl9sKQogICAgIHsKICAgICAgICAgaWYg KCAhbmVlZF9pb21tdShkKSApCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJu IGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuX2wpOworICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBf cGFnZShkLCBfYmZuKGdmbl9sKSk7CiAgICAgfQogCiAgICAgZ2ZuX2xvY2socDJtLCBnZm4sIDAp OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4 Nl82NC9tbS5jCmluZGV4IGNjYTRhZTkyNmUuLmNjNThlNGNlZjQgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTE0 MjksMTMgKzE0MjksMTQgQEAgaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNp Z25lZCBsb25nIGVwZm4sIHVuc2lnbmVkIGludCBweG0pCiAgICAgaWYgKCBpb21tdV9lbmFibGVk ICYmICFpb21tdV9wYXNzdGhyb3VnaCAmJiAhbmVlZF9pb21tdShoYXJkd2FyZV9kb21haW4pICkK ICAgICB7CiAgICAgICAgIGZvciAoIGkgPSBzcGZuOyBpIDwgZXBmbjsgaSsrICkKLSAgICAgICAg ICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBpLCBpLCBJT01NVUZfcmVh ZGFibGV8SU9NTVVGX3dyaXRhYmxlKSApCisgICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdl KGhhcmR3YXJlX2RvbWFpbiwgX2JmbihpKSwgX21mbihpKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSApCiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggaSAhPSBlcGZuICkKICAgICAgICAgewogICAg ICAgICAgICAgd2hpbGUgKGktLSA+IG9sZF9tYXgpCiAgICAgICAgICAgICAgICAgLyogSWYgc3Rh dGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgIGlmICgg aW9tbXVfdW5tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIGkpICkKKyAgICAgICAgICAgICAgICBp ZiAoIGlvbW11X3VubWFwX3BhZ2UoaGFyZHdhcmVfZG9tYWluLCBfYmZuKGkpKSApCiAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBnb3RvIGRlc3Ryb3lfbTJwOwpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jCmluZGV4IGFkNTVjZmEwZWMuLmFmNDExMzM5NTMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21t b24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTExNDMs MTMgKzExNDMsMTMgQEAgbWFwX2dyYW50X3JlZigKICAgICAgICAgICAgICAhKG9sZF9waW4gJiAo R05UUElOX2hzdHdfbWFza3xHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAgICB7CiAgICAgICAg ICAgICBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAgICAgICAgICAgICBlcnIg PSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3gobWZuKSwgbWZuX3gobWZuKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxl KTsKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2JmbihtZm5feCht Zm4pKSwgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9y ZWFkYWJsZSB8IElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAo IGFjdF9waW4gJiYgIW9sZF9waW4gKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoICFraW5k ICkKLSAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3gobWZuKSwg bWZuX3gobWZuKSwKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2Jm bihtZm5feChtZm4pKSwgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElPTU1VRl9yZWFkYWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCBlcnIgKQpAQCAtMTM5 OCwxMCArMTM5OCwxMCBAQCB1bm1hcF9jb21tb24oCiAKICAgICAgICAga2luZCA9IG1hcGtpbmQo bGd0LCByZCwgb3AtPm1mbik7CiAgICAgICAgIGlmICggIWtpbmQgKQotICAgICAgICAgICAgZXJy ID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgbWZuX3gob3AtPm1mbikpOworICAgICAgICAgICAgZXJy ID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgX2JmbihtZm5feChvcC0+bWZuKSkpOwogICAgICAgICBl bHNlIGlmICggIShraW5kICYgTUFQS0lORF9XUklURSkgKQotICAgICAgICAgICAgZXJyID0gaW9t bXVfbWFwX3BhZ2UobGQsIG1mbl94KG9wLT5tZm4pLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWZuX3gob3AtPm1mbiksIElPTU1VRl9yZWFkYWJsZSk7CisgICAgICAgICAgICBl cnIgPSBpb21tdV9tYXBfcGFnZShsZCwgX2JmbihtZm5feChvcC0+bWZuKSksIG9wLT5tZm4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUpOwogCiAgICAg ICAgIGRvdWJsZV9ndF91bmxvY2sobGd0LCByZ3QpOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCA5OTZmOTRiMTAzLi44YmE4OTIx Yzc5IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9jb21tb24vbWVt b3J5LmMKQEAgLTgzNCwxMSArODM0LDExIEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCAqeGF0cCwKIAogICAgICAg ICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7CiAKLSAgICAgICAgcmV0ID0g aW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+aWR4IC0gZG9uZSwgZG9uZSk7CisgICAgICAgIHJl dCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIF9iZm4oeGF0cC0+aWR4IC0gZG9uZSksIGRvbmUpOwog ICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgJiYgcmMgPj0gMCApCiAgICAgICAgICAgICByYyA9 IHJldDsKIAotICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCB4YXRwLT5ncGZuIC0g ZG9uZSwgZG9uZSk7CisgICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIF9iZm4oeGF0 cC0+Z3BmbiAtIGRvbmUpLCBkb25lKTsKICAgICAgICAgaWYgKCB1bmxpa2VseShyZXQpICYmIHJj ID49IDAgKQogICAgICAgICAgICAgcmMgPSByZXQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11 LmMKaW5kZXggZjg4ZGFkMDE3Ny4uNDJiNTNiMTVlOSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j CkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBpb21tdV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9t YWluICpkKQogICAgIGFyY2hfaW9tbXVfZG9tYWluX2Rlc3Ryb3koZCk7CiB9CiAKLWludCBpb21t dV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwgdW5zaWduZWQg bG9uZyBtZm4sCitpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZu LCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQogewog ICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAtMjY0 LDEzICsyNjQsMTMgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgYmZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICBpZiAoICFpb21tdV9lbmFibGVk IHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhk LT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGJmbiwgbWZuLCBmbGFncyk7CisgICAgcmMgPSBo ZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZShkLCBiZm5feChiZm4pLCBtZm5feChtZm4pLCBmbGFn cyk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNf c2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRr KFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBwaW5nIGJmbiAl I2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9t YWluX2lkLCBiZm4sIG1mbiwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIG1h cHBpbmcgYmZuICUiUFJJX2JmbiIgdG8gbWZuICUiUFJJX21mbiIgZmFpbGVkOiAlZFxuIiwKKyAg ICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGJmbl94KGJmbiksIG1mbl94KG1mbiksIHJj KTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICAgICAg ZG9tYWluX2NyYXNoKGQpOwpAQCAtMjc5LDcgKzI3OSw3IEBAIGludCBpb21tdV9tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAg ICAgcmV0dXJuIHJjOwogfQogCi1pbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGJmbikKK2ludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4g KmQsIGJmbl90IGJmbikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRv bV9pb21tdShkKTsKICAgICBpbnQgcmM7CkBAIC0yODcsMTMgKzI4NywxMyBAQCBpbnQgaW9tbXVf dW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbikKICAgICBpZiAo ICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7 CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgYmZuKTsKKyAgICBy YyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgYmZuX3goYmZuKSk7CiAgICAgaWYg KCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93 biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIK LSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgYmZuICUjbHggZmFpbGVk OiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGJmbiwgcmMpOworICAg ICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIHVubWFwcGluZyBiZm4gJSJQUklfYmZuIiBmYWls ZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgYmZuX3goYmZuKSwg cmMpOwogCiAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAg ICBkb21haW5fY3Jhc2goZCk7CkBAIC0zMTksOCArMzE5LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVf ZnJlZV9wYWdldGFibGVzKHVuc2lnbmVkIGxvbmcgdW51c2VkKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNwdW1hc2tfY3ljbGUoc21wX3Byb2Nlc3Nvcl9pZCgpLCAmY3B1X29ubGluZV9t YXApKTsKIH0KIAotaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgYmZuLAotICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX2Nv dW50KQoraW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwg dW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21t dSAqaGQgPSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMzI4LDEzICszMjcsMTMgQEAg aW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZu LAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgfHwgIWhkLT5w bGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9 IGhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoKGQsIGJmbiwgcGFnZV9jb3VudCk7CisgICAg cmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaChkLCBiZm5feChiZm4pLCBwYWdlX2Nv dW50KTsKICAgICBpZiAoIHVubGlrZWx5KHJjKSApCiAgICAgewogICAgICAgICBpZiAoICFkLT5p c19zaHV0dGluZ19kb3duICYmIHByaW50a19yYXRlbGltaXQoKSApCiAgICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0VSUgotICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIElPVExCIGZsdXNo IGZhaWxlZDogJWQsIGJmbiAlI2x4LCBwYWdlIGNvdW50ICV1XG4iLAotICAgICAgICAgICAgICAg ICAgIGQtPmRvbWFpbl9pZCwgcmMsIGJmbiwgcGFnZV9jb3VudCk7CisgICAgICAgICAgICAgICAg ICAgImQlZDogSU9NTVUgSU9UTEIgZmx1c2ggZmFpbGVkOiAlZCwgYmZuICUiUFJJX2JmbiIsIHBh Z2UgY291bnQgJXVcbiIsCisgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByYywgYmZu X3goYmZuKSwgcGFnZV9jb3VudCk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWlu KGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQveDg2L3Z0ZC5jCmluZGV4IDAwYTk4OTEwMDUuLmZiNjc0Y2RjNjggMTAwNjQ0Ci0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL3g4Ni92dGQuYwpAQCAtMTUyLDcgKzE1Miw4IEBAIHZvaWQgX19od2RvbV9p bml0IHZ0ZF9zZXRfaHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgICAg IHBhZ2VfaXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9DT05WRU5USU9OQUwpICkKICAgICAgICAg ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4s IElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICByYyA9IGlvbW11X21h cF9wYWdlKGQsIF9iZm4ocGZuKSwgX21mbihwZm4pLAorCQkJICAgIElPTU1VRl9yZWFkYWJsZSB8 IElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgcHJpbnRr KFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWCAiIGQlZDogSU9NTVUgbWFwcGluZyBmYWlsZWQ6ICVk XG4iLAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMpOwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA0 MGFmN2JkN2M5Li4zZDRmM2U3ZDI2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1 ZGUgPHhlbi9zcGlubG9jay5oPgogI2luY2x1ZGUgPHhlbi9wY2kuaD4KICNpbmNsdWRlIDx4ZW4v dHlwZXNhZmUuaD4KKyNpbmNsdWRlIDx4ZW4vbW0uaD4KICNpbmNsdWRlIDxwdWJsaWMvaHZtL2lv cmVxLmg+CiAjaW5jbHVkZSA8cHVibGljL2RvbWN0bC5oPgogI2luY2x1ZGUgPGFzbS9kZXZpY2Uu aD4KQEAgLTQyLDYgKzQzLDExIEBAIFRZUEVfU0FGRSh1aW50NjRfdCwgYmZuKTsKICN1bmRlZiBi Zm5feAogI2VuZGlmCiAKK3N0YXRpYyBpbmxpbmUgYmZuX3QgYmZuX2FkZChiZm5fdCBiZm4sIHVu c2lnbmVkIGxvbmcgaSkKK3sKKyAgICByZXR1cm4gX2JmbihiZm5feChiZm4pICsgaSk7Cit9CisK ICNkZWZpbmUgSU9NTVVfUEFHRV9TSElGVCAxMgogI2RlZmluZSBJT01NVV9QQUdFX1NJWkUgIChf QUMoMSxMKSA8PCBJT01NVV9QQUdFX1NISUZUKQogI2RlZmluZSBJT01NVV9QQUdFX01BU0sgICh+ KElPTU1VX1BBR0VfU0laRSAtIDEpKQpAQCAtODYsOSArOTIsOSBAQCB2b2lkIGlvbW11X3RlYXJk b3duKHN0cnVjdCBkb21haW4gKmQpOwogI2RlZmluZSBJT01NVUZfcmVhZGFibGUgICgxdTw8X0lP TU1VRl9yZWFkYWJsZSkKICNkZWZpbmUgX0lPTU1VRl93cml0YWJsZSAxCiAjZGVmaW5lIElPTU1V Rl93cml0YWJsZSAgKDF1PDxfSU9NTVVGX3dyaXRhYmxlKQotaW50IF9fbXVzdF9jaGVjayBpb21t dV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBm bGFncyk7Ci1pbnQgX19tdXN0X2NoZWNrIGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBiZm4pOworaW50IF9fbXVzdF9jaGVjayBpb21tdV9tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1mbl90IG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKK2ludCBfX211c3RfY2hlY2sgaW9t bXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4pOwogCiBlbnVtIGlvbW11 X2ZlYXR1cmUKIHsKQEAgLTIxMSw3ICsyMTcsNyBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bChz dHJ1Y3QgeGVuX2RvbWN0bCAqLCBzdHJ1Y3QgZG9tYWluICpkLAogaW50IGlvbW11X2RvX2RvbWN0 bChzdHJ1Y3QgeGVuX2RvbWN0bCAqLCBzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAg ICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkpOwogCi1pbnQgX19tdXN0 X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg YmZuLAoraW50IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpk LCBiZm5fdCBiZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBwYWdlX2NvdW50KTsKIGludCBfX211c3RfY2hlY2sgaW9tbXVfaW90bGJfZmx1c2hfYWxs KHN0cnVjdCBkb21haW4gKmQpOwogCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs