From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH 1/2] IOMMU/MMU: Adjust top level functions for VT-d Device-TLB flush error. Date: Thu, 17 Mar 2016 14:54:35 +0800 Message-ID: <1458197676-60696-2-git-send-email-quan.xu@intel.com> References: <1458197676-60696-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458197676-60696-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Keir Fraser , Jan Beulich , George Dunlap , Liu Jinsong , Dario Faggioli , Jun Nakajima , Andrew Cooper , Quan Xu , Feng Wu List-Id: xen-devel@lists.xenproject.org Q3VycmVudCBjb2RlIHdvdWxkIGJlIHBhbmljKCksIHdoZW4gVlQtZCBEZXZpY2UtVExCIGZsdXNo IHRpbWVkIG91dC4KdGhlIHBhbmljKCkgaXMgZ29pbmcgdG8gYmUgZWxpbWluYXRlZCwgc28gd2Ug bXVzdCBjaGVjayBhbGwga2luZHMgb2YKZXJyb3IgYW5kIGFsbCB0aGUgd2F5IHVwIHRoZSBjYWxs IHRyZWVzLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpDQzog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogTGl1IEppbnNvbmcgPGppbnNvbmcu bGl1QGFsaWJhYmEtaW5jLmNvbT4KQ0M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNDOiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDQzogSnVuIE5ha2FqaW1h IDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDQzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRl bC5jb20+CkNDOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkND OiBGZW5nIFd1IDxmZW5nLnd1QGludGVsLmNvbT4KQ0M6IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5m YWdnaW9saUBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMgICAgICAg ICAgICAgfCAxNCArKysrKysrKysrKysrLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAg ICAgICAgICB8IDEzICsrKysrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgICAg ICAgICAgICAgfCAxMCArKysrKysrKystCiB4ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgICAgICAg ICAgICAgIHwgMTIgKysrKysrKysrKy0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICAg ICAgICAgIHwgIDUgKysrLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAg fCAgNSArKystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgICB8IDE2ICsr KysrKysrKysrLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgfCAg NyArKysrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyAgIHwgIDYgKysr KystCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiAx MCBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jIGIveGVuL2FyY2gveDg2L2FjcGkvcG93 ZXIuYwppbmRleCAyODg1ZTMxLi41MGVkZjNmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNw aS9wb3dlci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMKQEAgLTQ1LDYgKzQ1LDgg QEAgdm9pZCBkb19zdXNwZW5kX2xvd2xldmVsKHZvaWQpOwogCiBzdGF0aWMgaW50IGRldmljZV9w b3dlcl9kb3duKHZvaWQpCiB7CisgICAgaW50IGVycjsKKwogICAgIGNvbnNvbGVfc3VzcGVuZCgp OwogCiAgICAgdGltZV9zdXNwZW5kKCk7CkBAIC01MywxMSArNTUsMjEgQEAgc3RhdGljIGludCBk ZXZpY2VfcG93ZXJfZG93bih2b2lkKQogCiAgICAgaW9hcGljX3N1c3BlbmQoKTsKIAotICAgIGlv bW11X3N1c3BlbmQoKTsKKyAgICBlcnIgPSBpb21tdV9zdXNwZW5kKCk7CisgICAgaWYgKCBlcnIg KQorICAgICAgICBnb3RvIGlvbW11X3N1c3BlbmRfZXJyb3I7CiAKICAgICBsYXBpY19zdXNwZW5k KCk7CiAKICAgICByZXR1cm4gMDsKKworaW9tbXVfc3VzcGVuZF9lcnJvcjoKKyAgICBpb2FwaWNf cmVzdW1lKCk7CisgICAgaTgyNTlBX3Jlc3VtZSgpOworICAgIHRpbWVfcmVzdW1lKCk7CisgICAg Y29uc29sZV9yZXN1bWUoKTsKKworICAgIHJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2b2lkIGRl dmljZV9wb3dlcl91cCh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4v YXJjaC94ODYvbW0uYwppbmRleCBjOTk3YjUzLi41MjY1NDhlIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMjQ2Nyw3ICsyNDY3LDcgQEAg c3RhdGljIGludCBfX2dldF9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWdu ZWQgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByZWVtcHRpYmxl KQogewogICAgIHVuc2lnbmVkIGxvbmcgbngsIHgsIHkgPSBwYWdlLT51LmludXNlLnR5cGVfaW5m bzsKLSAgICBpbnQgcmMgPSAwOworICAgIGludCByYyA9IDAsIHJldCA9IDA7CiAKICAgICBBU1NF UlQoISh0eXBlICYgfihQR1RfdHlwZV9tYXNrIHwgUEdUX3BhZV94ZW5fbDIpKSk7CiAKQEAgLTI1 NzgsMTEgKzI1NzgsMTEgQEAgc3RhdGljIGludCBfX2dldF9wYWdlX3R5cGUoc3RydWN0IHBhZ2Vf aW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgICAgICBpZiAoIGQgJiYgaXNfcHZf ZG9tYWluKGQpICYmIHVubGlrZWx5KG5lZWRfaW9tbXUoZCkpICkKICAgICAgICAgewogICAgICAg ICAgICAgaWYgKCAoeCAmIFBHVF90eXBlX21hc2spID09IFBHVF93cml0YWJsZV9wYWdlICkKLSAg ICAgICAgICAgICAgICBpb21tdV91bm1hcF9wYWdlKGQsIG1mbl90b19nbWZuKGQsIHBhZ2VfdG9f bWZuKHBhZ2UpKSk7CisgICAgICAgICAgICAgICAgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBt Zm5fdG9fZ21mbihkLCBwYWdlX3RvX21mbihwYWdlKSkpOwogICAgICAgICAgICAgZWxzZSBpZiAo IHR5cGUgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X21hcF9w YWdlKGQsIG1mbl90b19nbWZuKGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAg ICAgICByZXQgPSBpb21tdV9tYXBfcGFnZShkLCBtZm5fdG9fZ21mbihkLCBwYWdlX3RvX21mbihw YWdlKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV90b19tZm4o cGFnZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRh YmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1OTksNiArMjU5 OSw5IEBAIHN0YXRpYyBpbnQgX19nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2Us IHVuc2lnbmVkIGxvbmcgdHlwZSwKICAgICBpZiAoICh4ICYgUEdUX3BhcnRpYWwpICYmICEobngg JiBQR1RfcGFydGlhbCkgKQogICAgICAgICBwdXRfcGFnZShwYWdlKTsKIAorICAgIGlmICggIXJj ICkKKyAgICAgICAgcmMgPSByZXQ7CisKICAgICByZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmlu ZGV4IDNjYjY4NjguLmY5YmNjZTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0 LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODMwLDcgKzgzMCwxNSBAQCBv dXQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggaW9tbXVfZmxhZ3MgKQogICAgICAgICAg ICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQotICAgICAgICAgICAg ICAgICAgICBpb21tdV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwgaW9tbXVf ZmxhZ3MpOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21t dV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsgaSwgaW9tbXVfZmxhZ3MpOworICAg ICAgICAgICAgICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gPiAwICkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBv cmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgICAgIGlvbW11X3VubWFwX3BhZ2UoZCwgZ2Zu ICsgaSk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLXB0LmMKaW5kZXggM2Q4MDYxMi4uYzMzYjc1MyAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3AybS1wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtNjgw LDggKzY4MCwxNiBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVu c2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAo IGlvbW11X3B0ZV9mbGFncyApCiAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwg cGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAgICAgICAgICAgaW9tbXVfbWFwX3BhZ2UocDJtLT5k b21haW4sIGdmbiArIGksIG1mbl94KG1mbikgKyBpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlvbW11X3B0ZV9mbGFncyk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg cmMgPSBpb21tdV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwor ICAgICAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgd2hpbGUgKCBpLS0gPiAwICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlvbW11 X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgIGVsc2UKICAg ICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKICAg ICAgICAgICAgICAgICBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyBpKTsKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFi bGUuYwppbmRleCA4YjIyMjk5Li5iNDEwZmZjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50 X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC05MzIsOCArOTMyLDkg QEAgX19nbnR0YWJfbWFwX2dyYW50X3JlZigKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICBucl9nZXRzKys7CiAgICAgICAgICAgICAgICAgKHZvaWQpZ2V0X3BhZ2UocGcsIHJkKTsKLSAg ICAgICAgICAgICAgICBpZiAoICEob3AtPmZsYWdzICYgR05UTUFQX3JlYWRvbmx5KSApCi0gICAg ICAgICAgICAgICAgICAgIGdldF9wYWdlX3R5cGUocGcsIFBHVF93cml0YWJsZV9wYWdlKTsKKyAg ICAgICAgICAgICAgICBpZiAoICEob3AtPmZsYWdzICYgR05UTUFQX3JlYWRvbmx5KSAmJgorICAg ICAgICAgICAgICAgICAgICAgIWdldF9wYWdlX3R5cGUocGcsIFBHVF93cml0YWJsZV9wYWdlKSAp CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGNvdWxkX25vdF9waW47CiAgICAgICAgICAg ICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIv eGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCBlZjU3MjE5Li41NDM2NDdkIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9jb21tb24vbWVtb3J5LmMKQEAgLTY3OCw4ICs2 NzgsOSBAQCBzdGF0aWMgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcChzdHJ1Y3QgZG9tYWluICpk LAogICAgIGlmICggbmVlZF9pb21tdShkKSApCiAgICAgewogICAgICAgICB0aGlzX2NwdShpb21t dV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7Ci0gICAgICAgIGlvbW11X2lvdGxiX2ZsdXNoKGQsIHhh dHAtPmlkeCAtIGRvbmUsIGRvbmUpOwotICAgICAgICBpb21tdV9pb3RsYl9mbHVzaChkLCB4YXRw LT5ncGZuIC0gZG9uZSwgZG9uZSk7CisgICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1c2goZCwg eGF0cC0+aWR4IC0gZG9uZSwgZG9uZSk7CisgICAgICAgIGlmICggIXJjICkKKyAgICAgICAgICAg IHJjID0gaW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+Z3BmbiAtIGRvbmUsIGRvbmUpOwogICAg IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCBiNjQ2NzZmLi4yOWVmYmZl IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTI3NywyNCArMjc3LDI4IEBAIHN0YXRpYyB2 b2lkIGlvbW11X2ZyZWVfcGFnZXRhYmxlcyh1bnNpZ25lZCBsb25nIHVudXNlZCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjcHVtYXNrX2N5Y2xlKHNtcF9wcm9jZXNzb3JfaWQoKSwgJmNw dV9vbmxpbmVfbWFwKSk7CiB9CiAKLXZvaWQgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQoraW50IGlv bW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNp Z25lZCBpbnQgcGFnZV9jb3VudCkKIHsKICAgICBzdHJ1Y3QgaHZtX2lvbW11ICpoZCA9IGRvbWFp bl9odm1faW9tbXUoZCk7CiAKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZv cm1fb3BzIHx8ICFoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaCApCi0gICAgICAgIHJldHVy bjsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVz aChkLCBnZm4sIHBhZ2VfY291bnQpOworCisgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgaW9tbXVf aW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21haW4gKmQpCitpbnQgaW9tbXVfaW90bGJfZmx1c2hf YWxsKHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgc3RydWN0IGh2bV9pb21tdSAqaGQgPSBkb21h aW5faHZtX2lvbW11KGQpOwogCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRm b3JtX29wcyB8fCAhaGQtPnBsYXRmb3JtX29wcy0+aW90bGJfZmx1c2hfYWxsICkKLSAgICAgICAg cmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAogICAgIGhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxi X2ZsdXNoX2FsbChkKTsKKworICAgIHJldHVybiAwOwogfQogCiBpbnQgX19pbml0IGlvbW11X3Nl dHVwKHZvaWQpCkBAIC0zNjgsMTEgKzM3MiwxMyBAQCBpbnQgaW9tbXVfZG9fZG9tY3RsKAogICAg IHJldHVybiByZXQ7CiB9CiAKLXZvaWQgaW9tbXVfc3VzcGVuZCgpCitpbnQgaW9tbXVfc3VzcGVu ZCgpCiB7CiAgICAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqb3BzID0gaW9tbXVfZ2V0X29wcygp OwogICAgIGlmICggaW9tbXVfZW5hYmxlZCApCiAgICAgICAgIG9wcy0+c3VzcGVuZCgpOworCisg ICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgaW9tbXVfc2hhcmVfcDJtX3RhYmxlKHN0cnVjdCBkb21h aW4qIGQpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5j IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwppbmRleCBjMGQ2YWFiLi5l NWFiMTBhIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5j CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKQEAgLTE0MCw4ICsx NDAsMTEgQEAgdm9pZCBfX2h3ZG9tX2luaXQgdnRkX3NldF9od2RvbV9tYXBwaW5nKHN0cnVjdCBk b21haW4gKmQpCiAKICAgICAgICAgdG1wID0gMSA8PCAoUEFHRV9TSElGVCAtIFBBR0VfU0hJRlRf NEspOwogICAgICAgICBmb3IgKCBqID0gMDsgaiA8IHRtcDsgaisrICkKLSAgICAgICAgICAgIGlv bW11X21hcF9wYWdlKGQsIHBmbiAqIHRtcCArIGosIHBmbiAqIHRtcCArIGosCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAg ICAgICAgIGlmICggaW9tbXVfbWFwX3BhZ2UoZCwgcGZuICogdG1wICsgaiwgcGZuICogdG1wICsg aiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1V Rl93cml0YWJsZSkgKQorICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIKKyAgICAg ICAgICAgICAgICAgICAgICAgIklPTU1VOiBNYXAgcGFnZSBnZm46IDB4JWx4KG1mbjogMHglbHgp IGZhaWxlZC5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgIHBmbiAqIHRtcCArIGosIHBmbiAq IHRtcCArIGopOwogCiAgICAgICAgIGlmICghKGkgJiAoMHhmZmZmZiA+PiAoUEFHRV9TSElGVCAt IFBBR0VfU0hJRlRfNEspKSkpCiAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMo KTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKaW5kZXggOGNiYjY1NS4uZDhlM2M4ZiAx MDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAgLTEwNCw3ICsxMDQsMTEgQEAgaW50 IGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHRo aXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpID0gMDsKIAogICAgIGlmICggIXJjICkKLSAg ICAgICAgaW9tbXVfaW90bGJfZmx1c2hfYWxsKGQpOworICAgIHsKKyAgICAgICAgcmMgPSBpb21t dV9pb3RsYl9mbHVzaF9hbGwoZCk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgaW9t bXVfdGVhcmRvd24oZCk7CisgICAgfQogICAgIGVsc2UgaWYgKCByYyAhPSAtRVJFU1RBUlQgKQog ICAgICAgICBpb21tdV90ZWFyZG93bihkKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVu L2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA4MjE3Y2I3Li5kNmQ0ODlh IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94 ZW4vaW9tbXUuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0cnVjdCBpb21tdV9vcHMgewogICAgIHZv aWQgKCpkdW1wX3AybV90YWJsZSkoc3RydWN0IGRvbWFpbiAqZCk7CiB9OwogCi12b2lkIGlvbW11 X3N1c3BlbmQodm9pZCk7CitpbnQgaW9tbXVfc3VzcGVuZCh2b2lkKTsKIHZvaWQgaW9tbXVfcmVz dW1lKHZvaWQpOwogdm9pZCBpb21tdV9jcmFzaF9zaHV0ZG93bih2b2lkKTsKIGludCBpb21tdV9n ZXRfcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeShpb21tdV9ncmRtX3QgKiwgdm9pZCAqKTsKQEAgLTE4 Miw4ICsxODIsOCBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAq LCBzdHJ1Y3QgZG9tYWluICpkLAogaW50IGlvbW11X2RvX2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0 bCAqLCBzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHhlbl9kb21jdGxfdCkpOwogCi12b2lkIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCk7 Ci12b2lkIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9tYWluICpkKTsKK2ludCBpb21t dV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWdu ZWQgaW50IHBhZ2VfY291bnQpOworaW50IGlvbW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9t YWluICpkKTsKIAogLyoKICAqIFRoZSBwdXJwb3NlIG9mIHRoZSBpb21tdV9kb250X2ZsdXNoX2lv dGxiIG9wdGlvbmFsIGNwdSBmbGFnIGlzIHRvCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==