From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v13 06/23] x86: refactor psr: L3 CAT: implement get hw info flow. Date: Thu, 6 Jul 2017 09:52:59 +0800 Message-ID: <1499305996-19029-7-git-send-email-yi.y.sun@linux.intel.com> References: <1499305996-19029-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSwBq-0000Xo-Gr for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 02:06:46 +0000 In-Reply-To: <1499305996-19029-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, 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 VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGdldCBIVyBpbmZvIGZsb3cgaW5jbHVkaW5nIEwzIENBVCBj YWxsYmFjawpmdW5jdGlvbi4KCkl0IGFsc28gY2hhbmdlcyBzeXNjdGwgaW50ZXJmYWNlIHRvIG1h a2UgaXQgbW9yZSBnZW5lcmFsLgoKV2l0aCB0aGlzIHBhdGNoLCAncHNyLWh3aW5mbycgY2FuIHdv cmsgZm9yIEwzIENBVC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50 ZWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0K djEyOgogICAgLSB1c2UgJ0FTU0VSVF9VTlJFQUNIQUJMRSgpJyB0byByZWNvcmQgYnVnLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTE6CiAgICAtIGNoYW5nZXMgYWJvdXQgJ2Nv c19tYXgnIGFuZCAnY2JtX2xlbicuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIGNoYW5nZSBhYm91dCAnZmVhdF9wcm9wcycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpCiAgICAtIGRlY2xhcmUgJ1BTUl9TT0NLRVRfRkVBVF9VTktOT1dOJyB0byBoYW5kbGUg ZXJyb3IgY2FzZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gdXNlICdB U1NFUlQnIHRvIGNoZWNrIGRhdGEuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIGZpeCBjb21tZW50IG9mICdnZXRfZmVhdF9pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gZml4IGEgYnVnIHdoZW4gY2hlY2tpbmcgJ2ZlYXRfdHlwZScuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnYxMDoKICAgIC0gcmVtb3ZlICdQU1JfU09D S0VUX1VOS05PV04nIGFuZCB1c2UgJ0FTU0VSVF9VTlJFQUNIQUJMRSgpJyB0byBoYW5kbGUKICAg ICAgdGhpcyBjYXNlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGVj ayAnZmVhdF90eXBlJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRq dXN0IG1hY3JvcyBuYW1lcyBhbmQgdmFsdWVzIHRvIG1ha2UgdGhlbSBtb3JlIGFwcHJvcHJpYXRl LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2UgJ2ZlYXRfaW5pdF9k b25lJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91 dCAnY2JtX2xlbicuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5OgogICAgLSBy ZXBsYWNlIGZlYXR1cmUgbGlzdCBoYW5kbGluZyB0byBmZWF0dXJlIGFycmF5IGhhbmRsaW5nLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0gZGVmaW5lICdQU1JfSU5GT19TSVpF Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUpCiAgICAtIGZpeCBjb2Rpbmcgc3R5bGUg aXNzdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IGFuZCBKYW4gQmV1bGljaCkKICAg IC0gdXNlICdBUlJBWV9TSVpFJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUpCiAgICAt IHJlbmFtZSAnbDNfY2F0X2dldF9mZWF0X2luZm8nIHRvICdjYXRfZ2V0X2ZlYXRfaW5mbycgdG8g bWFrZSBpdCBhIGNvbW1vbgogICAgICBmdW5jdGlvbiBmb3IgYm90aCBMMy9MMiBDQVQuCiAgICAg IChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSBtb3ZlIGNvbnN0YW50IHRvIHRoZSByaWdo dCBvZiBjb21wYXJpc29uLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIHJlbW92 ZSB3cm9uZyBjb21tZW50LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBy ZW5hbWUgbWFjcm9zIHVzZWQgYnkgcHNyX2dldF9pbmZvIHRvIG1ha2UgdGhlbSBtZWFuaW5nZnVs LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgYXNzaWdubWVu dCBmb3IgJ1BTUl9TT0NLRVRfVU5LTk9XTicuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpCiAgICAtIHJldGFpbiBibGFuayBsaW5lIGFmdGVyICdjYXNlIFhFTl9TWVNDVExfUFNSX0NB VF9nZXRfbDNfaW5mbycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1v ZGlmeSBwYXRjaCB0aXRsZSB0byBpbmRpY2F0ZSAnTDMgQ0FUJy4KICAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSBjb21tb24gZGF0YSBjaGVjayBpbnRvIGNvbW1vbiBm dW5jdGlvbi4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjY6CiAgICAtIGZpeCBj b2Rpbmcgc3R5bGUgaXNzdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBX aWxrKQogICAgLSBkZWZpbmUgJ1BTUl9TT0NLRVRfVU5LTk9XTicgaW4gJ3Bzcl9mZWF0X3R5cGUn LgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsaykKICAgIC0gY2hhbmdl ICctRU5PVFNPQ0snIHRvICdFUkFOR0UnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVz enV0ZWsgV2lsaykKICAgIC0gbW9kaWZ5IHBvc2l0aW9uIG9mIG1hY3JvcyB0byByZW1vdmUgb2Rk IHNwYWNpbmcgaW4gcHNyLmguCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBX aWxrKQp2NToKICAgIC0gY2hhbmdlICdkYXRbXScgdG8gJ2RhdGFbXScuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vZGlmeSBwYXJhbWV0ZXIgdHlwZSB0byBhdm9pZCBm aXhlZCB3aWR0aCB0eXBlIHdoZW4gdGhlcmUgaXMgbm8gc3VjaAogICAgICBpbnRlbnRpb24uCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHVzZSAnY29uc3QnIHdoZW4gaXQg aXMgcG9zc2libGUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoZWNr IGZlYXR1cmUgdHlwZSBvdXRzaWRlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgbWFjcm9zIG5hbWVzIHRvIGFkZCBwcmVmaXgg J1BTUl8nIGFuZCBjaGFuZ2UgJ0NEUF9GTEFHJyB0bwogICAgICAnUFNSX0ZMQUcnLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2ggdG8g bWFrZSBjb2RlcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkKLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgICAgICAgIHwgODEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9zeXNjdGwu YyAgICAgfCAxOSArKysrKysrKy0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaCB8IDE2ICsr KysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3Iu YwppbmRleCBiZWJjNjc5Li41ZDZiMjliIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMK KysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC02Myw2ICs2Myw3IEBACiBlbnVtIHBzcl9mZWF0 X3R5cGUgewogICAgIEZFQVRfVFlQRV9MM19DQVQsCiAgICAgRkVBVF9UWVBFX05VTSwKKyAgICBG RUFUX1RZUEVfVU5LTk9XTiwKIH07CiAKIC8qCkBAIC0xMDgsNiArMTA5LDEwIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyB7CiAgICAgICogZmVhdHVyZSBkb2VzIHNvbWUgc3BlY2lh bCBvcGVyYXRpb25zLgogICAgICAqLwogICAgIGVudW0gY2JtX3R5cGUgYWx0X3R5cGU7CisKKyAg ICAvKiBnZXRfZmVhdF9pbmZvIGlzIHVzZWQgdG8gcmV0dXJuIGZlYXR1cmUgSFcgaW5mbyB0aHJv dWdoIHN5c2N0bC4gKi8KKyAgICBib29sICgqZ2V0X2ZlYXRfaW5mbykoY29uc3Qgc3RydWN0IGZl YXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0YVtd LCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuKTsKIH0gKmZlYXRfcHJvcHNbRkVBVF9UWVBFX05VTV07 CiAKIC8qCkBAIC0xODQsNiArMTg5LDIyIEBAIHN0YXRpYyB2b2lkIGZyZWVfc29ja2V0X3Jlc291 cmNlcyh1bnNpZ25lZCBpbnQgc29ja2V0KQogICAgIG1lbXNldChpbmZvLT5jb3NfcmVmLCAwLCBN QVhfQ09TX1JFR19DTlQgKiBzaXplb2YodW5zaWduZWQgaW50KSk7CiB9CiAKK3N0YXRpYyBlbnVt IHBzcl9mZWF0X3R5cGUgcHNyX2NibV90eXBlX3RvX2ZlYXRfdHlwZShlbnVtIGNibV90eXBlIHR5 cGUpCit7CisgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXRfdHlwZSA9IEZFQVRfVFlQRV9VTktO T1dOOworCisgICAgc3dpdGNoICggdHlwZSApCisgICAgeworICAgIGNhc2UgUFNSX0NCTV9UWVBF X0wzOgorICAgICAgICBmZWF0X3R5cGUgPSBGRUFUX1RZUEVfTDNfQ0FUOworICAgICAgICBicmVh azsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICB9CisK KyAgICByZXR1cm4gZmVhdF90eXBlOworfQorCiAvKiBDQVQgY29tbW9uIGZ1bmN0aW9ucyBpbXBs ZW1lbnRhdGlvbi4gKi8KIHN0YXRpYyBpbnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3Qg Y3B1aWRfbGVhZiAqcmVncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVh dF9ub2RlICpmZWF0LApAQCAtMjI2LDExICsyNDcsMjUgQEAgc3RhdGljIGludCBjYXRfaW5pdF9m ZWF0dXJlKGNvbnN0IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAogICAgIHJldHVybiAwOwogfQog CitzdGF0aWMgYm9vbCBjYXRfZ2V0X2ZlYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpm ZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0YVtdLCB1bnNp Z25lZCBpbnQgYXJyYXlfbGVuKQoreworICAgIGlmICggYXJyYXlfbGVuICE9IFBTUl9JTkZPX0FS UkFZX1NJWkUgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkYXRhW1BTUl9JTkZPX0lE WF9DT1NfTUFYXSA9IGZlYXQtPmNvc19tYXg7CisgICAgZGF0YVtQU1JfSU5GT19JRFhfQ0FUX0NC TV9MRU5dID0gZmVhdC0+Y2JtX2xlbjsKKyAgICBkYXRhW1BTUl9JTkZPX0lEWF9DQVRfRkxBR10g PSAwOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIC8qIEwzIENBVCBwcm9wcyAqLwogc3RhdGlj IGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIGwzX2NhdF9wcm9wcyA9IHsKICAgICAuY29zX251bSA9 IDEsCiAgICAgLnR5cGVbMF0gPSBQU1JfQ0JNX1RZUEVfTDMsCiAgICAgLmFsdF90eXBlID0gUFNS X0NCTV9UWVBFX1VOS05PV04sCisgICAgLmdldF9mZWF0X2luZm8gPSBjYXRfZ2V0X2ZlYXRfaW5m bywKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9wc3JfYm9vbChjaGFyICpzLCBjaGFy ICp2YWx1ZSwgY2hhciAqZmVhdHVyZSwKQEAgLTQ0MywxMCArNDc4LDUwIEBAIHZvaWQgcHNyX2N0 eHRfc3dpdGNoX3RvKHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogfQogCi1pbnQgcHNyX2dldF9j YXRfbDNfaW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0LCB1aW50MzJfdCAqY2JtX2xlbiwKLSAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqZmxhZ3MpCitz dGF0aWMgc3RydWN0IHBzcl9zb2NrZXRfaW5mbyAqZ2V0X3NvY2tldF9pbmZvKHVuc2lnbmVkIGlu dCBzb2NrZXQpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCAhc29ja2V0X2luZm8gKQorICAg ICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKKworICAgIGlmICggc29ja2V0ID49IG5yX3Nv Y2tldHMgKQorICAgICAgICByZXR1cm4gRVJSX1BUUigtRVJBTkdFKTsKKworICAgIGlmICggIXNv Y2tldF9pbmZvW3NvY2tldF0uZmVhdF9pbml0ICkKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVO T0VOVCk7CisKKyAgICByZXR1cm4gc29ja2V0X2luZm8gKyBzb2NrZXQ7Cit9CisKK2ludCBwc3Jf Z2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAorICAgICAg ICAgICAgICAgICB1aW50MzJfdCBkYXRhW10sIHVuc2lnbmVkIGludCBhcnJheV9sZW4pCit7Cisg ICAgY29uc3Qgc3RydWN0IHBzcl9zb2NrZXRfaW5mbyAqaW5mbyA9IGdldF9zb2NrZXRfaW5mbyhz b2NrZXQpOworICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQ7CisgICAgZW51bSBwc3Jf ZmVhdF90eXBlIGZlYXRfdHlwZTsKKworICAgIEFTU0VSVChkYXRhKTsKKworICAgIGlmICggSVNf RVJSKGluZm8pICkKKyAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5mbyk7CisKKyAgICBmZWF0X3R5 cGUgPSBwc3JfY2JtX3R5cGVfdG9fZmVhdF90eXBlKHR5cGUpOworICAgIGlmICggZmVhdF90eXBl ID49IEFSUkFZX1NJWkUoaW5mby0+ZmVhdHVyZXMpICkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7 CisKKyAgICBmZWF0ID0gaW5mby0+ZmVhdHVyZXNbZmVhdF90eXBlXTsKKyAgICBpZiAoICFmZWF0 ICkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICBpZiAoICFmZWF0X3Byb3BzW2ZlYXRf dHlwZV0gKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIHJl dHVybiAtRU5PRU5UOworICAgIH0KKworICAgIGlmICggZmVhdF9wcm9wc1tmZWF0X3R5cGVdLT5n ZXRfZmVhdF9pbmZvKGZlYXQsIGRhdGEsIGFycmF5X2xlbikgKQorICAgICAgICByZXR1cm4gMDsK KworICAgIHJldHVybiAtRUlOVkFMOwogfQogCiBpbnQgcHNyX2dldF9sM19jYm0oc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9z eXNjdGwuYyBiL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYwppbmRleCAyZjcwNTZlLi5jMjMyNzBkIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3lzY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L3N5c2N0 bC5jCkBAIC0xNzUsMTQgKzE3NSwyNSBAQCBsb25nIGFyY2hfZG9fc3lzY3RsKAogICAgICAgICBz d2l0Y2ggKCBzeXNjdGwtPnUucHNyX2NhdF9vcC5jbWQgKQogICAgICAgICB7CiAgICAgICAgIGNh c2UgWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19pbmZvOgotICAgICAgICAgICAgcmV0ID0gcHNy X2dldF9jYXRfbDNfaW5mbyhzeXNjdGwtPnUucHNyX2NhdF9vcC50YXJnZXQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2lu Zm8uY2JtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN5c2N0 bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5jb3NfbWF4LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmZsYWdzKTsK KyAgICAgICAgeworICAgICAgICAgICAgdWludDMyX3QgZGF0YVtQU1JfSU5GT19BUlJBWV9TSVpF XTsKKworICAgICAgICAgICAgcmV0ID0gcHNyX2dldF9pbmZvKHN5c2N0bC0+dS5wc3JfY2F0X29w LnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDMs IGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpOworICAgICAgICAgICAgaWYgKCByZXQgKQorICAgICAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51Lmwz X2luZm8uY29zX21heCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFbUFNSX0lORk9fSURYX0NPU19NQVhdOworICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRf b3AudS5sM19pbmZvLmNibV9sZW4gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DQVRfQ0JNX0xFTl07CisgICAgICAgICAgICBzeXNjdGwt PnUucHNyX2NhdF9vcC51LmwzX2luZm8uZmxhZ3MgPQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DQVRfRkxBR107CiAKICAgICAgICAgICAg IGlmICggIXJldCAmJiBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwgdS5w c3JfY2F0X29wKSApCiAgICAgICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKICAgICAgICAgICAg IGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldCA9 IC1FT1BOT1RTVVBQOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcHNyLmgKaW5kZXggYTE3ZTMxYS4uOGQxNTMyOCAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3Bz ci5oCkBAIC0xOSwyMCArMTksMjYgQEAKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KIAogLyogQ0FU IGNwdWlkIGxldmVsICovCi0jZGVmaW5lIFBTUl9DUFVJRF9MRVZFTF9DQVQgICAweDEwCisjZGVm aW5lIFBTUl9DUFVJRF9MRVZFTF9DQVQgICAgICAgICAgICAgMHgxMAogCiAvKiBSZXNvdXJjZSBU eXBlIEVudW1lcmF0aW9uICovCiAjZGVmaW5lIFBTUl9SRVNPVVJDRV9UWVBFX0wzICAgICAgICAg ICAgMHgyCiAKIC8qIEwzIE1vbml0b3JpbmcgRmVhdHVyZXMgKi8KLSNkZWZpbmUgUFNSX0NNVF9M M19PQ0NVUEFOQ1kgICAgICAgICAgIDB4MQorI2RlZmluZSBQU1JfQ01UX0wzX09DQ1VQQU5DWSAg ICAgICAgICAgIDB4MQogCiAvKiBDRFAgQ2FwYWJpbGl0eSAqLwotI2RlZmluZSBQU1JfQ0FUX0NE UF9DQVBBQklMSVRZICAgICAgICgxdSA8PCAyKQorI2RlZmluZSBQU1JfQ0FUX0NEUF9DQVBBQklM SVRZICAgICAgICAgICgxdSA8PCAyKQogCiAvKiBMMyBDRFAgRW5hYmxlIGJpdCovCiAjZGVmaW5l IFBTUl9MM19RT1NfQ0RQX0VOQUJMRV9CSVQgICAgICAgMHgwCiAKKy8qIFVzZWQgYnkgcHNyX2dl dF9pbmZvKCkgKi8KKyNkZWZpbmUgUFNSX0lORk9fSURYX0NPU19NQVggICAgICAgICAgICAwCisj ZGVmaW5lIFBTUl9JTkZPX0lEWF9DQVRfQ0JNX0xFTiAgICAgICAgMQorI2RlZmluZSBQU1JfSU5G T19JRFhfQ0FUX0ZMQUcgICAgICAgICAgIDIKKyNkZWZpbmUgUFNSX0lORk9fQVJSQVlfU0laRSAg ICAgICAgICAgICAzCisKIHN0cnVjdCBwc3JfY210X2wzIHsKICAgICB1bnNpZ25lZCBpbnQgZmVh dHVyZXM7CiAgICAgdW5zaWduZWQgaW50IHVwc2NhbGluZ19mYWN0b3I7CkBAIC02NCw4ICs3MCw4 IEBAIGludCBwc3JfYWxsb2Nfcm1pZChzdHJ1Y3QgZG9tYWluICpkKTsKIHZvaWQgcHNyX2ZyZWVf cm1pZChzdHJ1Y3QgZG9tYWluICpkKTsKIHZvaWQgcHNyX2N0eHRfc3dpdGNoX3RvKHN0cnVjdCBk b21haW4gKmQpOwogCi1pbnQgcHNyX2dldF9jYXRfbDNfaW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0 LCB1aW50MzJfdCAqY2JtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpj b3NfbWF4LCB1aW50MzJfdCAqZmxhZ3MpOworaW50IHBzcl9nZXRfaW5mbyh1bnNpZ25lZCBpbnQg c29ja2V0LCBlbnVtIGNibV90eXBlIHR5cGUsCisgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRh dGFbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbik7CiBpbnQgcHNyX2dldF9sM19jYm0oc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKICAgICAgICAgICAgICAgICAgICB1aW50 NjRfdCAqY2JtLCBlbnVtIGNibV90eXBlIHR5cGUpOwogaW50IHBzcl9zZXRfbDNfY2JtKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCi0tIAoxLjkuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=