From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 08/25] x86: refactor psr: L3 CAT: implement get value flow. Date: Sat, 1 Apr 2017 21:53:39 +0800 Message-ID: <1491054836-30488-9-git-send-email-yi.y.sun@linux.intel.com> References: <1491054836-30488-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cuJTZ-0005d6-PI for xen-devel@lists.xenproject.org; Sat, 01 Apr 2017 13:53:57 +0000 In-Reply-To: <1491054836-30488-1-git-send-email-yi.y.sun@linux.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.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhlcmUgaXMgYW4gaW50ZXJmYWNlIGluIHVzZXIgc3BhY2UgdG8gc2hvdyBmZWF0dXJlIHZhbHVl IG9mCmRvbWFpbnMuCgpUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0IHZhbHVlIGZsb3cgaW4gaHlw ZXJ2aXNvciBpbmNsdWRpbmcKTDMgQ0FUIGNhbGxiYWNrIGZ1bmN0aW9uLgoKSXQgYWxzbyBjaGFu Z2VzIGRvbWN0bCBpbnRlcmZhY2UgdG8gbWFrZSBpdCBtb3JlIGdlbmVyYWwuCgpXaXRoIHRoaXMg cGF0Y2gsICdwc3ItY2F0LXNob3cnIGNhbiB3b3JrIGZvciBMMyBDQVQgYnV0IG5vdCBmb3IKTDMg Y29kZS9kYXRhIHdoaWNoIGlzIGltcGxlbWVudGVkIGluIHBhdGNoICJ4ODY6IHJlZmFjdG9yIHBz cjoKaW1wbGVtZW50IGdldCB2YWx1ZSBmbG93IGZvciBDRFAuIi4KClNpZ25lZC1vZmYtYnk6IFlp IFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KdjEwOgogICAgLSB1c2UgYW4gaW50 ZXJtZWRpYXRlIHZhcmlhYmxlIHRvIGdldCB2YWx1ZSBhbmQgYXZvaWQgY2FzdCBpbiBkb21jdGwu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSAndHlwZScgaW4g J2dldF92YWwnIHBhcmFtZXRlcnMgYW5kIHdpbGwgYWRkIGl0IGJhY2sgd2hlbgogICAgICBpbXBs ZW1lbnRpbmcgQ0RQLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1v dmUgdW5uZWNlc3NhcnkgdmFyaWFibGUgYW5kIHJldHVybiBlcnJvciBhYm91dCAnaW5mbycgaW4K ICAgICAgJ3Bzcl9nZXRfZmVhdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIHVzZSAnQVNTRVJUJyB0byBjaGVjayBpbnB1dCBwYXJhbWV0ZXIgaW4gJ3Bzcl9nZXRfdmFs Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAn ZmVhdF9wcm9wcycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5OgogICAgLSBh ZGQgY29tbWl0IG1lc3NhZ2UgdG8gZXhwbGFpbiB0aGVyZSBpcyBhbiB1c2VyIHNwYWNlIGludGVy ZmFjZS4KICAgIC0gcmVuYW1lICdsM19jYXRfZ2V0X3ZhbCcgdG8gJ2NhdF9nZXRfdmFsJyB0byBj b3ZlciBhbGwgTDMvTDIgQ0FUIGZlYXR1cmVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBh dSkKICAgIC0gcmVwbGFjZSBmZWF0dXJlIGxpc3QgaGFuZGxpbmcgdG8gZmVhdHVyZSBhcnJheSBo YW5kbGluZy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUpCiAgICAtIGNoYW5nZSBwYXJh bWV0ZXIgb2YgJ3Bzcl9nZXQnLiBVc2UgJ3Bzcl9jb3NfaWRzJyBkaXJlY3RseSB0byByZXBsYWNl CiAgICAgIGRvbWFpbi4gQWxzbyBkZWNsYXJlIGl0IHRvICdjb25zdCcuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZSBjb2RlIGZsb3cgdG8gcmVtb3ZlICdwc3Jf Z2V0JyBidXQgYWRkICdwc3JfZ2V0X2ZlYXQnIHRvIG1ha2UgY29kZXMKICAgICAgbW9yZSByZWFz b25hYmxlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgcGF0 Y2ggdGl0bGUgdG8gaW5kaWNhdGUgJ0wzIENBVCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpCiAgICAtIG1vdmUgY29zIGNoZWNrIGludG8gY29tbW9uIGZ1bmN0aW9uIGJlY2F1c2Ug dGhpcyBjaGVjayBpcyByZXF1aXJlZCBieSBhbGwKICAgICAgZmVhdHVyZXMuCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGZpeCBjb2Rpbmcgc3R5bGUgaXNzdWUuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZXMgYWJvdXQgJ3VpbnQ2NF90 JyB0byAndWludDMyX3QnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2NzoKICAg IC0gcmVuYW1lICdfX3Bzcl9nZXQnIHRvICdwc3JfZ2V0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBX ZWkgTGl1KQp2NjoKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlIHRvIG1ha2UgaXQgY2xlYXJl ci4KICAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCiAgICAtIHJlbW92 ZSBvbmUgZXh0cmEgc3BhY2UgaW4gY29kZS4KICAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnpl c3p1dGVrIFdpbGspCiAgICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBjb21tZW50LgogICAgICAoc3Vn Z2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsaykKICAgIC0gd3JpdGUgYSBoZWxwZXIgZnVu Y3Rpb24gdG8gbW92ZSBnZXQgaW5mbyBhbmQgZ2V0IHZhbCBmdW5jdGlvbnMgaW50bwogICAgICBp dC4gQmVjYXVzZSBtb3N0IGNvZGVzIG9mICdnZXRfaW5mbycgYW5kICdnZXRfdmFsJyBhcmUgc2Ft ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCnY1OgogICAgLSBy ZW5hbWUgJ2RhdFtdJyB0byAnZGF0YVtdJwogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQogICAgLSBtb2RpZnkgdmFyaWFibGVzIG5hbWVzIHRvIG1ha2UgdGhlbSBiZXR0ZXIsIGUuZy4g J2ZlYXRfdG1wJyB0byAnZmVhdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIGNoZWNrIGlmIGZlYXR1cmUgdHlwZSBtYXRjaCBpbiBjYWxsZXIgb2YgZmVhdHVyZSBjYWxs YmFjayBmdW5jdGlvbi4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjQ6CiAgICAt IGNyZWF0ZSB0aGlzIHBhdGNoIHRvIG1ha2UgY29kZXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCi0tLQogeGVuL2FyY2gveDg2L2RvbWN0bC5j ICAgICB8IDMwICsrKysrKysrKysrKysrLS0tLS0tLQogeGVuL2FyY2gveDg2L3Bzci5jICAgICAg ICB8IDY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB4 ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5oIHwgIDQgKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDgwIGlu c2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9k b21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCAwMmI0OGU4Li5kYzIxM2E3IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0 bC5jCkBAIC0xNDU1LDI1ICsxNDU1LDM3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAg ICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNf Q0JNOgotICAgICAgICAgICAgcmV0ID0gcHNyX2dldF9sM19jYm0oZCwgZG9tY3RsLT51LnBzcl9j YXRfb3AudGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+ dS5wc3JfY2F0X29wLmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU1Jf Q0JNX1RZUEVfTDMpOworICAgICAgICB7CisgICAgICAgICAgICB1aW50MzJfdCB2YWw7CisKKyAg ICAgICAgICAgIHJldCA9IHBzcl9nZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdl dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2YWwsIFBTUl9DQk1fVFlQRV9MMyk7 CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhID0gdmFsOwogICAgICAgICAg ICAgY29weWJhY2sgPSAxOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAg ICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfQ09ERToKLSAgICAgICAgICAgIHJl dCA9IHBzcl9nZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBFX0wzX0NPREUpOwor ICAgICAgICB7CisgICAgICAgICAgICB1aW50MzJfdCB2YWw7CisKKyAgICAgICAgICAgIHJldCA9 IHBzcl9nZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZ2YWwsIFBTUl9DQk1fVFlQRV9MM19DT0RFKTsKKyAgICAgICAg ICAgIGRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEgPSB2YWw7CiAgICAgICAgICAgICBjb3B5YmFj ayA9IDE7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgWEVO X0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19EQVRBOgotICAgICAgICAgICAgcmV0ID0gcHNyX2dl dF9sM19jYm0oZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDNfREFUQSk7CisgICAgICAgIHsK KyAgICAgICAgICAgIHVpbnQzMl90IHZhbDsKKworICAgICAgICAgICAgcmV0ID0gcHNyX2dldF92 YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnZhbCwgUFNSX0NCTV9UWVBFX0wzX0RBVEEpOworICAgICAgICAgICAgZG9tY3Rs LT51LnBzcl9jYXRfb3AuZGF0YSA9IHZhbDsKICAgICAgICAgICAgIGNvcHliYWNrID0gMTsKICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg ICAgIHJldCA9IC1FT1BOT1RTVVBQOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIv eGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDM2YWRlNDguLjI1ZmNkMjEgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTk3LDYgKzk3LDEw IEBAIHN0cnVjdCBmZWF0X25vZGUgewogICAgICAgICAvKiBnZXRfZmVhdF9pbmZvIGlzIHVzZWQg dG8gZ2V0IGZlYXR1cmUgSFcgaW5mby4gKi8KICAgICAgICAgYm9vbCAoKmdldF9mZWF0X2luZm8p KGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBkYXRhW10sIHVuc2lnbmVkIGludCBhcnJheV9sZW4pOworCisgICAgICAg IC8qIGdldF92YWwgaXMgdXNlZCB0byBnZXQgZmVhdHVyZSBDT1MgcmVnaXN0ZXIgdmFsdWUuICov CisgICAgICAgIHZvaWQgKCpnZXRfdmFsKShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCB1 bnNpZ25lZCBpbnQgY29zLAorICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbCk7 CiAgICAgfSAqcHJvcHM7CiAKICAgICB1aW50MzJfdCBjb3NfcmVnX3ZhbFtNQVhfQ09TX1JFR19D TlRdOwpAQCAtMjY1LDEwICsyNjksMTcgQEAgc3RhdGljIGJvb2wgY2F0X2dldF9mZWF0X2luZm8o Y29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3Rh dGljIHZvaWQgY2F0X2dldF92YWwoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwgdW5zaWdu ZWQgaW50IGNvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp2YWwpCit7Cisg ICAgKnZhbCA9IGZlYXQtPmNvc19yZWdfdmFsW2Nvc107Cit9CisKIC8qIEwzIENBVCBvcHMgKi8K IHN0YXRpYyBzdHJ1Y3QgZmVhdF9wcm9wcyBsM19jYXRfcHJvcHMgPSB7CiAgICAgLmNvc19udW0g PSAxLAogICAgIC5nZXRfZmVhdF9pbmZvID0gY2F0X2dldF9mZWF0X2luZm8sCisgICAgLmdldF92 YWwgPSBjYXRfZ2V0X3ZhbCwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9wc3JfYm9v bChjaGFyICpzLCBjaGFyICp2YWx1ZSwgY2hhciAqZmVhdHVyZSwKQEAgLTQ5NCwyNCArNTA1LDM0 IEBAIHN0YXRpYyBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICpnZXRfc29ja2V0X2luZm8odW5zaWdu ZWQgaW50IHNvY2tldCkKICAgICByZXR1cm4gc29ja2V0X2luZm8gKyBzb2NrZXQ7CiB9CiAKLWlu dCBwc3JfZ2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAot ICAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhW10sIHVuc2lnbmVkIGludCBhcnJheV9sZW4p CitzdGF0aWMgc3RydWN0IGZlYXRfbm9kZSAqIHBzcl9nZXRfZmVhdCh1bnNpZ25lZCBpbnQgc29j a2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlw ZSB0eXBlKQogewogICAgIGNvbnN0IHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmluZm8gPSBnZXRf c29ja2V0X2luZm8oc29ja2V0KTsKLSAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0Owog ICAgIGVudW0gcHNyX2ZlYXRfdHlwZSBmZWF0X3R5cGU7CiAKICAgICBpZiAoIElTX0VSUihpbmZv KSApCi0gICAgICAgIHJldHVybiBQVFJfRVJSKGluZm8pOworICAgICAgICByZXR1cm4gRVJSX1BU UihQVFJfRVJSKGluZm8pKTsKKworICAgIGZlYXRfdHlwZSA9IHBzcl9jYm1fdHlwZV90b19mZWF0 X3R5cGUodHlwZSk7CisgICAgaWYgKCBmZWF0X3R5cGUgPiBBUlJBWV9TSVpFKGluZm8tPmZlYXR1 cmVzKSApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIGluZm8tPmZlYXR1cmVz W2ZlYXRfdHlwZV07Cit9CisKK2ludCBwc3JfZ2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCwg ZW51bSBjYm1fdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhW10sIHVu c2lnbmVkIGludCBhcnJheV9sZW4pCit7CisgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVh dDsKIAogICAgIGlmICggIWRhdGEgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIGZl YXRfdHlwZSA9IHBzcl9jYm1fdHlwZV90b19mZWF0X3R5cGUodHlwZSk7Ci0gICAgaWYgKCBmZWF0 X3R5cGUgPiBBUlJBWV9TSVpFKGluZm8tPmZlYXR1cmVzKSApCi0gICAgICAgIHJldHVybiAtRU5P RU5UOworICAgIGZlYXQgPSBwc3JfZ2V0X2ZlYXQoc29ja2V0LCB0eXBlKTsKKyAgICBpZiAoIElT X0VSUihmZWF0KSApCisgICAgICAgIHJldHVybiBQVFJfRVJSKGZlYXQpOwogCi0gICAgZmVhdCA9 IGluZm8tPmZlYXR1cmVzW2ZlYXRfdHlwZV07CiAgICAgaWYgKCAhZmVhdCApCiAgICAgICAgIHJl dHVybiAtRU5PRU5UOwogCkBAIC01MjEsOSArNTQyLDM1IEBAIGludCBwc3JfZ2V0X2luZm8odW5z aWduZWQgaW50IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAogICAgIHJldHVybiAtRUlOVkFM OwogfQogCi1pbnQgcHNyX2dldF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50 IHNvY2tldCwKLSAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqY2JtLCBlbnVtIGNibV90eXBl IHR5cGUpCitpbnQgcHNyX2dldF92YWwoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNv Y2tldCwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsLCBlbnVtIGNibV90eXBlIHR5cGUp CiB7CisgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdDsKKyAgICB1bnNpZ25lZCBpbnQg Y29zOworCisgICAgQVNTRVJUKGQgJiYgdmFsKTsKKworICAgIGZlYXQgPSBwc3JfZ2V0X2ZlYXQo c29ja2V0LCB0eXBlKTsKKyAgICBpZiAoIElTX0VSUihmZWF0KSApCisgICAgICAgIHJldHVybiBQ VFJfRVJSKGZlYXQpOworCisgICAgaWYgKCAhZmVhdCApCisgICAgICAgIHJldHVybiAtRU5PRU5U OworCisgICAgY29zID0gZC0+YXJjaC5wc3JfY29zX2lkc1tzb2NrZXRdOworICAgIC8qCisgICAg ICogSWYgaW5wdXQgY29zIGV4Y2VlZHMgY3VycmVudCBmZWF0dXJlJ3MgY29zX21heCwgd2Ugc2hv dWxkIHJldHVybiBpdHMKKyAgICAgKiBkZWZhdWx0IHZhbHVlIHdoaWNoIGlzIHN0b3JlZCBpbiBj b3MgMC4gVGhpcyBjYXNlIG9ubHkgaGFwcGVucworICAgICAqIHdoZW4gbW9yZSB0aGFuIHR3byBm ZWF0dXJlcyBlbmFibGVkIGNvbmN1cnJlbnRseSBhbmQgYXQgbGVhc3Qgb25lCisgICAgICogZmVh dHVyZXMncyBjb3NfbWF4IGlzIGJpZ2dlciB0aGFuIG90aGVycy4gV2hlbiBhIGRvbWFpbidzIHdv cmtpbmcgY29zCisgICAgICogaWQgaXMgYmlnZ2VyIHRoYW4gc29tZSBmZWF0dXJlcycgY29zX21h eCwgSFcgYXV0b21hdGljYWxseSB3b3JrcyBhcworICAgICAqIGRlZmF1bHQgdmFsdWUgZm9yIHRo b3NlIGZlYXR1cmVzIHdoaWNoIGNvc19tYXggaXMgc21hbGxlci4KKyAgICAgKi8KKyAgICBpZiAo IGNvcyA+IGZlYXQtPnByb3BzLT5jb3NfbWF4ICkKKyAgICAgICAgY29zID0gMDsKKworICAgIGZl YXQtPnByb3BzLT5nZXRfdmFsKGZlYXQsIGNvcywgdmFsKTsKKwogICAgIHJldHVybiAwOwogfQog CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9wc3IuaAppbmRleCBhZjNhNDY1Li43YzZkMzhhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L3Bzci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmgKQEAgLTcxLDgg KzcxLDggQEAgdm9pZCBwc3JfY3R4dF9zd2l0Y2hfdG8oc3RydWN0IGRvbWFpbiAqZCk7CiAKIGlu dCBwc3JfZ2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAog ICAgICAgICAgICAgICAgICB1aW50MzJfdCBkYXRhW10sIHVuc2lnbmVkIGludCBhcnJheV9sZW4p OwotaW50IHBzcl9nZXRfbDNfY2JtKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2Nr ZXQsCi0gICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmNibSwgZW51bSBjYm1fdHlwZSB0eXBl KTsKK2ludCBwc3JfZ2V0X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0 LAorICAgICAgICAgICAgICAgIHVpbnQzMl90ICp2YWwsIGVudW0gY2JtX3R5cGUgdHlwZSk7CiBp bnQgcHNyX3NldF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwK ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjYm0sIGVudW0gY2JtX3R5cGUgdHlwZSk7CiAK LS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==