From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v15.2 13/23] x86: refactor psr: CDP: implement CPU init flow. Date: Fri, 4 Aug 2017 11:08:44 +0800 Message-ID: <1501816124-95652-1-git-send-email-yi.y.sun@linux.intel.com> References: <1501577334-7431-14-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 1ddTDj-0005aX-Rx for xen-devel@lists.xenproject.org; Fri, 04 Aug 2017 03:24:15 +0000 In-Reply-To: <1501577334-7431-14-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: Yi Sun , jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBDUFUgaW5pdCBmbG93IGZvciBDRFAuIFRoZSBmbG93 IGlzIGFsbW9zdApzYW1lIGFzIEwzIENBVC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5z dW5AbGludXguaW50ZWwuY29tPgotLS0KdjE1OgogICAgLSByZWZpbmUgcHJvY2VzcyBpbiAncHNy X2NwdV9pbml0JyB0byByZW1vdmUgdGhlICdnb3RvJyBhbmQgbWVyZ2UgdHdvCiAgICAgIGlmKClz LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTQ6CiAgICAtIHJlbW92ZSB0aGUg J05vdGVzJyBpbiBjb21taXQgbWVzc2FnZSBiZWNhdXNlIGEgc3R1YiBmdW5jdGlvbiBpcwogICAg ICBpbXBsZW1lbnRlZCB0byBhdm9pZCBwb3RlbnRpYWwgaXNzdWUuCiAgICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSAnZmVhdF9sM19jZHAnIGJlY2F1c2UgaXQgY2Fu IGJlIHJlcGxhY2VkIGJ5ICdmZWF0X2wzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKICAgIC0gaW1wbGVtZW50IHN0dWIgY2FsbGJhY2sgZnVuY3Rpb25zIGZvciBDRFAgdG8gYXZv aWQgc3lzdGVtIGNyYXNoIGlmCiAgICAgIG5vdCBmdWxsIENEUCBwYXRjaGVzIGFwcGxpZWQuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGRpcmVjdGx5IGFzc2lnbiBjb3Jy ZWN0IHZhbHVlIHRvICdhbHRfdHlwZScgb2YgQ0RQLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKQogICAgLSBnb3RvIEwzIENBVCBpbml0IHByb2Nlc3MgaWYgQ0RQIGluaXQgZmFpbHMu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnYxMzoKICAgIC0gYWRkIGNvbW1pdCBt ZXNzYWdlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBmaXggY29tbWVu dCBpc3N1ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gc2V0IENEUCBk ZWZhdWx0IHZhbHVlIGJlZm9yZSBlbmFibGluZyBpdC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkKICAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IGNoZWNrLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBzZXQgJ2FsdF90eXBlJyBmb3IgQ0RQLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGVjayAnY29zX21heCcgYW5kIHN1YnN0cmFj dCAxIGJlZm9yZSByaWdodCBzaGlmdCBpdCB0byBnZXQgY29ycmVjdAogICAgICB2YWx1ZS4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjEyOgogICAgLSBtb3ZlICd0eXBlW10nIGFz c2lnbm1lbnQgaW50byBsM19jZHBfcHJvcHMgZGVjbGFyYXRpb24gdG8gbWFrZSBpdCBiZQogICAg ICAnY29uc3QnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUg IkwyIENBVCIgaW5kaWNhdGlvbiBpbiBwcmludGsuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpCiAgICAtIGZpeCBjb2Rpbmcgc3R5bGUgaXNzdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZSAndmFsJyB0eXBlIHRvIHVpbnQ2NF90LgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2UgMXVsbC4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVzdG9yZSBtYXNrKDApIE1TUiB0byBkZWZhdWx0IHZh bHVlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTE6CiAgICAtIGNoYW5nZXMg YWJvdXQgJ2ZlYXRfcHJvcHMnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAg LSByZW1vdmUgTVNSIHJlc3RvcmUgYWN0aW9uIHdoaWNoIGlzIHVubmVjZXNzYXJ5LgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UuCnYx MDoKICAgIC0gZml4IGNvbW1lbnQuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIHVzZSBzd2l0aCBpbiAnY2F0X2luaXRfZmVhdHVyZScgdG8gaGFuZGxlIGRpZmZlcmVudCBm ZWF0dXJlIHR5cGVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFu Z2VzIGFib3V0ICdwcm9wcycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IHJlc3RvcmUgTVNScyB0byBkZWZhdWx0IHZhbHVlIHdoZW4gY3B1IG9ubGluZS4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlIGZlYXRfbWFzay4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjk6CiAgICAtIG1vZGlmeSBjb21taXQgbWVzc2FnZSB0 byBkZXNjcmliZSBmbG93IGNsZWFyZXIuCiAgICAtIGhhbmRsZSBjcHUgb2ZmbGluZSBhbmQgb25s aW5lIGFnYWluIGNhc2UgdG8gcmVhZCBNU1JzIHJlZ2lzdGVycyB2YWx1ZXMKICAgICAgYmFjayBh bmQgc2F2ZSB0aGVtIGludG8gY29zIGFycmF5IHRvIG1ha2UgdXNlciBjYW4gZ2V0IHJlYWwgZGF0 YS4KICAgIC0gbW9kaWZ5IGVycm9yIGhhbmRsaW5nIHByb2Nlc3MgaW4gJ3Bzcl9jcHVfcHJlcGFy ZScgdG8gcmVkdWNlIHJlZHVuZGFudAogICAgICBjb2Rlcy4KICAgIC0gbW9kaWZ5ICdnZXRfY2Rw X2RhdGEnIGFuZCAnZ2V0X2NkcF9jb2RlJyB0byBtYWtlIHRoZW0gc3RhbmRhcmQuCiAgICAgIChz dWdnZXN0ZWQgYnkgUm9nZXIgUGF1IGFuZCBKYW4gQmV1bGljaCkKICAgIC0gZW5jYXBzdWxhdGUg Q0RQIG9wZXJhdGlvbnMgaW50byAnY2F0X2luaXRfZmVhdHVyZScgdG8gcmVkdWNlIHJlZHVuZGFu dAogICAgICBjb2Rlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUpCiAgICAtIHJldXNl ICdjYXRfZ2V0X2Nvc19tYXgnIGZvciBDRFAuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1 KQogICAgLSBoYW5kbGUgJ1BTUl9DRFAnIGluIHBzcl9wcmVzbXBfaW5pdCB0byBtYWtlIGluaXQg d29yayBjYW4gYmUgZG9uZSB3aGVuCiAgICAgIHRoZXJlIGlzIG9ubHkgJ3Bzcj1jZHAnIGluIGNt ZGxpbmUuCiAgICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBjb21tZW50LgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb3ZlIENEUCByZWxhdGVkIGNvZGVzIGluICdjcHVfaW5p dF93b3JrJyBpbnRvICdwc3JfY3B1X2luaXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSBhZGQgY29kZXMgdG8gaGFuZGxlIENEUCdzICdjb3NfbnVtJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZml4IGNvZGluZyBzdHlsZSBpc3N1ZS4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZG8gbm90IGZyZWUgcmVzb3VyY2Vz IHdoZW4gYWxsb2NhdGlvbiBmYWlscyBpbiAncHNyX2NwdV9wcmVwYXJlJy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAndWludDY0X3QnIHRvICd1 aW50MzJfdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY3OgogICAgLSBpbml0 aWFsaXplICdsM19jZHAnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2ls aykKdjY6CiAgICAtIHVzZSAnY3B1aWRfbGVhZicuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFk IFJ6ZXN6dXRlayBXaWxrIGFuZCBKYW4gQmV1bGljaCkKdjU6CiAgICAtIHJlbW92ZSBjb2RlcyB0 byBmcmVlICdmZWF0X2wzX2NkcCcgaW4gJ2ZyZWVfZmVhdHVyZScuCiAgICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpCiAgICAtIGVuY2Fwc3VsYXRlIGNwdWlkIHJlZ2lzdGVycyBpbnRvICdz dHJ1Y3QgY3B1aWRfbGVhZl9yZWdzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gcHJpbnQgc29ja2V0IGluZm8gd2hlbiAnb3B0X2NwdV9pbmZvJyBpcyB0cnVlLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW5hbWUgJ2wzX2NkcF9nZXRfbWF4 X2Nvc19tYXgnIHRvICdsM19jZHBfZ2V0X2Nvc19tYXgnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKQogICAgLSByZW5hbWUgJ2RhdFtdJyB0byAnZGF0YVtdJy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSAnY3B1X3ByZXBhcmVfd29yaycgY29udGVu dHMgaW50byAncHNyX2NwdV9wcmVwYXJlJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKdjQ6CiAgICAtIGNyZWF0ZSB0aGlzIHBhdGNoIHRvIG1ha2UgY29kZXMgZWFzaWVyIHRvIHVu ZGVyc3RhbmQuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCi0tLQogeGVuL2FyY2gv eDg2L3Bzci5jIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNy LmMKaW5kZXggY2U1YjViOC4uYzI1ODZhZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5j CisrKyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAtNjIsNiArNjIsNyBAQAogCiBlbnVtIHBzcl9m ZWF0X3R5cGUgewogICAgIEZFQVRfVFlQRV9MM19DQVQsCisgICAgRkVBVF9UWVBFX0wzX0NEUCwK ICAgICBGRUFUX1RZUEVfTlVNLAogICAgIEZFQVRfVFlQRV9VTktOT1dOLAogfTsKQEAgLTE2Myw2 ICsxNjQsMjIgQEAgc3RhdGljIHN0cnVjdCBmZWF0X25vZGUgKmZlYXRfbDM7CiAjZGVmaW5lIGNh dF9kZWZhdWx0X3ZhbChsZW4pICgweGZmZmZmZmZmID4+ICgzMiAtIChsZW4pKSkKIAogLyoKKyAq IGdldF9jZHBfZGF0YSAtIGdldCBEQVRBIENPUyByZWdpc3RlciB2YWx1ZSBmcm9tIGlucHV0IENP UyBJRC4KKyAqIEBmZWF0OiAgICAgICAgdGhlIGZlYXR1cmUgbm9kZS4KKyAqIEBjb3M6ICAgICAg ICAgdGhlIENPUyBJRC4KKyAqLworI2RlZmluZSBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKSAgICAg ICAgICAgICAgXAorICAgICAgICAgICAgKChmZWF0KS0+Y29zX3JlZ192YWxbKGNvcykgKiAyXSkK KworLyoKKyAqIGdldF9jZHBfY29kZSAtIGdldCBDT0RFIENPUyByZWdpc3RlciB2YWx1ZSBmcm9t IGlucHV0IENPUyBJRC4KKyAqIEBmZWF0OiAgICAgICAgdGhlIGZlYXR1cmUgbm9kZS4KKyAqIEBj b3M6ICAgICAgICAgdGhlIENPUyBJRC4KKyAqLworI2RlZmluZSBnZXRfY2RwX2NvZGUoZmVhdCwg Y29zKSAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKChmZWF0KS0+Y29zX3JlZ192YWxbKGNv cykgKiAyICsgMV0pCisKKy8qCiAgKiBVc2UgdGhpcyBmdW5jdGlvbiB0byBjaGVjayBpZiBhbnkg YWxsb2NhdGlvbiBmZWF0dXJlIGhhcyBiZWVuIGVuYWJsZWQKICAqIGluIGNtZGxpbmUuCiAgKi8K QEAgLTI2Miw2ICsyNzksMjkgQEAgc3RhdGljIGludCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0 cnVjdCBjcHVpZF9sZWFmICpyZWdzLAogCiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBGRUFU X1RZUEVfTDNfQ0RQOgorICAgIHsKKyAgICAgICAgdWludDY0X3QgdmFsOworCisgICAgICAgIGlm ICggZmVhdC0+Y29zX21heCA8IDMgKQorICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAg ICAgICAgLyogQ3V0IGhhbGYgb2YgY29zX21heCB3aGVuIENEUCBpcyBlbmFibGVkLiAqLworICAg ICAgICBmZWF0LT5jb3NfbWF4ID0gKGZlYXQtPmNvc19tYXggLSAxKSA+PiAxOworCisgICAgICAg IC8qIFdlIHJlc2VydmUgY29zPTAgYXMgZGVmYXVsdCBjYm0gKGFsbCBiaXRzIHdpdGhpbiBjYm1f bGVuIGFyZSAxKS4gKi8KKyAgICAgICAgZ2V0X2NkcF9jb2RlKGZlYXQsIDApID0gY2F0X2RlZmF1 bHRfdmFsKGZlYXQtPmNibV9sZW4pOworICAgICAgICBnZXRfY2RwX2RhdGEoZmVhdCwgMCkgPSBj YXRfZGVmYXVsdF92YWwoZmVhdC0+Y2JtX2xlbik7CisKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMy X1BTUl9MM19NQVNLKDApLCBjYXRfZGVmYXVsdF92YWwoZmVhdC0+Y2JtX2xlbikpOworICAgICAg ICB3cm1zcmwoTVNSX0lBMzJfUFNSX0wzX01BU0soMSksIGNhdF9kZWZhdWx0X3ZhbChmZWF0LT5j Ym1fbGVuKSk7CisgICAgICAgIHJkbXNybChNU1JfSUEzMl9QU1JfTDNfUU9TX0NGRywgdmFsKTsK KyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX1BTUl9MM19RT1NfQ0ZHLAorICAgICAgICAgICAgICAg dmFsIHwgKDF1bGwgPDwgUFNSX0wzX1FPU19DRFBfRU5BQkxFX0JJVCkpOworCisgICAgICAgIGJy ZWFrOworICAgIH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAtRU5PRU5UOwogICAg IH0KQEAgLTI3Miw3ICszMTIsOCBAQCBzdGF0aWMgaW50IGNhdF9pbml0X2ZlYXR1cmUoY29uc3Qg c3RydWN0IGNwdWlkX2xlYWYgKnJlZ3MsCiAgICAgaWYgKCAhb3B0X2NwdV9pbmZvICkKICAgICAg ICAgcmV0dXJuIDA7CiAKLSAgICBwcmludGsoWEVOTE9HX0lORk8gIkNBVDogZW5hYmxlZCBvbiBz b2NrZXQgJXUsIGNvc19tYXg6JXUsIGNibV9sZW46JXVcbiIsCisgICAgcHJpbnRrKFhFTkxPR19J TkZPICIlczogZW5hYmxlZCBvbiBzb2NrZXQgJXUsIGNvc19tYXg6JXUsIGNibV9sZW46JXVcbiIs CisgICAgICAgICAgICgodHlwZSA9PSBGRUFUX1RZUEVfTDNfQ0RQKSA/ICJMMyBDRFAiIDogIkwz IENBVCIpLAogICAgICAgICAgICBjcHVfdG9fc29ja2V0KHNtcF9wcm9jZXNzb3JfaWQoKSksIGZl YXQtPmNvc19tYXgsIGZlYXQtPmNibV9sZW4pOwogCiAgICAgcmV0dXJuIDA7CkBAIC0zMDUsNiAr MzQ2LDI2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyBsM19jYXRfcHJvcHMgPSB7 CiAgICAgLndyaXRlX21zciA9IGwzX2NhdF93cml0ZV9tc3IsCiB9OwogCisvKiBMMyBDRFAgcHJv cHMgKi8KK3N0YXRpYyBib29sIGwzX2NkcF9nZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVjdCBmZWF0 X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBk YXRhW10sIHVpbnQzMl90IGFycmF5X2xlbikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0 YXRpYyB2b2lkIGwzX2NkcF93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFs LCBlbnVtIGNibV90eXBlIHR5cGUpCit7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9w cm9wcyBsM19jZHBfcHJvcHMgPSB7CisgICAgLmNvc19udW0gPSAyLAorICAgIC50eXBlWzBdID0g UFNSX0NCTV9UWVBFX0wzX0RBVEEsCisgICAgLnR5cGVbMV0gPSBQU1JfQ0JNX1RZUEVfTDNfQ09E RSwKKyAgICAuYWx0X3R5cGUgPSBQU1JfQ0JNX1RZUEVfTDMsCisgICAgLmdldF9mZWF0X2luZm8g PSBsM19jZHBfZ2V0X2ZlYXRfaW5mbywKKyAgICAud3JpdGVfbXNyID0gbDNfY2RwX3dyaXRlX21z ciwKK307CisKIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9wc3JfYm9vbChjaGFyICpzLCBjaGFy ICp2YWx1ZSwgY2hhciAqZmVhdHVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgbWFzaykKIHsKQEAgLTEyODEsMTAgKzEzNDIsMTggQEAgc3RhdGljIHZv aWQgcHNyX2NwdV9pbml0KHZvaWQpCiAgICAgICAgIGZlYXQgPSBmZWF0X2wzOwogICAgICAgICBm ZWF0X2wzID0gTlVMTDsKIAotICAgICAgICBpZiAoICFjYXRfaW5pdF9mZWF0dXJlKCZyZWdzLCBm ZWF0LCBpbmZvLCBGRUFUX1RZUEVfTDNfQ0FUKSApCi0gICAgICAgICAgICBmZWF0X3Byb3BzW0ZF QVRfVFlQRV9MM19DQVRdID0gJmwzX2NhdF9wcm9wczsKLSAgICAgICAgZWxzZQotICAgICAgICAg ICAgZmVhdF9sMyA9IGZlYXQ7CisgICAgICAgIC8qIElmIENEUCBpbml0IGZhaWxzLCB0cnkgdG8g d29yayBhcyBMMyBDQVQuICovCisgICAgICAgIGlmICggKHJlZ3MuYyAmIFBTUl9DQVRfQ0RQX0NB UEFCSUxJVFkpICYmIChvcHRfcHNyICYgUFNSX0NEUCkgJiYKKyAgICAgICAgICAgICAhY2F0X2lu aXRfZmVhdHVyZSgmcmVncywgZmVhdCwgaW5mbywgRkVBVF9UWVBFX0wzX0NEUCkgKQorICAgICAg ICAgICAgZmVhdF9wcm9wc1tGRUFUX1RZUEVfTDNfQ0RQXSA9ICZsM19jZHBfcHJvcHM7CisKKyAg ICAgICAgaWYgKCAhZmVhdF9wcm9wc1tGRUFUX1RZUEVfTDNfQ0RQXSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIGlmICggIWNhdF9pbml0X2ZlYXR1cmUoJnJlZ3MsIGZlYXQsIGluZm8sIEZFQVRf VFlQRV9MM19DQVQpICkKKyAgICAgICAgICAgICAgICBmZWF0X3Byb3BzW0ZFQVRfVFlQRV9MM19D QVRdID0gJmwzX2NhdF9wcm9wczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBm ZWF0X2wzID0gZmVhdDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGluZm8tPmZlYXRfaW5pdCA9 IHRydWU7CkBAIC0xMzQ2LDcgKzE0MTUsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwc3JfcHJlc21w X2luaXQodm9pZCkKICAgICBpZiAoIChvcHRfcHNyICYgUFNSX0NNVCkgJiYgb3B0X3JtaWRfbWF4 ICkKICAgICAgICAgaW5pdF9wc3JfY210KG9wdF9ybWlkX21heCk7CiAKLSAgICBpZiAoIG9wdF9w c3IgJiBQU1JfQ0FUICkKKyAgICBpZiAoIG9wdF9wc3IgJiAoUFNSX0NBVCB8IFBTUl9DRFApICkK ICAgICAgICAgaW5pdF9wc3IoKTsKIAogICAgIGlmICggcHNyX2NwdV9wcmVwYXJlKCkgKQotLSAK MS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK