From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 5/5] xen: use libxendevicemodel when available Date: Thu, 2 Mar 2017 11:09:46 +0000 Message-ID: <1488452986-24501-6-git-send-email-paul.durrant@citrix.com> References: <1488452986-24501-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cjOcL-0000d7-QF for xen-devel@lists.xenproject.org; Thu, 02 Mar 2017 11:09:53 +0000 In-Reply-To: <1488452986-24501-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, qemu-devel@nongnu.org Cc: Anthony Perard , Paul Durrant , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgd3JhcHBlciBmdW5jdGlvbnMgaW4geGVuX2NvbW1vbi5o IHRvIHVzZSB0aGUKbmV3IHhlbmRldmljZW1vZGVsIGludGVyZmFjZSBpZiBpdCBpcyBhdmFpbGFi bGUgYWxvbmcgd2l0aCBjb21wYXRpYmlsaXR5CmNvZGUgdG8gdXNlIHRoZSBvbGQgbGlieGVuY3Ry bCBpbnRlcmZhY2UgaWYgaXQgaXMgbm90LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFi ZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0 cml4LmNvbT4KCnYyOgotIEFkZCBhIGNvbXBhdCBkZWZpbmUgZm9yIHhlbmZvcmVpZ25tZW1vcnlf Y2xvc2UoKSBzaW5jZSB0aGlzIGlzIG5vdwogIHVzZWQuCi0tLQogaW5jbHVkZS9ody94ZW4veGVu X2NvbW1vbi5oIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tCiB4ZW4tY29tbW9uLmMgICAgICAgICAgICAgICAgfCAgIDggKysrCiAyIGZpbGVzIGNoYW5n ZWQsIDkwIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvaHcveGVuL3hlbl9jb21tb24uaCBiL2luY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaAppbmRl eCAzMWNmMjVmLi40ODQ0NGU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9u LmgKKysrIGIvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCkBAIC05LDYgKzksNyBAQAogI3Vu ZGVmIFhDX1dBTlRfQ09NUEFUX0VWVENITl9BUEkKICN1bmRlZiBYQ19XQU5UX0NPTVBBVF9HTlRU QUJfQVBJCiAjdW5kZWYgWENfV0FOVF9DT01QQVRfTUFQX0ZPUkVJR05fQVBJCisjdW5kZWYgWENf V0FOVF9DT01QQVRfREVWSUNFTU9ERUxfQVBJCiAKICNpbmNsdWRlIDx4ZW5jdHJsLmg+CiAjaW5j bHVkZSA8eGVuc3RvcmUuaD4KQEAgLTI2LDQ4ICsyNyw5NSBAQCBleHRlcm4geGNfaW50ZXJmYWNl ICp4ZW5feGM7CiAgKiBXZSBkb24ndCBzdXBwb3J0IFhlbiBwcmlvciB0byA0LjIuMC4KICAqLwog CisjaWYgQ09ORklHX1hFTl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OIDwgNDkwCisKK3R5cGVkZWYg eGNfaW50ZXJmYWNlIHhlbmRldmljZW1vZGVsX2hhbmRsZTsKKworI2RlZmluZSB4ZW5kZXZpY2Vt b2RlbF9vcGVuKGwsIGYpIHhlbl94YworCisjZGVmaW5lIHhlbmRldmljZW1vZGVsX21hcF9pb19y YW5nZV90b19pb3JlcV9zZXJ2ZXIgXAorICAgIHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFf c2VydmVyCisjZGVmaW5lIHhlbmRldmljZW1vZGVsX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFf c2VydmVyIFwKKyAgICB4Y19odm1fdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIKKyNk ZWZpbmUgeGVuZGV2aWNlbW9kZWxfbWFwX3BjaWRldl90b19pb3JlcV9zZXJ2ZXIgXAorICAgIHhj X2h2bV9tYXBfcGNpZGV2X3RvX2lvcmVxX3NlcnZlcgorI2RlZmluZSB4ZW5kZXZpY2Vtb2RlbF91 bm1hcF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIgXAorICAgIHhjX2h2bV91bm1hcF9wY2lkZXZf ZnJvbV9pb3JlcV9zZXJ2ZXIKKyNkZWZpbmUgeGVuZGV2aWNlbW9kZWxfY3JlYXRlX2lvcmVxX3Nl cnZlciBcCisgICAgeGNfaHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIKKyNkZWZpbmUgeGVuZGV2aWNl bW9kZWxfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgXAorICAgIHhjX2h2bV9kZXN0cm95X2lvcmVxX3Nl cnZlcgorI2RlZmluZSB4ZW5kZXZpY2Vtb2RlbF9nZXRfaW9yZXFfc2VydmVyX2luZm8gXAorICAg IHhjX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8KKyNkZWZpbmUgeGVuZGV2aWNlbW9kZWxfc2V0 X2lvcmVxX3NlcnZlcl9zdGF0ZSBcCisgICAgeGNfaHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUK KyNkZWZpbmUgeGVuZGV2aWNlbW9kZWxfc2V0X3BjaV9pbnR4X2xldmVsIFwKKyAgICB4Y19odm1f c2V0X3BjaV9pbnR4X2xldmVsCisjZGVmaW5lIHhlbmRldmljZW1vZGVsX3NldF9wY2lfbGlua19y b3V0ZSBcCisgICAgeGNfaHZtX3NldF9wY2lfbGlua19yb3V0ZQorI2RlZmluZSB4ZW5kZXZpY2Vt b2RlbF9zZXRfaXNhX2lycV9sZXZlbCBcCisgICAgeGNfaHZtX3NldF9pc2FfaXJxX2xldmVsCisj ZGVmaW5lIHhlbmRldmljZW1vZGVsX2luamVjdF9tc2kgXAorICAgIHhjX2h2bV9pbmplY3RfbXNp CisjZGVmaW5lIHhlbmRldmljZW1vZGVsX3NldF9tZW1fdHlwZSBcCisgICAgeGNfaHZtX3NldF9t ZW1fdHlwZQorI2RlZmluZSB4ZW5kZXZpY2Vtb2RlbF90cmFja19kaXJ0eV92cmFtIFwKKyAgICB4 Y19odm1fdHJhY2tfZGlydHlfdnJhbQorI2RlZmluZSB4ZW5kZXZpY2Vtb2RlbF9tb2RpZmllZF9t ZW1vcnkgXAorICAgIHhjX2h2bV9tb2RpZmllZF9tZW1vcnkKKworI2Vsc2UgLyogQ09ORklHX1hF Tl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OID49IDQ5MCAqLworCisjaW5jbHVkZSA8eGVuZGV2aWNl bW9kZWwuaD4KKworI2VuZGlmCisKK2V4dGVybiB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKnhlbl9k bW9kOworCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X21lbV90eXBlKGRvbWlkX3QgZG9taWQs IGh2bW1lbV90eXBlX3QgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBucikKIHsKLSAgICByZXR1cm4geGNfaHZtX3Nl dF9tZW1fdHlwZSh4ZW5feGMsIGRvbWlkLCB0eXBlLCBmaXJzdF9wZm4sIG5yKTsKKyAgICByZXR1 cm4geGVuZGV2aWNlbW9kZWxfc2V0X21lbV90eXBlKHhlbl9kbW9kLCBkb21pZCwgdHlwZSwgZmly c3RfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnIpOwogfQog CiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X3BjaV9pbnR4X2xldmVsKGRvbWlkX3QgZG9taWQs IHVpbnQxNl90IHNlZ21lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDhfdCBpbnR4LCB1bnNpZ25lZCBpbnQgbGV2ZWwpCiB7Ci0g ICAgcmV0dXJuIHhjX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwoeGVuX3hjLCBkb21pZCwgc2VnbWVu dCwgYnVzLCBkZXZpY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 eCwgbGV2ZWwpOworICAgIHJldHVybiB4ZW5kZXZpY2Vtb2RlbF9zZXRfcGNpX2ludHhfbGV2ZWwo eGVuX2Rtb2QsIGRvbWlkLCBzZWdtZW50LCBidXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZXZpY2UsIGludHgsIGxldmVsKTsKIH0KIAogc3RhdGljIGlu bGluZSBpbnQgeGVuX3NldF9wY2lfbGlua19yb3V0ZShkb21pZF90IGRvbWlkLCB1aW50OF90IGxp bmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaXJx KQogewotICAgIHJldHVybiB4Y19odm1fc2V0X3BjaV9saW5rX3JvdXRlKHhlbl94YywgZG9taWQs IGxpbmssIGlycSk7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3NldF9wY2lfbGlua19yb3V0 ZSh4ZW5fZG1vZCwgZG9taWQsIGxpbmssIGlycSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhl bl9pbmplY3RfbXNpKGRvbWlkX3QgZG9taWQsIHVpbnQ2NF90IG1zaV9hZGRyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbXNpX2RhdGEpCiB7Ci0gICAgcmV0dXJu IHhjX2h2bV9pbmplY3RfbXNpKHhlbl94YywgZG9taWQsIG1zaV9hZGRyLCBtc2lfZGF0YSk7Cisg ICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX2luamVjdF9tc2koeGVuX2Rtb2QsIGRvbWlkLCBtc2lf YWRkciwgbXNpX2RhdGEpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X2lzYV9pcnFf bGV2ZWwoZG9taWRfdCBkb21pZCwgdWludDhfdCBpcnEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxldmVsKQogewotICAgIHJldHVybiB4Y19o dm1fc2V0X2lzYV9pcnFfbGV2ZWwoeGVuX3hjLCBkb21pZCwgaXJxLCBsZXZlbCk7CisgICAgcmV0 dXJuIHhlbmRldmljZW1vZGVsX3NldF9pc2FfaXJxX2xldmVsKHhlbl9kbW9kLCBkb21pZCwgaXJx LCBsZXZlbCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhlbl90cmFja19kaXJ0eV92cmFtKGRv bWlkX3QgZG9taWQsIHVpbnQ2NF90IGZpcnN0X3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90IG5yLCB1bnNpZ25lZCBsb25nICpiaXRtYXApCiB7Ci0g ICAgcmV0dXJuIHhjX2h2bV90cmFja19kaXJ0eV92cmFtKHhlbl94YywgZG9taWQsIGZpcnN0X3Bm biwgbnIsIGJpdG1hcCk7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3RyYWNrX2RpcnR5X3Zy YW0oeGVuX2Rtb2QsIGRvbWlkLCBmaXJzdF9wZm4sIG5yLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJpdG1hcCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhl bl9tb2RpZmllZF9tZW1vcnkoZG9taWRfdCBkb21pZCwgdWludDY0X3QgZmlyc3RfcGZuLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBucikKIHsKLSAgICBy ZXR1cm4geGNfaHZtX21vZGlmaWVkX21lbW9yeSh4ZW5feGMsIGRvbWlkLCBmaXJzdF9wZm4sIG5y KTsKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfbW9kaWZpZWRfbWVtb3J5KHhlbl9kbW9kLCBk b21pZCwgZmlyc3RfcGZuLCBucik7CiB9CiAKIC8qIFhlbiA0LjIgdGhyb3VnaCA0LjYgKi8KQEAg LTk3LDYgKzE0NSw3IEBAIHR5cGVkZWYgeGNfZ250dGFiIHhlbmdudHRhYl9oYW5kbGU7CiAgICAg eGNfZ250dGFiX21hcF9kb21haW5fZ3JhbnRfcmVmcyhoLCBjLCBkLCByLCBwKQogCiAjZGVmaW5l IHhlbmZvcmVpZ25tZW1vcnlfb3BlbihsLCBmKSB4ZW5feGMKKyNkZWZpbmUgeGVuZm9yZWlnbm1l bW9yeV9jbG9zZShoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgKnhlbmZvcmVpZ25tZW1vcnlfbWFw KHhjX2ludGVyZmFjZSAqaCwgdWludDMyX3QgZG9tLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgcHJvdCwgc2l6ZV90IHBhZ2VzLApAQCAtMjg1LDggKzMzNCw4 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fbWFwX21lbW9yeV9zZWN0aW9uKGRvbWlkX3QgZG9t LAogICAgIH0KIAogICAgIHRyYWNlX3hlbl9tYXBfbW1pb19yYW5nZShpb3NlcnZpZCwgc3RhcnRf YWRkciwgZW5kX2FkZHIpOwotICAgIHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVy KHhlbl94YywgZG9tLCBpb3NlcnZpZCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGFydF9hZGRyLCBlbmRfYWRkcik7CisgICAgeGVuZGV2aWNlbW9kZWxfbWFw X2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcih4ZW5fZG1vZCwgZG9tLCBpb3NlcnZpZCwgMSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2FkZHIs IGVuZF9hZGRyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9tZW1vcnlfc2Vj dGlvbihkb21pZF90IGRvbSwKQEAgLTMwMiw4ICszNTEsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg eGVuX3VubWFwX21lbW9yeV9zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNl X3hlbl91bm1hcF9tbWlvX3JhbmdlKGlvc2VydmlkLCBzdGFydF9hZGRyLCBlbmRfYWRkcik7Ci0g ICAgeGNfaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBp b3NlcnZpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwg c3RhcnRfYWRkciwgZW5kX2FkZHIpOworICAgIHhlbmRldmljZW1vZGVsX3VubWFwX2lvX3Jhbmdl X2Zyb21faW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIHN0YXJ0X2FkZHIsIGVu ZF9hZGRyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl9tYXBfaW9fc2VjdGlvbihkb21p ZF90IGRvbSwKQEAgLTMxOSw4ICszNjgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9p b19zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hlbl9tYXBfcG9ydGlv X3JhbmdlKGlvc2VydmlkLCBzdGFydF9hZGRyLCBlbmRfYWRkcik7Ci0gICAgeGNfaHZtX21hcF9p b19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBkb20sIGlvc2VydmlkLCAwLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsK KyAgICB4ZW5kZXZpY2Vtb2RlbF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHhlbl9kbW9k LCBkb20sIGlvc2VydmlkLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZv aWQgeGVuX3VubWFwX2lvX3NlY3Rpb24oZG9taWRfdCBkb20sCkBAIC0zMzYsOCArMzg1LDggQEAg c3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9pb19zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAg IH0KIAogICAgIHRyYWNlX3hlbl91bm1hcF9wb3J0aW9fcmFuZ2UoaW9zZXJ2aWQsIHN0YXJ0X2Fk ZHIsIGVuZF9hZGRyKTsKLSAgICB4Y19odm1fdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2 ZXIoeGVuX3hjLCBkb20sIGlvc2VydmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwLCBzdGFydF9hZGRyLCBlbmRfYWRkcik7CisgICAgeGVuZGV2aWNlbW9k ZWxfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2 aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MCwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21h cF9wY2lkZXYoZG9taWRfdCBkb20sCkBAIC0zNTAsMTAgKzM5OSwxMCBAQCBzdGF0aWMgaW5saW5l IHZvaWQgeGVuX21hcF9wY2lkZXYoZG9taWRfdCBkb20sCiAKICAgICB0cmFjZV94ZW5fbWFwX3Bj aWRldihpb3NlcnZpZCwgcGNpX2J1c19udW0ocGNpX2Rldi0+YnVzKSwKICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBjaV9kZXYtPmRl dmZuKSk7Ci0gICAgeGNfaHZtX21hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyKHhlbl94YywgZG9t LCBpb3NlcnZpZCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNp X2J1c19udW0ocGNpX2Rldi0+YnVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZmbikpOworICAgIHhlbmRldmljZW1v ZGVsX21hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLCAw LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9idXNf bnVtKHBjaV9kZXYtPmJ1cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7CiB9CiAK IHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fdW5tYXBfcGNpZGV2KGRvbWlkX3QgZG9tLApAQCAtMzY2 LDE4ICs0MTUsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9wY2lkZXYoZG9taWRf dCBkb20sCiAKICAgICB0cmFjZV94ZW5fdW5tYXBfcGNpZGV2KGlvc2VydmlkLCBwY2lfYnVzX251 bShwY2lfZGV2LT5idXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNp X2Rldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZmbikpOwotICAgIHhjX2h2bV91bm1h cF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBkb20sIGlvc2VydmlkLCAwLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2J1c19udW0ocGNpX2Rl di0+YnVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9T TE9UKHBjaV9kZXYtPmRldmZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7CisgICAgeGVuZGV2aWNlbW9kZWxfdW5t YXBfcGNpZGV2X2Zyb21faW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLCAwLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfYnVz X251bShwY2lfZGV2LT5idXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZu KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fY3JlYXRlX2lvcmVxX3NlcnZlcihkb21p ZF90IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3Nl cnZpZF90ICppb3NlcnZpZCkKIHsKLSAgICBpbnQgcmMgPSB4Y19odm1fY3JlYXRlX2lvcmVxX3Nl cnZlcih4ZW5feGMsIGRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlvc2VydmlkKTsKKyAgICBpbnQgcmMgPSB4ZW5kZXZpY2Vtb2RlbF9j cmVhdGVfaW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWQp OwogCiAgICAgaWYgKHJjID09IDApIHsKICAgICAgICAgdHJhY2VfeGVuX2lvcmVxX3NlcnZlcl9j cmVhdGUoKmlvc2VydmlkKTsKQEAgLTM5Nyw3ICs0NDYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg eGVuX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNl X3hlbl9pb3JlcV9zZXJ2ZXJfZGVzdHJveShpb3NlcnZpZCk7Ci0gICAgeGNfaHZtX2Rlc3Ryb3lf aW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCk7CisgICAgeGVuZGV2aWNlbW9kZWxf ZGVzdHJveV9pb3JlcV9zZXJ2ZXIoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQpOwogfQogCiBzdGF0 aWMgaW5saW5lIGludCB4ZW5fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKGRvbWlkX3QgZG9tLApAQCAt NDEyLDkgKzQ2MSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhlbl9nZXRfaW9yZXFfc2VydmVyX2lu Zm8oZG9taWRfdCBkb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnVmaW9yZXFfZXZ0Y2huKTsKICAgICB9CiAKLSAgICByZXR1cm4geGNfaHZtX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbyh4ZW5feGMsIGRvbSwgaW9zZXJ2aWQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9yZXFfcGZuLCBidWZpb3JlcV9wZm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmaW9yZXFfZXZ0Y2huKTsKKyAg ICByZXR1cm4geGVuZGV2aWNlbW9kZWxfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHhlbl9kbW9kLCBk b20sIGlvc2VydmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW9yZXFfcGZuLCBidWZpb3JlcV9wZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBidWZpb3JlcV9ldnRjaG4pOwogfQogCiBzdGF0aWMgaW5s aW5lIGludCB4ZW5fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZShkb21pZF90IGRvbSwKQEAgLTQyNiw4 ICs0NzUsOCBAQCBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZShk b21pZF90IGRvbSwKICAgICB9CiAKICAgICB0cmFjZV94ZW5faW9yZXFfc2VydmVyX3N0YXRlKGlv c2VydmlkLCBlbmFibGUpOwotICAgIHJldHVybiB4Y19odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0 ZSh4ZW5feGMsIGRvbSwgaW9zZXJ2aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVuYWJsZSk7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3NldF9pb3JlcV9z ZXJ2ZXJfc3RhdGUoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlKTsKIH0KIAogI2VuZGlmCmRpZmYg LS1naXQgYS94ZW4tY29tbW9uLmMgYi94ZW4tY29tbW9uLmMKaW5kZXggNzAzZTdhNS4uYWU3NjE1 MCAxMDA2NDQKLS0tIGEveGVuLWNvbW1vbi5jCisrKyBiL3hlbi1jb21tb24uYwpAQCAtMjcsNiAr MjcsNyBAQAogCiB4Y19pbnRlcmZhY2UgKnhlbl94YzsKIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxl ICp4ZW5fZm1lbTsKK3hlbmRldmljZW1vZGVsX2hhbmRsZSAqeGVuX2Rtb2Q7CiAKIHN0YXRpYyBp bnQgc3RvcmVfZGV2X2luZm8oaW50IGRvbWlkLCBDaGFyZGV2ICpjcywgY29uc3QgY2hhciAqc3Ry aW5nKQogewpAQCAtMTI4LDYgKzEyOSwxMyBAQCBzdGF0aWMgaW50IHhlbl9pbml0KE1hY2hpbmVT dGF0ZSAqbXMpCiAgICAgICAgIHhjX2ludGVyZmFjZV9jbG9zZSh4ZW5feGMpOwogICAgICAgICBy ZXR1cm4gLTE7CiAgICAgfQorICAgIHhlbl9kbW9kID0geGVuZGV2aWNlbW9kZWxfb3BlbigwLCAw KTsKKyAgICBpZiAoeGVuX2Rtb2QgPT0gTlVMTCkgeworICAgICAgICB4ZW5fcHZfcHJpbnRmKE5V TEwsIDAsICJjYW4ndCBvcGVuIHhlbiBkZXZpY2Vtb2RlbCBpbnRlcmZhY2VcbiIpOworICAgICAg ICB4ZW5mb3JlaWdubWVtb3J5X2Nsb3NlKHhlbl9mbWVtKTsKKyAgICAgICAgeGNfaW50ZXJmYWNl X2Nsb3NlKHhlbl94Yyk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAgICAgcWVtdV9hZGRf dm1fY2hhbmdlX3N0YXRlX2hhbmRsZXIoeGVuX2NoYW5nZV9zdGF0ZV9oYW5kbGVyLCBOVUxMKTsK IAogICAgIGdsb2JhbF9zdGF0ZV9zZXRfb3B0aW9uYWwoKTsKLS0gCjIuMS40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==