From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v12 15/23] x86: refactor psr: CDP: implement set value callback function. Date: Wed, 14 Jun 2017 09:12:48 +0800 Message-ID: <1497402776-22348-16-git-send-email-yi.y.sun@linux.intel.com> References: <1497402776-22348-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dKx4K-0007lT-D3 for xen-devel@lists.xenproject.org; Wed, 14 Jun 2017 01:26:00 +0000 In-Reply-To: <1497402776-22348-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 VGhpcyBwYXRjaCBpbXBsZW1lbnRzIEwzIENEUCBzZXQgdmFsdWUgcmVsYXRlZCBjYWxsYmFjayBm dW5jdGlvbi4KCldpdGggdGhpcyBwYXRjaCwgJ3Bzci1jYXQtY2JtLXNldCcgY29tbWFuZCBjYW4g d29yayBmb3IgTDMgQ0RQLgoKU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5p bnRlbC5jb20+Ci0tLQp2MTI6CiAgICAtIGFkZCBjb21tZW50IHRvIGV4cGxhaW4gaG93IHRvIGRl YWwgd2l0aCB0aGUgY2FzZSB0aGF0IHVzZXIgc2V0IG5ldyB2YWwKICAgICAgZm9yIGJvdGggREFU QSBhbmQgQ09ERSBhdCBzYW1lIHRpbWUuCiAgICAtIGFkZCBwYXJhbWV0ZXIgZm9yICdwc3JfY2Jt X3R5cGVfdG9fZmVhdF90eXBlJyB0byByZXR1cm4gdGhlIGZlYXR1cmUgdHlwZQogICAgICBhY2Nv cmRpbmcgdG8gaXQuCiAgICAtIHVzZSB0aGUgZmVhdHVyZSB0eXBlIHJldHVybmVkIGJ5ICdwc3Jf Y2JtX3R5cGVfdG9fZmVhdF90eXBlJyB0byBjaGVjawogICAgICBpZiB3ZSBuZWVkIGluc2VydCB0 aGUgbmV3IHZhbHVlIGludG8gYWxsIGl0ZW1zIG9mIHRoZSBmZWF0dXJlIHZhbHVlIGFycmF5Lgog ICAgLSB1c2UgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBmb3Igd3Jtc3JsLgogICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKQp2MTE6CiAgICAtIG1vdmUgJ2ZlYXQtPmNvc19yZWdfdmFsJyBh c3NpZ25tZW50IGFuZCB2YWx1ZSBjb21wYXJpc29uIGluICd3cml0ZV9tc3InCiAgICAgIGNhbGxi YWNrIGZ1bmN0aW9uIG91dCBhcyBnZW5lcmljIGNvZGVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0IHNldHRpbmcgYm90aCBDRFAgREFUQSBhbmQg Q09ERSBhdCBzYW1lIHRpbWUuCiAgICAtIG1vdmUgJ3R5cGVbXScgZGVjbGFyYXRpb24gaW50byBw cmV2aW91cyBwYXRjaCB3aGljaCBpbnRyb2R1Y2VkICdjb3NfbnVtJy4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAndHlwZVtdJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSAnY29tcGFyZV92YWwnIHRvIHByZXZp b3VzIHBhdGNoLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2Vz IGFib3V0ICdnZXRfdmFsJyB3aGljaCBoYXMgYmVlbiByZXBsYWNlIGJ5IGdlbmVyaWMgY29kZXMu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSAncmVzdG9yZV9k ZWZhdWx0X3ZhbCcgd2hpY2ggaXMgdW5uZWNlc3Nhcnkgbm93LgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQp2MTA6CiAgICAtIHJlbW92ZSAnbDNfY2RwX2dldF9vbGRfdmFsJyBhbmQg dXNlICdsM19jZHBfZ2V0X3ZhbCcgdG8gcmVwbGFjZSBpdC4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlICdsM19jZHBfc2V0X25ld192YWwnLgogICAgLSBtb2Rp ZnkgJ2luc2VydF92YWxfdG9fYXJyYXknIGZsb3cgdG8gaGFuZGxlIG11bHRpcGxlIENPU3MgY2Fz ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlICdsM19jZHBf Y29tcGFyZV92YWwnIGFuZCBpbXBsZW1lbnQgYSBnZW5lcmljIGZ1bmN0aW9uCiAgICAgICdjb21h cHJlX3ZhbCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSAn bDNfY2RwX2ZpdHNfY29zX21heCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIGludHJvZHVjZSBtYWNybyAnUFNSX01BWF9DT1NfTlVNJy4KICAgIC0gaW50cm9kdWNlIGEg bmV3IG1lbWJlciBpbiAnZmVhdF9wcm9wcycsICd0eXBlW1BTUl9NQVhfQ09TX05VTV0nIHRvIHJl Y29yZAogICAgICBhbGwgJ2NibV90eXBlJyB0aGUgZmVhdHVyZSBoYXMuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vZGlmeSAnZ2F0aGVyX3ZhbF9hcnJheScgZmxvdyB0 byBoYW5kbGUgbXVsdGlwbGUgQ09TcyBjYXNlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSBtb2RpZnkgJ2ZpbmRfY29zJyBmbG93IGFuZCBpbXBsZW1lbnQgJ2NvbXBhcmVf dmFsJyB0byBoYW5kbGUgbXVsdGlwbGUKICAgICAgQ09TcyBjYXNlLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgJ2ZpdHNfY29zX21heCcgZmxvdyB0byBoYW5k bGUgbXVsdGlwbGUgQ09TcyBjYXNlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQog ICAgLSBjaGFuZ2VzIGFib3V0ICdwcm9wcycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpCiAgICAtIHJlbW92ZSBjYXN0IGluICdsM19jZHBfd3JpdGVfbXNyJy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gaW1wbGVtZW50ICdjb21wYXJlX3ZhbCcgZnVuY3Rp b24gdG8gY29tcGFyZSBpZiBmZWF0dXJlIHZhbHVlcyBhcmUgd2hhdAogICAgICB3ZSBleHBlY3Qg aW4gZmluZGluZyBmbG93LgogICAgLSBpbXBsZW1lbnQgJ3Jlc3RvcmVfZGVmYXVsdF92YWwnIGZ1 bmN0aW9uIHRvIHJlc3RvcmUgZmVhdHVyZSdzIENPUyB2YWx1ZXMKICAgICAgdG8gZGVmYXVsdCBp ZiB0aGUgZmVhdHVyZSBoYXMgbXVsdGlwbGUgQ09Tcy4gSXQgaXMgY2FsbGVkIHdoZW4gdGhlIENP UwogICAgICBJRCBpcyByZWR1Y2VkIHRvIDAuCnY5OgogICAgLSBhZGQgY29tbWVudCB0byBleHBs YWluIHdoeSBDRFAgdXNlcyAyIENPU3MuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKICAg IC0gdXNlICdjYXRfZGVmYXVsdF92YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAg ICAtIHJlbW92ZSAnbDNfY2RwX2dldF9jb3NfbnVtJyBiZWNhdXNlIHdlIGNhbiBkaXJlY3RseSBn ZXQgY29zX251bSBmcm9tCiAgICAgIGZlYXRfbm9kZSBub3cuCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSBjb3MgY2hlY2tpbmcgYmVjYXVzZSBpdCBoYXMgYmVl biBtb3ZlZCB0byBjb21tb24gZnVuY3Rpb24uCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpCiAgICAtIGwzX2NkcF9zZXRfbmV3X3ZhbCBwYXJhbWV0ZXIgJ20nIGlzIGNoYW5nZWQgdG8g J25ld192YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBkaXJlY3Rs eSB1c2UgZ2V0X2NkcF9kYXRhKGZlYXQsIDApIGFuZCBnZXRfY2RwX2NvZGUoZmVhdCwgMCkgdG8g Z2V0CiAgICAgIGRlZmF1bHQgdmFsdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CiAgICAtIG1vZGlmeSAnbDNfY2RwX3dyaXRlX21zcicgZmxvdyB0byB3cml0ZSB2YWx1ZSBpbnRv IHJlZ2lzdGVyIGFjY29yZGluZwogICAgICB0byBpbnB1dCB0eXBlLgogICAgLSBjaGFuZ2VzIGFi b3V0ICd1aW50NjRfdCcgdG8gJ3VpbnQzMl90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCkKdjg6CiAgICAtIG1vZGlmeSAnbDNfY2RwX3dyaXRlX21zcicgdHlwZSB0byAndm9pZCcu CnY1OgogICAgLSByZW1vdmUgdHlwZSBjaGVjayBpbiBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IHJldHVybiB2YWx1ZSBvZiBj YWxsYmFjayBmdW5jdGlvbnMgYmVjYXVzZSB3ZSBkbyBub3QgbmVlZCB0aGVtCiAgICAgIHRvIHJl dHVybiBudW1iZXIgb2YgZW50cmllcyB0aGUgZmVhdHVyZSB1c2VzLiBJbiBjYWxsZXIsIHdlIGNh bGwKICAgICAgJ2dldF9jb3NfbnVtJyB0byBnZXQgdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoZSBm ZWF0dXJlIHVzZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92 ZSAnbDNfY2RwX2dldF9jb3NfbWF4X2Zyb21fdHlwZScuCiAgICAtIHJlbmFtZSAnbDNfY2RwX2V4 Y2VlZHNfY29zX21heCcgdG8gJ2wzX2NkcF9maXRzX2Nvc19tYXgnLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2ggdG8gbWFrZSBjb2Rl cyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK LS0tCi0tLQogeGVuL2FyY2gveDg2L3Bzci5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNy LmMKaW5kZXggYWVlNmUzZS4uOTFiMjEyMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5j CisrKyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAtMjA5LDcgKzIwOSw4IEBAIHN0YXRpYyB2b2lk IGZyZWVfc29ja2V0X3Jlc291cmNlcyh1bnNpZ25lZCBpbnQgc29ja2V0KQogICAgIGJpdG1hcF96 ZXJvKGluZm8tPmRvbV9zZXQsIERPTUlEX0lETEUgKyAxKTsKIH0KIAotc3RhdGljIGVudW0gcHNy X2ZlYXRfdHlwZSBwc3JfY2JtX3R5cGVfdG9fZmVhdF90eXBlKGVudW0gY2JtX3R5cGUgdHlwZSkK K3N0YXRpYyBlbnVtIHBzcl9mZWF0X3R5cGUgcHNyX2NibV90eXBlX3RvX2ZlYXRfdHlwZShlbnVt IGNibV90eXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBzdHJpY3QpCiB7CiAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXRf dHlwZSA9IFBTUl9TT0NLRVRfRkVBVF9VTktOT1dOOwogCkBAIC0yMjIsNyArMjIzLDcgQEAgc3Rh dGljIGVudW0gcHNyX2ZlYXRfdHlwZSBwc3JfY2JtX3R5cGVfdG9fZmVhdF90eXBlKGVudW0gY2Jt X3R5cGUgdHlwZSkKICAgICAgICAgICogSWYgdHlwZSBpcyBMMyBDQVQgYnV0IHdlIGNhbm5vdCBm aW5kIGl0IGluIGZlYXRfcHJvcHMgYXJyYXksCiAgICAgICAgICAqIHRyeSBDRFAuCiAgICAgICAg ICAqLwotICAgICAgICBpZiAoICFmZWF0X3Byb3BzW2ZlYXRfdHlwZV0gKQorICAgICAgICBpZiAo ICFmZWF0X3Byb3BzW2ZlYXRfdHlwZV0gJiYgIXN0cmljdCApCiAgICAgICAgICAgICBmZWF0X3R5 cGUgPSBQU1JfU09DS0VUX0wzX0NEUDsKIAogICAgICAgICBicmVhazsKQEAgLTM1OCwxMSArMzU5 LDIwIEBAIHN0YXRpYyBib29sIGwzX2NkcF9nZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVjdCBmZWF0 X25vZGUgKmZlYXQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyB2b2lkIGwzX2NkcF93 cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFsLCBlbnVtIGNibV90eXBlIHR5 cGUpCit7CisgICAgd3Jtc3JsKCgodHlwZSA9PSBQU1JfQ0JNX1RZUEVfTDNfREFUQSkgPworICAg ICAgICAgICAgTVNSX0lBMzJfUFNSX0wzX01BU0tfREFUQShjb3MpIDoKKyAgICAgICAgICAgIE1T Ul9JQTMyX1BTUl9MM19NQVNLX0NPREUoY29zKSksCisgICAgICAgICAgIHZhbCk7Cit9CisKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyBsM19jZHBfcHJvcHMgPSB7CiAgICAgLmNvc19u dW0gPSAyLAogICAgIC50eXBlWzBdID0gUFNSX0NCTV9UWVBFX0wzX0RBVEEsCiAgICAgLnR5cGVb MV0gPSBQU1JfQ0JNX1RZUEVfTDNfQ09ERSwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGwzX2NkcF9n ZXRfZmVhdF9pbmZvLAorICAgIC53cml0ZV9tc3IgPSBsM19jZHBfd3JpdGVfbXNyLAogfTsKIAog c3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZhbHVlLCBj aGFyICpmZWF0dXJlLApAQCAtNjEzLDcgKzYyMyw3IEBAIGludCBwc3JfZ2V0X2luZm8odW5zaWdu ZWQgaW50IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAogICAgIGlmICggSVNfRVJSKGluZm8p ICkKICAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5mbyk7CiAKLSAgICBmZWF0X3R5cGUgPSBwc3Jf Y2JtX3R5cGVfdG9fZmVhdF90eXBlKHR5cGUpOworICAgIGZlYXRfdHlwZSA9IHBzcl9jYm1fdHlw ZV90b19mZWF0X3R5cGUodHlwZSwgZmFsc2UpOwogICAgIGlmICggZmVhdF90eXBlID49IEFSUkFZ X1NJWkUoaW5mby0+ZmVhdHVyZXMpICkKICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CiAKQEAgLTY0 Niw3ICs2NTYsNyBAQCBpbnQgcHNyX2dldF92YWwoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg aW50IHNvY2tldCwKICAgICBpZiAoIElTX0VSUihpbmZvKSApCiAgICAgICAgIHJldHVybiBQVFJf RVJSKGluZm8pOwogCi0gICAgZmVhdF90eXBlID0gcHNyX2NibV90eXBlX3RvX2ZlYXRfdHlwZSh0 eXBlKTsKKyAgICBmZWF0X3R5cGUgPSBwc3JfY2JtX3R5cGVfdG9fZmVhdF90eXBlKHR5cGUsIGZh bHNlKTsKICAgICBpZiAoIGZlYXRfdHlwZSA+PSBBUlJBWV9TSVpFKGluZm8tPmZlYXR1cmVzKSAp CiAgICAgICAgIHJldHVybiAtRU5PRU5UOwogCkBAIC03NjQsNiArNzc0LDcgQEAgc3RhdGljIGlu dCBpbnNlcnRfdmFsX2ludG9fYXJyYXkodWludDMyX3QgdmFsW10sCiAgICAgY29uc3Qgc3RydWN0 IGZlYXRfbm9kZSAqZmVhdDsKICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyAqcHJvcHM7CiAg ICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJldCA9IC1FSU5WQUw7CiAKICAgICBBU1NFUlQo ZmVhdF90eXBlIDwgUFNSX1NPQ0tFVF9GRUFUX05VTSk7CiAKQEAgLTgwNSwxNyArODE2LDI0IEBA IHN0YXRpYyBpbnQgaW5zZXJ0X3ZhbF9pbnRvX2FycmF5KHVpbnQzMl90IHZhbFtdLAogICAgIGlm ICggIXBzcl9jaGVja19jYm0oZmVhdC0+Y2JtX2xlbiwgbmV3X3ZhbCkgKQogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKIAotICAgIC8qIFZhbHVlIHNldHRpbmcgcG9zaXRpb24gaXMgc2FtZSBhcyBm ZWF0dXJlIGFycmF5LiAqLworICAgIC8qCisgICAgICogVmFsdWUgc2V0dGluZyBwb3NpdGlvbiBp cyBzYW1lIGFzIGZlYXR1cmUgYXJyYXkuCisgICAgICogRm9yIENEUCwgdXNlciBtYXkgc2V0IGJv dGggREFUQSBhbmQgQ09ERSB0byBzYW1lIHZhbHVlLiBGb3Igc3VjaCBjYXNlLAorICAgICAqIHVz ZXIgaW5wdXQgJ1BTUl9DQk1fVFlQRV9MMycgYXMgdHlwZS4gVGhlIHN0cmljdCBmZWF0dXJlIHR5 cGUgb2YKKyAgICAgKiAnUFNSX0NCTV9UWVBFX0wzJyBpcyBMMyBDQVQuIFNvLCB3ZSBzaG91bGQg c2V0IG5ld192YWwgdG8gYm90aCBvZiBEQVRBCisgICAgICogYW5kIENPREUgdW5kZXIgc3VjaCBj YXNlLgorICAgICAqLwogICAgIGZvciAoIGkgPSAwOyBpIDwgcHJvcHMtPmNvc19udW07IGkrKyAp CiAgICAgewotICAgICAgICBpZiAoIHR5cGUgPT0gcHJvcHMtPnR5cGVbaV0gKQorICAgICAgICBp ZiAoIHR5cGUgPT0gcHJvcHMtPnR5cGVbaV0gfHwKKyAgICAgICAgICAgICBmZWF0X3R5cGUgIT0g cHNyX2NibV90eXBlX3RvX2ZlYXRfdHlwZSh0eXBlLCB0cnVlKSApCiAgICAgICAgIHsKICAgICAg ICAgICAgIHZhbFtpXSA9IG5ld192YWw7Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg ICAgIHJldCA9IDA7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gLUVJTlZBTDsKKyAg ICByZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNvbXBhcmVfdmFsKGNvbnN0IHVpbnQzMl90 IHZhbFtdLApAQCAtMTEyNCw3ICsxMTQyLDcgQEAgaW50IHBzcl9zZXRfdmFsKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCiAgICAgaWYgKCBuZXdfdmFsICE9IHZhbCApCiAg ICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgZmVhdF90eXBlID0gcHNyX2NibV90eXBlX3Rv X2ZlYXRfdHlwZSh0eXBlKTsKKyAgICBmZWF0X3R5cGUgPSBwc3JfY2JtX3R5cGVfdG9fZmVhdF90 eXBlKHR5cGUsIGZhbHNlKTsKICAgICBpZiAoIGZlYXRfdHlwZSA+PSBBUlJBWV9TSVpFKGluZm8t PmZlYXR1cmVzKSB8fAogICAgICAgICAgIWluZm8tPmZlYXR1cmVzW2ZlYXRfdHlwZV0gKQogICAg ICAgICByZXR1cm4gLUVOT0VOVDsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==