From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v8 2/3] VT-d: Wrap a _sync version for all VT-d flush interfaces Date: Thu, 24 Mar 2016 13:57:57 +0800 Message-ID: <1458799079-79825-2-git-send-email-quan.xu@intel.com> References: <1458799079-79825-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: <1458799079-79825-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: Quan Xu , kevin.tian@intel.com, feng.wu@intel.com, dario.faggioli@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org Rm9yIGNvbnNpc3RlbmN5LCB3ZSB3cmFwIGEgX3N5bmMgdmVyc2lvbiBmb3IgYWxsIFZULWQgZmx1 c2ggaW50ZXJmYWNlcy4KSXQgc2ltcGxpZmllcyBjYWxsZXIgbG9naWMgYW5kIG1ha2VzIGNvZGUg bW9yZSByZWFkYWJsZSBhcyB3ZWxsLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54dUBp bnRlbC5jb20+Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oICB8ICAg MiArCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMgIHwgMTczICsrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94 ODYvYXRzLmMgfCAgMTIgKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCA4 MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv ZXh0ZXJuLmggYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgKaW5kZXggZDRk MzdjMy4uNmQzMTg3ZCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4 dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaApAQCAtNjEs NiArNjEsOCBAQCBpbnQgZGV2X2ludmFsaWRhdGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwg dTE2IGRpZCwKIAogaW50IHFpbnZhbF9kZXZpY2VfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwK ICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBtYXhfaW52c19wZW5kLCB1MTYgc2lkLCB1MTYg c2l6ZSwgdTY0IGFkZHIpOworaW50IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1Y3QgaW9t bXUgKmlvbW11LCB1MzIgbWF4X2ludnNfcGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdTE2IHNpZCwgdTE2IHNpemUsIHU2NCBhZGRyKTsKIAogdW5zaWduZWQgaW50IGdldF9jYWNo ZV9saW5lX3NpemUodm9pZCk7CiB2b2lkIGNhY2hlbGluZV9mbHVzaChjaGFyICopOwpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCmluZGV4IDUyYmEyYzIuLmFkOWUyNjUgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKQEAgLTcyLDYgKzcyLDcwIEBAIHN0YXRpYyB2b2lk IHFpbnZhbF91cGRhdGVfcXRhaWwoc3RydWN0IGlvbW11ICppb21tdSwgdW5zaWduZWQgaW50IGlu ZGV4KQogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywgKHZhbCA8PCBR SU5WQUxfSU5ERVhfU0hJRlQpKTsKIH0KIAorc3RhdGljIGludCBfX211c3RfY2hlY2sgcXVldWVf aW52YWxpZGF0ZV93YWl0KHN0cnVjdCBpb21tdSAqaW9tbXUsCisgICAgdTggaWZsYWcsIHU4IHN3 LCB1OCBmbikKK3sKKyAgICBzX3RpbWVfdCB0aW1lb3V0OworICAgIHZvbGF0aWxlIHUzMiBwb2xs X3Nsb3QgPSBRSU5WQUxfU1RBVF9JTklUOworICAgIHVuc2lnbmVkIGludCBpbmRleDsKKyAgICB1 bnNpZ25lZCBsb25nIGZsYWdzOworICAgIHU2NCBlbnRyeV9iYXNlOworICAgIHN0cnVjdCBxaW52 YWxfZW50cnkgKnFpbnZhbF9lbnRyeSwgKnFpbnZhbF9lbnRyaWVzOworCisgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CisgICAgaW5kZXggPSBxaW52 YWxfbmV4dF9pbmRleChpb21tdSk7CisgICAgZW50cnlfYmFzZSA9IGlvbW11X3FpX2N0cmwoaW9t bXUpLT5xaW52YWxfbWFkZHIgKworICAgICAgICAgICAgICAgICAoKGluZGV4ID4+IFFJTlZBTF9F TlRSWV9PUkRFUikgPDwgUEFHRV9TSElGVCk7CisgICAgcWludmFsX2VudHJpZXMgPSBtYXBfdnRk X2RvbWFpbl9wYWdlKGVudHJ5X2Jhc2UpOworICAgIHFpbnZhbF9lbnRyeSA9ICZxaW52YWxfZW50 cmllc1tpbmRleCAlICgxIDw8IFFJTlZBTF9FTlRSWV9PUkRFUildOworCisgICAgcWludmFsX2Vu dHJ5LT5xLmludl93YWl0X2RzYy5sby50eXBlID0gVFlQRV9JTlZBTF9XQUlUOworICAgIHFpbnZh bF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MubG8uaWZsYWcgPSBpZmxhZzsKKyAgICBxaW52YWxfZW50 cnktPnEuaW52X3dhaXRfZHNjLmxvLnN3ID0gc3c7CisgICAgcWludmFsX2VudHJ5LT5xLmludl93 YWl0X2RzYy5sby5mbiA9IGZuOworICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MubG8u cmVzXzEgPSAwOworICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MubG8uc2RhdGEgPSBR SU5WQUxfU1RBVF9ET05FOworICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MuaGkucmVz XzEgPSAwOworICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MuaGkuc2FkZHIgPSB2aXJ0 X3RvX21hZGRyKCZwb2xsX3Nsb3QpID4+IDI7CisKKyAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2Uo cWludmFsX2VudHJpZXMpOworICAgIHFpbnZhbF91cGRhdGVfcXRhaWwoaW9tbXUsIGluZGV4KTsK KyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3Mp OworCisgICAgLyogTm93IHdlIGRvbid0IHN1cHBvcnQgaW50ZXJydXB0IG1ldGhvZCAqLworICAg IGlmICggc3cgKQorICAgIHsKKyAgICAgICAgLyogSW4gY2FzZSBhbGwgd2FpdCBkZXNjcmlwdG9y IHdyaXRlcyB0byBzYW1lIGFkZHIgd2l0aCBzYW1lIGRhdGEgKi8KKyAgICAgICAgdGltZW91dCA9 IE5PVygpICsgSU9NTVVfUUlfVElNRU9VVDsKKyAgICAgICAgd2hpbGUgKCBwb2xsX3Nsb3QgIT0g UUlOVkFMX1NUQVRfRE9ORSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggTk9XKCkgPiB0 aW1lb3V0ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludF9xaV9yZWdzKGlv bW11KTsKKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCisg ICAgICAgICAgICAgICAgICAgICAgICJRdWV1ZSBpbnZhbGlkYXRlIHdhaXQgZGVzY3JpcHRvciB0 aW1lZCBvdXQuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVUSU1FRE9VVDsKKyAgICAg ICAgICAgIH0KKworICAgICAgICAgICAgY3B1X3JlbGF4KCk7CisgICAgICAgIH0KKworICAgICAg ICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRp YyBpbnQgaW52YWxpZGF0ZV9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUpCit7CisgICAgc3RydWN0 IHFpX2N0cmwgKnFpX2N0cmwgPSBpb21tdV9xaV9jdHJsKGlvbW11KTsKKworICAgIGlmICggcWlf Y3RybC0+cWludmFsX21hZGRyICkKKyAgICAgICAgcmV0dXJuIHF1ZXVlX2ludmFsaWRhdGVfd2Fp dChpb21tdSwgMCwgMSwgMSk7CisKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgcXVl dWVfaW52YWxpZGF0ZV9jb250ZXh0KHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgdTE2IGRpZCwg dTE2IHNvdXJjZV9pZCwgdTggZnVuY3Rpb25fbWFzaywgdTggZ3JhbnUpCiB7CkBAIC0xMDIsNiAr MTY2LDE1IEBAIHN0YXRpYyB2b2lkIHF1ZXVlX2ludmFsaWRhdGVfY29udGV4dChzdHJ1Y3QgaW9t bXUgKmlvbW11LAogICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShxaW52YWxfZW50cmllcyk7CiB9 CiAKK3N0YXRpYyBpbnQgcXVldWVfaW52YWxpZGF0ZV9jb250ZXh0X3N5bmMoc3RydWN0IGlvbW11 ICppb21tdSwKKyAgICB1MTYgZGlkLCB1MTYgc291cmNlX2lkLCB1OCBmdW5jdGlvbl9tYXNrLCB1 OCBncmFudSkKK3sKKyAgICBxdWV1ZV9pbnZhbGlkYXRlX2NvbnRleHQoaW9tbXUsIGRpZCwgc291 cmNlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9tYXNrLCBncmFu dSk7CisKKyAgICByZXR1cm4gaW52YWxpZGF0ZV9zeW5jKGlvbW11KTsKK30KKwogc3RhdGljIHZv aWQgcXVldWVfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LAogICAgIHU4IGdy YW51LCB1OCBkciwgdTggZHcsIHUxNiBkaWQsIHU4IGFtLCB1OCBpaCwgdTY0IGFkZHIpCiB7CkBA IC0xMzUsNjUgKzIwOCwxMiBAQCBzdGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiKHN0 cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPnJl Z2lzdGVyX2xvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIGludCBfX211c3RfY2hlY2sgcXVldWVf aW52YWxpZGF0ZV93YWl0KHN0cnVjdCBpb21tdSAqaW9tbXUsCi0gICAgdTggaWZsYWcsIHU4IHN3 LCB1OCBmbikKLXsKLSAgICBzX3RpbWVfdCB0aW1lb3V0OwotICAgIHZvbGF0aWxlIHUzMiBwb2xs X3Nsb3QgPSBRSU5WQUxfU1RBVF9JTklUOwotICAgIHVuc2lnbmVkIGludCBpbmRleDsKLSAgICB1 bnNpZ25lZCBsb25nIGZsYWdzOwotICAgIHU2NCBlbnRyeV9iYXNlOwotICAgIHN0cnVjdCBxaW52 YWxfZW50cnkgKnFpbnZhbF9lbnRyeSwgKnFpbnZhbF9lbnRyaWVzOwotCi0gICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7Ci0gICAgaW5kZXggPSBxaW52 YWxfbmV4dF9pbmRleChpb21tdSk7Ci0gICAgZW50cnlfYmFzZSA9IGlvbW11X3FpX2N0cmwoaW9t bXUpLT5xaW52YWxfbWFkZHIgKwotICAgICAgICAgICAgICAgICAoKGluZGV4ID4+IFFJTlZBTF9F TlRSWV9PUkRFUikgPDwgUEFHRV9TSElGVCk7Ci0gICAgcWludmFsX2VudHJpZXMgPSBtYXBfdnRk X2RvbWFpbl9wYWdlKGVudHJ5X2Jhc2UpOwotICAgIHFpbnZhbF9lbnRyeSA9ICZxaW52YWxfZW50 cmllc1tpbmRleCAlICgxIDw8IFFJTlZBTF9FTlRSWV9PUkRFUildOwotCi0gICAgcWludmFsX2Vu dHJ5LT5xLmludl93YWl0X2RzYy5sby50eXBlID0gVFlQRV9JTlZBTF9XQUlUOwotICAgIHFpbnZh bF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MubG8uaWZsYWcgPSBpZmxhZzsKLSAgICBxaW52YWxfZW50 cnktPnEuaW52X3dhaXRfZHNjLmxvLnN3ID0gc3c7Ci0gICAgcWludmFsX2VudHJ5LT5xLmludl93 YWl0X2RzYy5sby5mbiA9IGZuOwotICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MubG8u cmVzXzEgPSAwOwotICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MubG8uc2RhdGEgPSBR SU5WQUxfU1RBVF9ET05FOwotICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MuaGkucmVz XzEgPSAwOwotICAgIHFpbnZhbF9lbnRyeS0+cS5pbnZfd2FpdF9kc2MuaGkuc2FkZHIgPSB2aXJ0 X3RvX21hZGRyKCZwb2xsX3Nsb3QpID4+IDI7Ci0KLSAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2Uo cWludmFsX2VudHJpZXMpOwotICAgIHFpbnZhbF91cGRhdGVfcXRhaWwoaW9tbXUsIGluZGV4KTsK LSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3Mp OwotCi0gICAgLyogTm93IHdlIGRvbid0IHN1cHBvcnQgaW50ZXJydXB0IG1ldGhvZCAqLwotICAg IGlmICggc3cgKQotICAgIHsKLSAgICAgICAgLyogSW4gY2FzZSBhbGwgd2FpdCBkZXNjcmlwdG9y IHdyaXRlcyB0byBzYW1lIGFkZHIgd2l0aCBzYW1lIGRhdGEgKi8KLSAgICAgICAgdGltZW91dCA9 IE5PVygpICsgSU9NTVVfUUlfVElNRU9VVDsKLSAgICAgICAgd2hpbGUgKCBwb2xsX3Nsb3QgIT0g UUlOVkFMX1NUQVRfRE9ORSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICggTk9XKCkgPiB0 aW1lb3V0ICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwcmludF9xaV9yZWdzKGlv bW11KTsKLSAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCi0g ICAgICAgICAgICAgICAgICAgICAgICJRdWV1ZSBpbnZhbGlkYXRlIHdhaXQgZGVzY3JpcHRvciB0 aW1lZCBvdXQuXG4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLUVUSU1FRE9VVDsKLSAgICAg ICAgICAgIH0KLSAgICAgICAgICAgIGNwdV9yZWxheCgpOwotICAgICAgICB9Ci0gICAgICAgIHJl dHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiAtRU9QTk9UU1VQUDsKLX0KLQotc3RhdGljIGlu dCBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSkKK3N0YXRpYyBpbnQgcXVldWVf aW52YWxpZGF0ZV9pb3RsYl9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsCisgICAgdTggZ3JhbnUs IHU4IGRyLCB1OCBkdywgdTE2IGRpZCwgdTggYW0sIHU4IGloLCB1NjQgYWRkcikKIHsKLSAgICBz dHJ1Y3QgcWlfY3RybCAqcWlfY3RybCA9IGlvbW11X3FpX2N0cmwoaW9tbXUpOworICAgIHF1ZXVl X2ludmFsaWRhdGVfaW90bGIoaW9tbXUsIGdyYW51LCBkciwgZHcsIGRpZCwgYW0sIGloLCBhZGRy KTsKIAotICAgIGlmICggcWlfY3RybC0+cWludmFsX21hZGRyICkKLSAgICAgICAgcmV0dXJuIHF1 ZXVlX2ludmFsaWRhdGVfd2FpdChpb21tdSwgMCwgMSwgMSk7Ci0gICAgcmV0dXJuIDA7CisgICAg cmV0dXJuIGludmFsaWRhdGVfc3luYyhpb21tdSk7CiB9CiAKIGludCBxaW52YWxfZGV2aWNlX2lv dGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsCkBAIC0yMjksNiArMjQ5LDE0IEBAIGludCBxaW52YWxf ZGV2aWNlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgcmV0dXJuIDA7CiB9CiAKK2lu dCBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwKKyAgICB1MzIg bWF4X2ludnNfcGVuZCwgdTE2IHNpZCwgdTE2IHNpemUsIHU2NCBhZGRyKQoreworICAgIHFpbnZh bF9kZXZpY2VfaW90bGIoaW9tbXUsIG1heF9pbnZzX3BlbmQsIHNpZCwgc2l6ZSwgYWRkcik7CisK KyAgICByZXR1cm4gaW52YWxpZGF0ZV9zeW5jKGlvbW11KTsKK30KKwogc3RhdGljIHZvaWQgcXVl dWVfaW52YWxpZGF0ZV9pZWMoc3RydWN0IGlvbW11ICppb21tdSwgdTggZ3JhbnUsIHU4IGltLCB1 MTYgaWlkeCkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMjU2LDcgKzI4NCw3IEBA IHN0YXRpYyB2b2lkIHF1ZXVlX2ludmFsaWRhdGVfaWVjKHN0cnVjdCBpb21tdSAqaW9tbXUsIHU4 IGdyYW51LCB1OCBpbSwgdTE2IGlpZHgpCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t bXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIGludCBfX2lvbW11X2ZsdXNo X2llYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1OCBncmFudSwgdTggaW0sIHUxNiBpaWR4KQorc3Rh dGljIGludCBxdWV1ZV9pbnZhbGlkYXRlX2llY19zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsIHU4 IGdyYW51LCB1OCBpbSwgdTE2IGlpZHgpCiB7CiAgICAgaW50IHJldDsKIApAQCAtMjczLDEyICsz MDEsMTIgQEAgc3RhdGljIGludCBfX2lvbW11X2ZsdXNoX2llYyhzdHJ1Y3QgaW9tbXUgKmlvbW11 LCB1OCBncmFudSwgdTggaW0sIHUxNiBpaWR4KQogCiBpbnQgaW9tbXVfZmx1c2hfaWVjX2dsb2Jh bChzdHJ1Y3QgaW9tbXUgKmlvbW11KQogewotICAgIHJldHVybiBfX2lvbW11X2ZsdXNoX2llYyhp b21tdSwgSUVDX0dMT0JBTF9JTlZMLCAwLCAwKTsKKyAgICByZXR1cm4gcXVldWVfaW52YWxpZGF0 ZV9pZWNfc3luYyhpb21tdSwgSUVDX0dMT0JBTF9JTlZMLCAwLCAwKTsKIH0KIAogaW50IGlvbW11 X2ZsdXNoX2llY19pbmRleChzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1OCBpbSwgdTE2IGlpZHgpCiB7 Ci0gICByZXR1cm4gX19pb21tdV9mbHVzaF9pZWMoaW9tbXUsIElFQ19JTkRFWF9JTlZMLCBpbSwg aWlkeCk7CisgICByZXR1cm4gcXVldWVfaW52YWxpZGF0ZV9pZWNfc3luYyhpb21tdSwgSUVDX0lO REVYX0lOVkwsIGltLCBpaWR4KTsKIH0KIAogc3RhdGljIGludCBmbHVzaF9jb250ZXh0X3FpKApA QCAtMzA0LDExICszMzIsOSBAQCBzdGF0aWMgaW50IGZsdXNoX2NvbnRleHRfcWkoCiAgICAgfQog CiAgICAgaWYgKCBxaV9jdHJsLT5xaW52YWxfbWFkZHIgIT0gMCApCi0gICAgewotICAgICAgICBx dWV1ZV9pbnZhbGlkYXRlX2NvbnRleHQoaW9tbXUsIGRpZCwgc2lkLCBmbSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPj4gRE1BX0NDTURfSU5WTF9HUkFOVV9PRkZTRVQp OwotICAgICAgICByZXQgPSBpbnZhbGlkYXRlX3N5bmMoaW9tbXUpOwotICAgIH0KKyAgICAgICAg cmV0ID0gcXVldWVfaW52YWxpZGF0ZV9jb250ZXh0X3N5bmMoaW9tbXUsIGRpZCwgc2lkLCBmbSwK KyAgICAgICAgICAgICAgICAgIHR5cGUgPj4gRE1BX0NDTURfSU5WTF9HUkFOVV9PRkZTRVQpOwor CiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMzM4LDIzICszNjQsMjQgQEAgc3RhdGljIGludCBm bHVzaF9pb3RsYl9xaSgKIAogICAgIGlmICggcWlfY3RybC0+cWludmFsX21hZGRyICE9IDAgKQog ICAgIHsKLSAgICAgICAgaW50IHJjOwotCiAgICAgICAgIC8qIHVzZSBxdWV1ZWQgaW52YWxpZGF0 aW9uICovCiAgICAgICAgIGlmIChjYXBfd3JpdGVfZHJhaW4oaW9tbXUtPmNhcCkpCiAgICAgICAg ICAgICBkdyA9IDE7CiAgICAgICAgIGlmIChjYXBfcmVhZF9kcmFpbihpb21tdS0+Y2FwKSkKICAg ICAgICAgICAgIGRyID0gMTsKICAgICAgICAgLyogTmVlZCB0byBjb25zaWRlIHRoZSBpaCBiaXQg bGF0ZXIgKi8KLSAgICAgICAgcXVldWVfaW52YWxpZGF0ZV9pb3RsYihpb21tdSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlID4+IERNQV9UTEJfRkxVU0hfR1JBTlVfT0ZGU0VU LCBkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdywgZGlkLCBzaXplX29yZGVy LCAwLCBhZGRyKTsKKyAgICAgICAgcmV0ID0gcXVldWVfaW52YWxpZGF0ZV9pb3RsYl9zeW5jKGlv bW11LAorICAgICAgICAgICAgICAgICAgdHlwZSA+PiBETUFfVExCX0ZMVVNIX0dSQU5VX09GRlNF VCwgZHIsIGR3LCBkaWQsCisgICAgICAgICAgICAgICAgICBzaXplX29yZGVyLCAwLCBhZGRyKTsK KworICAgICAgICAvKiBUT0RPOiBUaW1lb3V0IGVycm9yIGhhbmRsaW5nIHRvIGJlIGFkZGVkIGxh dGVyICovCisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisKICAg ICAgICAgaWYgKCBmbHVzaF9kZXZfaW90bGIgKQogICAgICAgICAgICAgcmV0ID0gZGV2X2ludmFs aWRhdGVfaW90bGIoaW9tbXUsIGRpZCwgYWRkciwgc2l6ZV9vcmRlciwgdHlwZSk7Ci0gICAgICAg IHJjID0gaW52YWxpZGF0ZV9zeW5jKGlvbW11KTsKLSAgICAgICAgaWYgKCAhcmV0ICkKLSAgICAg ICAgICAgIHJldCA9IHJjOwogICAgIH0KKwogICAgIHJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQveDg2L2F0cy5jCmluZGV4IDMzNGI5YzEuLjdiMWMwN2IgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYwpAQCAtMTE4LDcgKzExOCw2IEBAIGludCBkZXZf aW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAogICAgIHsKICAg ICAgICAgdTE2IHNpZCA9IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ZGV2Zm4pOwogICAgICAg ICBib29sX3Qgc2JpdDsKLSAgICAgICAgaW50IHJjID0gMDsKIAogICAgICAgICAvKiBPbmx5IGlu dmFsaWRhdGUgZGV2aWNlcyB0aGF0IGJlbG9uZyB0byB0aGlzIElPTU1VICovCiAgICAgICAgIGlm ICggcGRldi0+aW9tbXUgIT0gaW9tbXUgKQpAQCAtMTM0LDggKzEzMyw4IEBAIGludCBkZXZfaW52 YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAogICAgICAgICAgICAg LyogaW52YWxpZGF0ZSBhbGwgdHJhbnNsYXRpb25zOiBzYml0PTEsYml0XzYzPTAsYml0WzYyOjEy XT0xICovCiAgICAgICAgICAgICBzYml0ID0gMTsKICAgICAgICAgICAgIGFkZHIgPSAofjBVTCA8 PCBQQUdFX1NISUZUXzRLKSAmIDB4N0ZGRkZGRkZGRkZGRkZGRjsKLSAgICAgICAgICAgIHJjID0g cWludmFsX2RldmljZV9pb3RsYihpb21tdSwgcGRldi0+YXRzX3F1ZXVlX2RlcHRoLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZCwgc2JpdCwgYWRkcik7CisgICAgICAg ICAgICByZXQgPSBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoaW9tbXUsIHBkZXYtPmF0c19xdWV1 ZV9kZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWQs IHNiaXQsIGFkZHIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRE1BX1RMQl9Q U0lfRkxVU0g6CiAgICAgICAgICAgICBpZiAoICFkZXZpY2VfaW5fZG9tYWluKGlvbW11LCBwZGV2 LCBkaWQpICkKQEAgLTE1NCwxNiArMTUzLDEzIEBAIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihz dHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAogICAgICAgICAgICAgICAgIGFkZHIgfD0gKCgo dTY0KTEgPDwgKHNpemVfb3JkZXIgLSAxKSkgLSAxKSA8PCBQQUdFX1NISUZUXzRLOwogICAgICAg ICAgICAgfQogCi0gICAgICAgICAgICByYyA9IHFpbnZhbF9kZXZpY2VfaW90bGIoaW9tbXUsIHBk ZXYtPmF0c19xdWV1ZV9kZXB0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaWQsIHNiaXQsIGFkZHIpOworICAgICAgICAgICAgcmV0ID0gcWludmFsX2RldmljZV9pb3Rs Yl9zeW5jKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKICAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklO RyBWVERQUkVGSVgsICJpbnZhbGlkIHZ0LWQgZmx1c2ggdHlwZVxuIik7CiAgICAgICAgICAgICBy ZXR1cm4gLUVPUE5PVFNVUFA7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAoICFyZXQgKQotICAg ICAgICAgICAgcmV0ID0gcmM7CiAgICAgfQogCiAgICAgcmV0dXJuIHJldDsKLS0gCjEuOS4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK