From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v15.1 13/23] x86: refactor psr: CDP: implement CPU init flow. Date: Thu, 3 Aug 2017 10:10:19 +0800 Message-ID: <1501726219-7134-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dd5pe-0002HI-UG for xen-devel@lists.xenproject.org; Thu, 03 Aug 2017 02:25:51 +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 X2NwdV9pbml0JyB0byByZW1vdmUgdGhlICdnb3RvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkKdjE0OgogICAgLSByZW1vdmUgdGhlICdOb3RlcycgaW4gY29tbWl0IG1lc3NhZ2Ug YmVjYXVzZSBhIHN0dWIgZnVuY3Rpb24gaXMKICAgICAgaW1wbGVtZW50ZWQgdG8gYXZvaWQgcG90 ZW50aWFsIGlzc3VlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1v dmUgJ2ZlYXRfbDNfY2RwJyBiZWNhdXNlIGl0IGNhbiBiZSByZXBsYWNlZCBieSAnZmVhdF9sMycu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGltcGxlbWVudCBzdHViIGNh bGxiYWNrIGZ1bmN0aW9ucyBmb3IgQ0RQIHRvIGF2b2lkIHN5c3RlbSBjcmFzaCBpZgogICAgICBu b3QgZnVsbCBDRFAgcGF0Y2hlcyBhcHBsaWVkLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSBkaXJlY3RseSBhc3NpZ24gY29ycmVjdCB2YWx1ZSB0byAnYWx0X3R5cGUnIG9m IENEUC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZ290byBMMyBDQVQg aW5pdCBwcm9jZXNzIGlmIENEUCBpbml0IGZhaWxzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKQp2MTM6CiAgICAtIGFkZCBjb21taXQgbWVzc2FnZS4KICAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkKICAgIC0gZml4IGNvbW1lbnQgaXNzdWUuCiAgICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpCiAgICAtIHNldCBDRFAgZGVmYXVsdCB2YWx1ZSBiZWZvcmUgZW5hYmxp bmcgaXQuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSB1bm5l Y2Vzc2FyeSBjaGVjay4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gc2V0 ICdhbHRfdHlwZScgZm9yIENEUC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAg IC0gY2hlY2sgJ2Nvc19tYXgnIGFuZCBzdWJzdHJhY3QgMSBiZWZvcmUgcmlnaHQgc2hpZnQgaXQg dG8gZ2V0IGNvcnJlY3QKICAgICAgdmFsdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpCnYxMjoKICAgIC0gbW92ZSAndHlwZVtdJyBhc3NpZ25tZW50IGludG8gbDNfY2RwX3Byb3Bz IGRlY2xhcmF0aW9uIHRvIG1ha2UgaXQgYmUKICAgICAgJ2NvbnN0Jy4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlICJMMiBDQVQiIGluZGljYXRpb24gaW4gcHJp bnRrLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBmaXggY29kaW5nIHN0 eWxlIGlzc3VlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2Ug J3ZhbCcgdHlwZSB0byB1aW50NjRfdC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gdXNlIDF1bGwuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJl c3RvcmUgbWFzaygwKSBNU1IgdG8gZGVmYXVsdCB2YWx1ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKdjExOgogICAgLSBjaGFuZ2VzIGFib3V0ICdmZWF0X3Byb3BzJy4KICAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlIE1TUiByZXN0b3JlIGFjdGlv biB3aGljaCBpcyB1bm5lY2Vzc2FyeS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlLgp2MTA6CiAgICAtIGZpeCBjb21tZW50LgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2Ugc3dpdGggaW4gJ2NhdF9pbml0 X2ZlYXR1cmUnIHRvIGhhbmRsZSBkaWZmZXJlbnQgZmVhdHVyZSB0eXBlcy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAncHJvcHMnLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZXN0b3JlIE1TUnMgdG8gZGVmYXVsdCB2 YWx1ZSB3aGVuIGNwdSBvbmxpbmUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIHJlbW92ZSBmZWF0X21hc2suCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5 OgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gZGVzY3JpYmUgZmxvdyBjbGVhcmVyLgog ICAgLSBoYW5kbGUgY3B1IG9mZmxpbmUgYW5kIG9ubGluZSBhZ2FpbiBjYXNlIHRvIHJlYWQgTVNS cyByZWdpc3RlcnMgdmFsdWVzCiAgICAgIGJhY2sgYW5kIHNhdmUgdGhlbSBpbnRvIGNvcyBhcnJh eSB0byBtYWtlIHVzZXIgY2FuIGdldCByZWFsIGRhdGEuCiAgICAtIG1vZGlmeSBlcnJvciBoYW5k bGluZyBwcm9jZXNzIGluICdwc3JfY3B1X3ByZXBhcmUnIHRvIHJlZHVjZSByZWR1bmRhbnQKICAg ICAgY29kZXMuCiAgICAtIG1vZGlmeSAnZ2V0X2NkcF9kYXRhJyBhbmQgJ2dldF9jZHBfY29kZScg dG8gbWFrZSB0aGVtIHN0YW5kYXJkLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBhbmQg SmFuIEJldWxpY2gpCiAgICAtIGVuY2Fwc3VsYXRlIENEUCBvcGVyYXRpb25zIGludG8gJ2NhdF9p bml0X2ZlYXR1cmUnIHRvIHJlZHVjZSByZWR1bmRhbnQKICAgICAgY29kZXMuCiAgICAgIChzdWdn ZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSByZXVzZSAnY2F0X2dldF9jb3NfbWF4JyBmb3IgQ0RQ LgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0gaGFuZGxlICdQU1JfQ0RQJyBp biBwc3JfcHJlc21wX2luaXQgdG8gbWFrZSBpbml0IHdvcmsgY2FuIGJlIGRvbmUgd2hlbgogICAg ICB0aGVyZSBpcyBvbmx5ICdwc3I9Y2RwJyBpbiBjbWRsaW5lLgogICAgLSByZW1vdmUgdW5uZWNl c3NhcnkgY29tbWVudC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92 ZSBDRFAgcmVsYXRlZCBjb2RlcyBpbiAnY3B1X2luaXRfd29yaycgaW50byAncHNyX2NwdV9pbml0 Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRkIGNvZGVzIHRvIGhh bmRsZSBDRFAncyAnY29zX251bScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIGZpeCBjb2Rpbmcgc3R5bGUgaXNzdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpCiAgICAtIGRvIG5vdCBmcmVlIHJlc291cmNlcyB3aGVuIGFsbG9jYXRpb24gZmFpbHMgaW4g J3Bzcl9jcHVfcHJlcGFyZScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IGNoYW5nZXMgYWJvdXQgJ3VpbnQ2NF90JyB0byAndWludDMyX3QnLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQp2NzoKICAgIC0gaW5pdGlhbGl6ZSAnbDNfY2RwJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCnY2OgogICAgLSB1c2UgJ2NwdWlkX2xl YWYnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsayBhbmQgSmFuIEJl dWxpY2gpCnY1OgogICAgLSByZW1vdmUgY29kZXMgdG8gZnJlZSAnZmVhdF9sM19jZHAnIGluICdm cmVlX2ZlYXR1cmUnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBlbmNh cHN1bGF0ZSBjcHVpZCByZWdpc3RlcnMgaW50byAnc3RydWN0IGNwdWlkX2xlYWZfcmVncycuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHByaW50IHNvY2tldCBpbmZvIHdo ZW4gJ29wdF9jcHVfaW5mbycgaXMgdHJ1ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKICAgIC0gcmVuYW1lICdsM19jZHBfZ2V0X21heF9jb3NfbWF4JyB0byAnbDNfY2RwX2dldF9j b3NfbWF4Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVuYW1lICdk YXRbXScgdG8gJ2RhdGFbXScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IG1vdmUgJ2NwdV9wcmVwYXJlX3dvcmsnIGNvbnRlbnRzIGludG8gJ3Bzcl9jcHVfcHJlcGFyZScu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY0OgogICAgLSBjcmVhdGUgdGhpcyBw YXRjaCB0byBtYWtlIGNvZGVzIGVhc2llciB0byB1bmRlcnN0YW5kLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDgzICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDZlYTJlNGUuLmYwMDdlM2Ig MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMK QEAgLTYyLDYgKzYyLDcgQEAKIAogZW51bSBwc3JfZmVhdF90eXBlIHsKICAgICBGRUFUX1RZUEVf TDNfQ0FULAorICAgIEZFQVRfVFlQRV9MM19DRFAsCiAgICAgRkVBVF9UWVBFX05VTSwKICAgICBG RUFUX1RZUEVfVU5LTk9XTiwKIH07CkBAIC0xNjMsNiArMTY0LDIyIEBAIHN0YXRpYyBzdHJ1Y3Qg ZmVhdF9ub2RlICpmZWF0X2wzOwogI2RlZmluZSBjYXRfZGVmYXVsdF92YWwobGVuKSAoMHhmZmZm ZmZmZiA+PiAoMzIgLSAobGVuKSkpCiAKIC8qCisgKiBnZXRfY2RwX2RhdGEgLSBnZXQgREFUQSBD T1MgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1MgSUQuCisgKiBAZmVhdDogICAgICAgIHRo ZSBmZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAgIHRoZSBDT1MgSUQuCisgKi8KKyNkZWZp bmUgZ2V0X2NkcF9kYXRhKGZlYXQsIGNvcykgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICgo ZmVhdCktPmNvc19yZWdfdmFsWyhjb3MpICogMl0pCisKKy8qCisgKiBnZXRfY2RwX2NvZGUgLSBn ZXQgQ09ERSBDT1MgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1MgSUQuCisgKiBAZmVhdDog ICAgICAgIHRoZSBmZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAgIHRoZSBDT1MgSUQuCisg Ki8KKyNkZWZpbmUgZ2V0X2NkcF9jb2RlKGZlYXQsIGNvcykgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgICgoZmVhdCktPmNvc19yZWdfdmFsWyhjb3MpICogMiArIDFdKQorCisvKgogICogVXNl IHRoaXMgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYW55IGFsbG9jYXRpb24gZmVhdHVyZSBoYXMgYmVl biBlbmFibGVkCiAgKiBpbiBjbWRsaW5lLgogICovCkBAIC0yNjIsNiArMjc5LDI5IEBAIHN0YXRp YyBpbnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywKIAog ICAgICAgICBicmVhazsKIAorICAgIGNhc2UgRkVBVF9UWVBFX0wzX0NEUDoKKyAgICB7CisgICAg ICAgIHVpbnQ2NF90IHZhbDsKKworICAgICAgICBpZiAoIGZlYXQtPmNvc19tYXggPCAzICkKKyAg ICAgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgICAgIC8qIEN1dCBoYWxmIG9mIGNvc19t YXggd2hlbiBDRFAgaXMgZW5hYmxlZC4gKi8KKyAgICAgICAgZmVhdC0+Y29zX21heCA9IChmZWF0 LT5jb3NfbWF4IC0gMSkgPj4gMTsKKworICAgICAgICAvKiBXZSByZXNlcnZlIGNvcz0wIGFzIGRl ZmF1bHQgY2JtIChhbGwgYml0cyB3aXRoaW4gY2JtX2xlbiBhcmUgMSkuICovCisgICAgICAgIGdl dF9jZHBfY29kZShmZWF0LCAwKSA9IGNhdF9kZWZhdWx0X3ZhbChmZWF0LT5jYm1fbGVuKTsKKyAg ICAgICAgZ2V0X2NkcF9kYXRhKGZlYXQsIDApID0gY2F0X2RlZmF1bHRfdmFsKGZlYXQtPmNibV9s ZW4pOworCisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSygwKSwgY2F0X2RlZmF1 bHRfdmFsKGZlYXQtPmNibV9sZW4pKTsKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX1BTUl9MM19N QVNLKDEpLCBjYXRfZGVmYXVsdF92YWwoZmVhdC0+Y2JtX2xlbikpOworICAgICAgICByZG1zcmwo TVNSX0lBMzJfUFNSX0wzX1FPU19DRkcsIHZhbCk7CisgICAgICAgIHdybXNybChNU1JfSUEzMl9Q U1JfTDNfUU9TX0NGRywKKyAgICAgICAgICAgICAgIHZhbCB8ICgxdWxsIDw8IFBTUl9MM19RT1Nf Q0RQX0VOQUJMRV9CSVQpKTsKKworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZhdWx0 OgogICAgICAgICByZXR1cm4gLUVOT0VOVDsKICAgICB9CkBAIC0yNzIsNyArMzEyLDggQEAgc3Rh dGljIGludCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAog ICAgIGlmICggIW9wdF9jcHVfaW5mbyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcHJpbnRr KFhFTkxPR19JTkZPICJDQVQ6IGVuYWJsZWQgb24gc29ja2V0ICV1LCBjb3NfbWF4OiV1LCBjYm1f bGVuOiV1XG4iLAorICAgIHByaW50ayhYRU5MT0dfSU5GTyAiJXM6IGVuYWJsZWQgb24gc29ja2V0 ICV1LCBjb3NfbWF4OiV1LCBjYm1fbGVuOiV1XG4iLAorICAgICAgICAgICAoKHR5cGUgPT0gRkVB VF9UWVBFX0wzX0NEUCkgPyAiTDMgQ0RQIiA6ICJMMyBDQVQiKSwKICAgICAgICAgICAgY3B1X3Rv X3NvY2tldChzbXBfcHJvY2Vzc29yX2lkKCkpLCBmZWF0LT5jb3NfbWF4LCBmZWF0LT5jYm1fbGVu KTsKIAogICAgIHJldHVybiAwOwpAQCAtMzA1LDYgKzM0NiwyNiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGZlYXRfcHJvcHMgbDNfY2F0X3Byb3BzID0gewogICAgIC53cml0ZV9tc3IgPSBsM19jYXRf d3JpdGVfbXNyLAogfTsKIAorLyogTDMgQ0RQIHByb3BzICovCitzdGF0aWMgYm9vbCBsM19jZHBf Z2V0X2ZlYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0YVtdLCB1aW50MzJfdCBhcnJheV9sZW4p Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBsM19jZHBfd3JpdGVfbXNy KHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwgZW51bSBjYm1fdHlwZSB0eXBlKQorewor fQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2RwX3Byb3BzID0geworICAg IC5jb3NfbnVtID0gMiwKKyAgICAudHlwZVswXSA9IFBTUl9DQk1fVFlQRV9MM19EQVRBLAorICAg IC50eXBlWzFdID0gUFNSX0NCTV9UWVBFX0wzX0NPREUsCisgICAgLmFsdF90eXBlID0gUFNSX0NC TV9UWVBFX0wzLAorICAgIC5nZXRfZmVhdF9pbmZvID0gbDNfY2RwX2dldF9mZWF0X2luZm8sCisg ICAgLndyaXRlX21zciA9IGwzX2NkcF93cml0ZV9tc3IsCit9OworCiBzdGF0aWMgdm9pZCBfX2lu aXQgcGFyc2VfcHNyX2Jvb2woY2hhciAqcywgY2hhciAqdmFsdWUsIGNoYXIgKmZlYXR1cmUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1hc2spCiB7CkBA IC0xMjgzLDEwICsxMzQ0LDIwIEBAIHN0YXRpYyB2b2lkIHBzcl9jcHVfaW5pdCh2b2lkKQogICAg ICAgICBmZWF0ID0gZmVhdF9sMzsKICAgICAgICAgZmVhdF9sMyA9IE5VTEw7CiAKLSAgICAgICAg aWYgKCAhY2F0X2luaXRfZmVhdHVyZSgmcmVncywgZmVhdCwgaW5mbywgRkVBVF9UWVBFX0wzX0NB VCkgKQotICAgICAgICAgICAgZmVhdF9wcm9wc1tGRUFUX1RZUEVfTDNfQ0FUXSA9ICZsM19jYXRf cHJvcHM7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZlYXRfbDMgPSBmZWF0OworICAgICAg ICBpZiAoIChyZWdzLmMgJiBQU1JfQ0FUX0NEUF9DQVBBQklMSVRZKSAmJiAob3B0X3BzciAmIFBT Ul9DRFApICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogSWYgQ0RQIGluaXQgZmFpbHMsIHRy eSB0byB3b3JrIGFzIEwzIENBVC4gKi8KKyAgICAgICAgICAgIGlmICggIWNhdF9pbml0X2ZlYXR1 cmUoJnJlZ3MsIGZlYXQsIGluZm8sIEZFQVRfVFlQRV9MM19DRFApICkKKyAgICAgICAgICAgICAg ICBmZWF0X3Byb3BzW0ZFQVRfVFlQRV9MM19DRFBdID0gJmwzX2NkcF9wcm9wczsKKyAgICAgICAg fQorCisgICAgICAgIGlmICggIWZlYXRfcHJvcHNbRkVBVF9UWVBFX0wzX0NEUF0gKQorICAgICAg ICB7CisgICAgICAgICAgICBpZiAoICFjYXRfaW5pdF9mZWF0dXJlKCZyZWdzLCBmZWF0LCBpbmZv LCBGRUFUX1RZUEVfTDNfQ0FUKSApCisgICAgICAgICAgICAgICAgZmVhdF9wcm9wc1tGRUFUX1RZ UEVfTDNfQ0FUXSA9ICZsM19jYXRfcHJvcHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgICAgZmVhdF9sMyA9IGZlYXQ7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpbmZvLT5mZWF0 X2luaXQgPSB0cnVlOwpAQCAtMTM0OCw3ICsxNDE5LDcgQEAgc3RhdGljIGludCBfX2luaXQgcHNy X3ByZXNtcF9pbml0KHZvaWQpCiAgICAgaWYgKCAob3B0X3BzciAmIFBTUl9DTVQpICYmIG9wdF9y bWlkX21heCApCiAgICAgICAgIGluaXRfcHNyX2NtdChvcHRfcm1pZF9tYXgpOwogCi0gICAgaWYg KCBvcHRfcHNyICYgUFNSX0NBVCApCisgICAgaWYgKCBvcHRfcHNyICYgKFBTUl9DQVQgfCBQU1Jf Q0RQKSApCiAgICAgICAgIGluaXRfcHNyKCk7CiAKICAgICBpZiAoIHBzcl9jcHVfcHJlcGFyZSgp ICkKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==