From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v2 03/18] x86/traps: lift do_guest_trap to domain.h Date: Fri, 5 May 2017 15:48:21 +0100 Message-ID: <20170505144836.8612-4-wei.liu2@citrix.com> References: <20170505144836.8612-1-wei.liu2@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 1d6eXB-0000Bv-11 for xen-devel@lists.xenproject.org; Fri, 05 May 2017 14:48:41 +0000 In-Reply-To: <20170505144836.8612-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org UHV0IGl0IGFsb25nIHNpZGUgd2l0aCBvdGhlciBwdl9pbmplY3QgZnVuY3Rpb25zIGFuZCByZW5h bWUgaXQgdG8KcHZfaW5qZWN0X3RyYXAuCgpXZSBuZWVkIHRoaXMgYmVjYXVzZSB0aGlzIGZ1bmN0 aW9uIGlzIHVzZWQgYnkgUFYgZW11bGF0aW9uIGNvZGUgYW5kIFBWCnRyYXAgaGFuZGxpbmcgY29k ZSwgd2hpY2ggd2lsbCBiZSBzcGxpdCBpbnRvIGRpZmZlcmVudCBmaWxlcy4KCk5vIGZ1bmN0aW9u YWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4K LS0tCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgg fCAxMiArKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMzUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94 ODYvdHJhcHMuYwppbmRleCA4MDIzMzkyYTA2Li4yNjM5YmU3ODUwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtNjg0LDE4ICs2 ODQsNiBAQCB2b2lkIHB2X2luamVjdF9ldmVudChjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVu dCkKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBkb19ndWVzdF90cmFwKHVuc2lnbmVk IGludCB0cmFwbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKLXsKLSAgICBjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50IGV2 ZW50ID0gewotICAgICAgICAudmVjdG9yID0gdHJhcG5yLAotICAgICAgICAuZXJyb3JfY29kZSA9 ICgoKHRyYXBuciA8IDMyKSAmJiAoVFJBUF9IQVZFX0VDICYgKDF1IDw8IHRyYXBucikpKQotICAg ICAgICAgICAgICAgICAgICAgICA/IHJlZ3MtPmVycm9yX2NvZGUgOiBYODZfRVZFTlRfTk9fRUMp LAotICAgIH07Ci0KLSAgICBwdl9pbmplY3RfZXZlbnQoJmV2ZW50KTsKLX0KLQogc3RhdGljIHZv aWQgaW5zdHJ1Y3Rpb25fZG9uZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdW5zaWduZWQg bG9uZyByaXApCiB7CiAgICAgcmVncy0+cmlwID0gcmlwOwpAQCAtNzAzLDcgKzY5MSw3IEBAIHN0 YXRpYyB2b2lkIGluc3RydWN0aW9uX2RvbmUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVu c2lnbmVkIGxvbmcgcmlwKQogICAgIGlmICggcmVncy0+ZWZsYWdzICYgWDg2X0VGTEFHU19URiAp CiAgICAgewogICAgICAgICBjdXJyZW50LT5hcmNoLmRlYnVncmVnWzZdIHw9IERSX1NURVAgfCBE Ul9TVEFUVVNfUkVTRVJWRURfT05FOwotICAgICAgICBkb19ndWVzdF90cmFwKFRSQVBfZGVidWcs IHJlZ3MpOworICAgICAgICBwdl9pbmplY3RfdHJhcChUUkFQX2RlYnVnLCByZWdzKTsKICAgICB9 CiB9CiAKQEAgLTc1MSw3ICs3MzksNyBAQCBpbnQgc2V0X2d1ZXN0X21hY2hpbmVjaGVja190cmFw Ym91bmNlKHZvaWQpCiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwogICAgIHN0cnVjdCB0 cmFwX2JvdW5jZSAqdGIgPSAmdi0+YXJjaC5wdl92Y3B1LnRyYXBfYm91bmNlOwogIAotICAgIGRv X2d1ZXN0X3RyYXAoVFJBUF9tYWNoaW5lX2NoZWNrLCBndWVzdF9jcHVfdXNlcl9yZWdzKCkpOwor ICAgIHB2X2luamVjdF90cmFwKFRSQVBfbWFjaGluZV9jaGVjaywgZ3Vlc3RfY3B1X3VzZXJfcmVn cygpKTsKICAgICB0Yi0+ZmxhZ3MgJj0gflRCRl9FWENFUFRJT047IC8qIG5vdCBuZWVkZWQgZm9y IE1DRSBkZWxpdmVyeSBwYXRoICovCiAgICAgcmV0dXJuICFudWxsX3RyYXBfYm91bmNlKHYsIHRi KTsKIH0KQEAgLTc2NCw3ICs3NTIsNyBAQCBpbnQgc2V0X2d1ZXN0X25taV90cmFwYm91bmNlKHZv aWQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwogICAgIHN0cnVjdCB0cmFwX2Jv dW5jZSAqdGIgPSAmdi0+YXJjaC5wdl92Y3B1LnRyYXBfYm91bmNlOwotICAgIGRvX2d1ZXN0X3Ry YXAoVFJBUF9ubWksIGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSk7CisgICAgcHZfaW5qZWN0X3RyYXAo VFJBUF9ubWksIGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSk7CiAgICAgdGItPmZsYWdzICY9IH5UQkZf RVhDRVBUSU9OOyAvKiBub3QgbmVlZGVkIGZvciBOTUkgZGVsaXZlcnkgcGF0aCAqLwogICAgIHJl dHVybiAhbnVsbF90cmFwX2JvdW5jZSh2LCB0Yik7CiB9CkBAIC03OTQsNyArNzgyLDcgQEAgdm9p ZCBkb190cmFwKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgaWYgKCBndWVzdF9t b2RlKHJlZ3MpICkKICAgICB7Ci0gICAgICAgIGRvX2d1ZXN0X3RyYXAodHJhcG5yLCByZWdzKTsK KyAgICAgICAgcHZfaW5qZWN0X3RyYXAodHJhcG5yLCByZWdzKTsKICAgICAgICAgcmV0dXJuOwog ICAgIH0KIApAQCAtMTA2MCw3ICsxMDQ4LDcgQEAgc3RhdGljIGludCBlbXVsYXRlX2ZvcmNlZF9p bnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIGlmICggY3VycmVudC0+ YXJjaC5jcHVpZF9mYXVsdGluZyAmJiAhZ3Vlc3Rfa2VybmVsX21vZGUoY3VycmVudCwgcmVncykg KQogICAgIHsKICAgICAgICAgcmVncy0+cmlwID0gZWlwOwotICAgICAgICBkb19ndWVzdF90cmFw KFRSQVBfZ3BfZmF1bHQsIHJlZ3MpOworICAgICAgICBwdl9pbmplY3RfdHJhcChUUkFQX2dwX2Zh dWx0LCByZWdzKTsKICAgICAgICAgcmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsKICAgICB9CiAK QEAgLTEwOTYsNyArMTA4NCw3IEBAIHZvaWQgZG9faW52YWxpZF9vcChzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKICAgICB7CiAgICAgICAgIGlmICggIWVtdWxhdGVfaW52YWxpZF9yZHRzY3Ao cmVncykgJiYKICAgICAgICAgICAgICAhZW11bGF0ZV9mb3JjZWRfaW52YWxpZF9vcChyZWdzKSAp Ci0gICAgICAgICAgICBkb19ndWVzdF90cmFwKFRSQVBfaW52YWxpZF9vcCwgcmVncyk7CisgICAg ICAgICAgICBwdl9pbmplY3RfdHJhcChUUkFQX2ludmFsaWRfb3AsIHJlZ3MpOwogICAgICAgICBy ZXR1cm47CiAgICAgfQogCkBAIC0xMjI0LDcgKzEyMTIsNyBAQCB2b2lkIGRvX2ludDMoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb19n dWVzdF90cmFwKFRSQVBfaW50MywgcmVncyk7CisgICAgcHZfaW5qZWN0X3RyYXAoVFJBUF9pbnQz LCByZWdzKTsKIH0KIAogc3RhdGljIHZvaWQgcmVzZXJ2ZWRfYml0X3BhZ2VfZmF1bHQoCkBAIC0z MDM4LDcgKzMwMjYsNyBAQCBzdGF0aWMgaW50IGVtdWxhdGVfcHJpdmlsZWdlZF9vcChzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgewogICAgICAgICAgICAgY3Vyci0+YXJjaC5k ZWJ1Z3JlZ1s2XSB8PSBjdHh0LmJwbWF0Y2ggfCBEUl9TVEFUVVNfUkVTRVJWRURfT05FOwogICAg ICAgICAgICAgaWYgKCAhKGN1cnItPmFyY2gucHZfdmNwdS50cmFwX2JvdW5jZS5mbGFncyAmIFRC Rl9FWENFUFRJT04pICkKLSAgICAgICAgICAgICAgICBkb19ndWVzdF90cmFwKFRSQVBfZGVidWcs IHJlZ3MpOworICAgICAgICAgICAgICAgIHB2X2luamVjdF90cmFwKFRSQVBfZGVidWcsIHJlZ3Mp OwogICAgICAgICB9CiAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2UgWDg2RU1V TF9SRVRSWToKQEAgLTMxNTMsMTIgKzMxNDEsMTIgQEAgc3RhdGljIHZvaWQgZW11bGF0ZV9nYXRl X29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgKCgoYXIgPj4gMTMpICYg MykgPCAocmVncy0+Y3MgJiAzKSkgfHwKICAgICAgICAgICgoYXIgJiBfU0VHTUVOVF9UWVBFKSAh PSAweGMwMCkgKQogICAgIHsKLSAgICAgICAgZG9fZ3Vlc3RfdHJhcChUUkFQX2dwX2ZhdWx0LCBy ZWdzKTsKKyAgICAgICAgcHZfaW5qZWN0X3RyYXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CiAgICAg ICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCAhKGFyICYgX1NFR01FTlRfUCkgKQogICAgIHsK LSAgICAgICAgZG9fZ3Vlc3RfdHJhcChUUkFQX25vX3NlZ21lbnQsIHJlZ3MpOworICAgICAgICBw dl9pbmplY3RfdHJhcChUUkFQX25vX3NlZ21lbnQsIHJlZ3MpOwogICAgICAgICByZXR1cm47CiAg ICAgfQogICAgIGRwbCA9IChhciA+PiAxMykgJiAzOwpAQCAtMzE3NCw3ICszMTYyLDcgQEAgc3Rh dGljIHZvaWQgZW11bGF0ZV9nYXRlX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAg ICAgICAgIShhciAmIF9TRUdNRU5UX1ApIHx8CiAgICAgICAgICAhKGFyICYgX1NFR01FTlRfQ09E RSkgKQogICAgIHsKLSAgICAgICAgZG9fZ3Vlc3RfdHJhcChUUkFQX2dwX2ZhdWx0LCByZWdzKTsK KyAgICAgICAgcHZfaW5qZWN0X3RyYXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CiAgICAgICAgIHJl dHVybjsKICAgICB9CiAKQEAgLTMxODcsNyArMzE3NSw3IEBAIHN0YXRpYyB2b2lkIGVtdWxhdGVf Z2F0ZV9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgaWYgKCBQVFJfRVJS KHN0YXRlKSA9PSAtWDg2RU1VTF9FWENFUFRJT04gKQogICAgICAgICAgICAgcHZfaW5qZWN0X2V2 ZW50KCZjdHh0LmN0eHQuZXZlbnQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkb19ndWVz dF90cmFwKFRSQVBfZ3BfZmF1bHQsIHJlZ3MpOworICAgICAgICAgICAgcHZfaW5qZWN0X3RyYXAo VFJBUF9ncF9mYXVsdCwgcmVncyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMyMzcs NyArMzIyNSw3IEBAIHN0YXRpYyB2b2lkIGVtdWxhdGVfZ2F0ZV9vcChzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKICAgICAgICAgIChvcG5kX3NlbCAmIH4zKSAhPSByZWdzLT5lcnJvcl9jb2Rl IHx8CiAgICAgICAgICBkcGwgPCAob3BuZF9zZWwgJiAzKSApCiAgICAgewotICAgICAgICBkb19n dWVzdF90cmFwKFRSQVBfZ3BfZmF1bHQsIHJlZ3MpOworICAgICAgICBwdl9pbmplY3RfdHJhcChU UkFQX2dwX2ZhdWx0LCByZWdzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzI4NSw3 ICszMjczLDcgQEAgc3RhdGljIHZvaWQgZW11bGF0ZV9nYXRlX29wKHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQogICAgICAgICAgICAgLyogSW5uZXIgc3RhY2sga25vd24gb25seSBmb3Iga2Vy bmVsIHJpbmcuICovCiAgICAgICAgICAgICBpZiAoIChzZWwgJiAzKSAhPSBHVUVTVF9LRVJORUxf UlBMKHYtPmRvbWFpbikgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGRvX2d1ZXN0 X3RyYXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CisgICAgICAgICAgICAgICAgcHZfaW5qZWN0X3Ry YXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg ICAgICAgfQogICAgICAgICAgICAgZXNwID0gdi0+YXJjaC5wdl92Y3B1Lmtlcm5lbF9zcDsKQEAg LTMzMDksNyArMzI5Nyw3IEBAIHN0YXRpYyB2b2lkIGVtdWxhdGVfZ2F0ZV9vcChzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgIHN0a3AgPSAodW5zaWduZWQgaW50ICopKHVu c2lnbmVkIGxvbmcpKCh1bnNpZ25lZCBpbnQpYmFzZSArIGVzcCk7CiAgICAgICAgICAgICBpZiAo ICFjb21wYXRfYWNjZXNzX29rKHN0a3AgLSA0IC0gbnBhcm0sICg0ICsgbnBhcm0pICogNCkgKQog ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGRvX2d1ZXN0X3RyYXAoVFJBUF9ncF9mYXVs dCwgcmVncyk7CisgICAgICAgICAgICAgICAgcHZfaW5qZWN0X3RyYXAoVFJBUF9ncF9mYXVsdCwg cmVncyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAg ICAgcHVzaChyZWdzLT5zcyk7CkBAIC0zMzI0LDEyICszMzEyLDEyIEBAIHN0YXRpYyB2b2lkIGVt dWxhdGVfZ2F0ZV9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgICAg ICAgICAgIChhciAmIF9TRUdNRU5UX0NPREUpIHx8CiAgICAgICAgICAgICAgICAgICAgICAhKGFy ICYgX1NFR01FTlRfV1IpIHx8CiAgICAgICAgICAgICAgICAgICAgICAhY2hlY2tfc3RhY2tfbGlt aXQoYXIsIGxpbWl0LCBlc3AgKyBucGFybSAqIDQsIG5wYXJtICogNCkgKQotICAgICAgICAgICAg ICAgICAgICByZXR1cm4gZG9fZ3Vlc3RfdHJhcChUUkFQX2dwX2ZhdWx0LCByZWdzKTsKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHB2X2luamVjdF90cmFwKFRSQVBfZ3BfZmF1bHQsIHJlZ3Mp OwogICAgICAgICAgICAgICAgIHVzdGtwID0gKHVuc2lnbmVkIGludCAqKSh1bnNpZ25lZCBsb25n KQogICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpYmFzZSArIHJlZ3MtPmVz cCArIG5wYXJtICogNCk7CiAgICAgICAgICAgICAgICAgaWYgKCAhY29tcGF0X2FjY2Vzc19vayh1 c3RrcCAtIG5wYXJtLCBucGFybSAqIDQpICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgICAgIGRvX2d1ZXN0X3RyYXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CisgICAgICAgICAg ICAgICAgICAgIHB2X2luamVjdF90cmFwKFRSQVBfZ3BfZmF1bHQsIHJlZ3MpOwogICAgICAgICAg ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGRv CkBAIC0zMzU1LDcgKzMzNDMsNyBAQCBzdGF0aWMgdm9pZCBlbXVsYXRlX2dhdGVfb3Aoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICBpZiAoICFyZWFkX2Rlc2NyaXB0b3Io c3MsIHYsICZiYXNlLCAmbGltaXQsICZhciwgMCkgfHwKICAgICAgICAgICAgICAgICAgKChhciA+ PiAxMykgJiAzKSAhPSAoc2VsICYgMykgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg IGRvX2d1ZXN0X3RyYXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CisgICAgICAgICAgICAgICAgcHZf aW5qZWN0X3RyYXAoVFJBUF9ncF9mYXVsdCwgcmVncyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCAhY2hlY2tfc3RhY2tfbGltaXQoYXIs IGxpbWl0LCBlc3AsIDIgKiA0KSApCkBAIC0zMzY2LDcgKzMzNTQsNyBAQCBzdGF0aWMgdm9pZCBl bXVsYXRlX2dhdGVfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICBz dGtwID0gKHVuc2lnbmVkIGludCAqKSh1bnNpZ25lZCBsb25nKSgodW5zaWduZWQgaW50KWJhc2Ug KyBlc3ApOwogICAgICAgICAgICAgaWYgKCAhY29tcGF0X2FjY2Vzc19vayhzdGtwIC0gMiwgMiAq IDQpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkb19ndWVzdF90cmFwKFRSQVBf Z3BfZmF1bHQsIHJlZ3MpOworICAgICAgICAgICAgICAgIHB2X2luamVjdF90cmFwKFRSQVBfZ3Bf ZmF1bHQsIHJlZ3MpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAg ICAgICAgfQpAQCAtMzQyNyw3ICszNDE1LDcgQEAgdm9pZCBkb19nZW5lcmFsX3Byb3RlY3Rpb24o c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIGlmICggcGVybWl0X3NvZnRpbnQo VElfR0VUX0RQTCh0aSksIHYsIHJlZ3MpICkKICAgICAgICAgewogICAgICAgICAgICAgcmVncy0+ cmlwICs9IDI7Ci0gICAgICAgICAgICBkb19ndWVzdF90cmFwKHZlY3RvciwgcmVncyk7CisgICAg ICAgICAgICBwdl9pbmplY3RfdHJhcCh2ZWN0b3IsIHJlZ3MpOwogICAgICAgICAgICAgcmV0dXJu OwogICAgICAgICB9CiAgICAgfQpAQCAtMzQ0Niw3ICszNDM0LDcgQEAgdm9pZCBkb19nZW5lcmFs X3Byb3RlY3Rpb24oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgfQogCiAgICAgLyog UGFzcyBvbiBHUEYgYXMgaXMuICovCi0gICAgZG9fZ3Vlc3RfdHJhcChUUkFQX2dwX2ZhdWx0LCBy ZWdzKTsKKyAgICBwdl9pbmplY3RfdHJhcChUUkFQX2dwX2ZhdWx0LCByZWdzKTsKICAgICByZXR1 cm47CiAKICBncF9pbl9rZXJuZWw6CkBAIC0zNjY2LDcgKzM2NTQsNyBAQCB2b2lkIGRvX2Rldmlj ZV9ub3RfYXZhaWxhYmxlKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgaWYgKCBj dXJyLT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXSAmIFg4Nl9DUjBfVFMgKQogICAgIHsKLSAgICAg ICAgZG9fZ3Vlc3RfdHJhcChUUkFQX25vX2RldmljZSwgcmVncyk7CisgICAgICAgIHB2X2luamVj dF90cmFwKFRSQVBfbm9fZGV2aWNlLCByZWdzKTsKICAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1 LmN0cmxyZWdbMF0gJj0gflg4Nl9DUjBfVFM7CiAgICAgfQogICAgIGVsc2UKQEAgLTM3MzksNyAr MzcyNyw3IEBAIHZvaWQgZG9fZGVidWcoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAg di0+YXJjaC5kZWJ1Z3JlZ1s2XSA9IHJlYWRfZGVidWdyZWcoNik7CiAKICAgICBsZXJfZW5hYmxl KCk7Ci0gICAgZG9fZ3Vlc3RfdHJhcChUUkFQX2RlYnVnLCByZWdzKTsKKyAgICBwdl9pbmplY3Rf dHJhcChUUkFQX2RlYnVnLCByZWdzKTsKICAgICByZXR1cm47CiAKICBvdXQ6CmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21h aW4uaAppbmRleCA2YWI5ODdmMjMxLi4zNTVhOGFmY2RiIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKQEAg LTY1NSw2ICs2NTUsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIHB2X2luamVjdF9wYWdlX2ZhdWx0 KGludCBlcnJjb2RlLCB1bnNpZ25lZCBsb25nIGNyMikKICAgICBwdl9pbmplY3RfZXZlbnQoJmV2 ZW50KTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHB2X2luamVjdF90cmFwKHVuc2lnbmVkIGlu dCB0cmFwbnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCit7CisgICAgY29uc3Qgc3RydWN0IHg4Nl9ldmVudCBldmVu dCA9IHsKKyAgICAgICAgLnZlY3RvciA9IHRyYXBuciwKKyAgICAgICAgLmVycm9yX2NvZGUgPSAo KCh0cmFwbnIgPCAzMikgJiYgKFRSQVBfSEFWRV9FQyAmICgxdSA8PCB0cmFwbnIpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgPyByZWdzLT5lcnJvcl9jb2RlIDogWDg2X0VWRU5UX05PX0VDKSwK KyAgICB9OworCisgICAgcHZfaW5qZWN0X2V2ZW50KCZldmVudCk7Cit9CisKICNlbmRpZiAvKiBf X0FTTV9ET01BSU5fSF9fICovCiAKIC8qCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK