From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v14 13/23] x86: refactor psr: CDP: implement CPU init flow. Date: Sat, 15 Jul 2017 08:31:46 +0800 Message-ID: <1500078716-5928-14-git-send-email-yi.y.sun@linux.intel.com> References: <1500078716-5928-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 1dWBES-0007N4-6B for xen-devel@lists.xenproject.org; Sat, 15 Jul 2017 00:46:52 +0000 In-Reply-To: <1500078716-5928-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 VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBDUFUgaW5pdCBmbG93IGZvciBDRFAuIFRoZSBmbG93 IGlzIGFsbW9zdApzYW1lIGFzIEwzIENBVC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5z dW5AbGludXguaW50ZWwuY29tPgotLS0KdjE0OgogICAgLSByZW1vdmUgdGhlICdOb3RlcycgaW4g Y29tbWl0IG1lc3NhZ2UgYmVjYXVzZSBhIHN0dWIgZnVuY3Rpb24gaXMKICAgICAgaW1wbGVtZW50 ZWQgdG8gYXZvaWQgcG90ZW50aWFsIGlzc3VlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSByZW1vdmUgJ2ZlYXRfbDNfY2RwJyBiZWNhdXNlIGl0IGNhbiBiZSByZXBsYWNl ZCBieSAnZmVhdF9sMycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGlt cGxlbWVudCBzdHViIGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgQ0RQIHRvIGF2b2lkIHN5c3RlbSBj cmFzaCBpZgogICAgICBub3QgZnVsbCBDRFAgcGF0Y2hlcyBhcHBsaWVkLgogICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBkaXJlY3RseSBhc3NpZ24gY29ycmVjdCB2YWx1ZSB0 byAnYWx0X3R5cGUnIG9mIENEUC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAg IC0gZ290byBMMyBDQVQgaW5pdCBwcm9jZXNzIGlmIENEUCBpbml0IGZhaWxzLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTM6CiAgICAtIGFkZCBjb21taXQgbWVzc2FnZS4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZml4IGNvbW1lbnQgaXNzdWUuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHNldCBDRFAgZGVmYXVsdCB2YWx1 ZSBiZWZvcmUgZW5hYmxpbmcgaXQuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBjaGVjay4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCkKICAgIC0gc2V0ICdhbHRfdHlwZScgZm9yIENEUC4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gY2hlY2sgJ2Nvc19tYXgnIGFuZCBzdWJzdHJhY3QgMSBiZWZvcmUg cmlnaHQgc2hpZnQgaXQgdG8gZ2V0IGNvcnJlY3QKICAgICAgdmFsdWUuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCnYxMjoKICAgIC0gbW92ZSAndHlwZVtdJyBhc3NpZ25tZW50IGlu dG8gbDNfY2RwX3Byb3BzIGRlY2xhcmF0aW9uIHRvIG1ha2UgaXQgYmUKICAgICAgJ2NvbnN0Jy4K ICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlICJMMiBDQVQiIGlu ZGljYXRpb24gaW4gcHJpbnRrLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAg LSBmaXggY29kaW5nIHN0eWxlIGlzc3VlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQogICAgLSBjaGFuZ2UgJ3ZhbCcgdHlwZSB0byB1aW50NjRfdC4KICAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkKICAgIC0gdXNlIDF1bGwuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpCiAgICAtIHJlc3RvcmUgbWFzaygwKSBNU1IgdG8gZGVmYXVsdCB2YWx1ZS4KICAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjExOgogICAgLSBjaGFuZ2VzIGFib3V0ICdmZWF0 X3Byb3BzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlIE1T UiByZXN0b3JlIGFjdGlvbiB3aGljaCBpcyB1bm5lY2Vzc2FyeS4KICAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlLgp2MTA6CiAgICAtIGZp eCBjb21tZW50LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2Ugc3dp dGggaW4gJ2NhdF9pbml0X2ZlYXR1cmUnIHRvIGhhbmRsZSBkaWZmZXJlbnQgZmVhdHVyZSB0eXBl cy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAn cHJvcHMnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZXN0b3JlIE1T UnMgdG8gZGVmYXVsdCB2YWx1ZSB3aGVuIGNwdSBvbmxpbmUuCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSBmZWF0X21hc2suCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCnY5OgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gZGVzY3JpYmUg ZmxvdyBjbGVhcmVyLgogICAgLSBoYW5kbGUgY3B1IG9mZmxpbmUgYW5kIG9ubGluZSBhZ2FpbiBj YXNlIHRvIHJlYWQgTVNScyByZWdpc3RlcnMgdmFsdWVzCiAgICAgIGJhY2sgYW5kIHNhdmUgdGhl bSBpbnRvIGNvcyBhcnJheSB0byBtYWtlIHVzZXIgY2FuIGdldCByZWFsIGRhdGEuCiAgICAtIG1v ZGlmeSBlcnJvciBoYW5kbGluZyBwcm9jZXNzIGluICdwc3JfY3B1X3ByZXBhcmUnIHRvIHJlZHVj ZSByZWR1bmRhbnQKICAgICAgY29kZXMuCiAgICAtIG1vZGlmeSAnZ2V0X2NkcF9kYXRhJyBhbmQg J2dldF9jZHBfY29kZScgdG8gbWFrZSB0aGVtIHN0YW5kYXJkLgogICAgICAoc3VnZ2VzdGVkIGJ5 IFJvZ2VyIFBhdSBhbmQgSmFuIEJldWxpY2gpCiAgICAtIGVuY2Fwc3VsYXRlIENEUCBvcGVyYXRp b25zIGludG8gJ2NhdF9pbml0X2ZlYXR1cmUnIHRvIHJlZHVjZSByZWR1bmRhbnQKICAgICAgY29k ZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSByZXVzZSAnY2F0X2dldF9j b3NfbWF4JyBmb3IgQ0RQLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0gaGFu ZGxlICdQU1JfQ0RQJyBpbiBwc3JfcHJlc21wX2luaXQgdG8gbWFrZSBpbml0IHdvcmsgY2FuIGJl IGRvbmUgd2hlbgogICAgICB0aGVyZSBpcyBvbmx5ICdwc3I9Y2RwJyBpbiBjbWRsaW5lLgogICAg LSByZW1vdmUgdW5uZWNlc3NhcnkgY29tbWVudC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCkKICAgIC0gbW92ZSBDRFAgcmVsYXRlZCBjb2RlcyBpbiAnY3B1X2luaXRfd29yaycgaW50 byAncHNyX2NwdV9pbml0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0g YWRkIGNvZGVzIHRvIGhhbmRsZSBDRFAncyAnY29zX251bScuCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCiAgICAtIGZpeCBjb2Rpbmcgc3R5bGUgaXNzdWUuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGRvIG5vdCBmcmVlIHJlc291cmNlcyB3aGVuIGFsbG9j YXRpb24gZmFpbHMgaW4gJ3Bzcl9jcHVfcHJlcGFyZScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpCiAgICAtIGNoYW5nZXMgYWJvdXQgJ3VpbnQ2NF90JyB0byAndWludDMyX3QnLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2NzoKICAgIC0gaW5pdGlhbGl6ZSAnbDNf Y2RwJy4KICAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCnY2OgogICAg LSB1c2UgJ2NwdWlkX2xlYWYnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsg V2lsayBhbmQgSmFuIEJldWxpY2gpCnY1OgogICAgLSByZW1vdmUgY29kZXMgdG8gZnJlZSAnZmVh dF9sM19jZHAnIGluICdmcmVlX2ZlYXR1cmUnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSBlbmNhcHN1bGF0ZSBjcHVpZCByZWdpc3RlcnMgaW50byAnc3RydWN0IGNwdWlk X2xlYWZfcmVncycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHByaW50 IHNvY2tldCBpbmZvIHdoZW4gJ29wdF9jcHVfaW5mbycgaXMgdHJ1ZS4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVuYW1lICdsM19jZHBfZ2V0X21heF9jb3NfbWF4JyB0 byAnbDNfY2RwX2dldF9jb3NfbWF4Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gcmVuYW1lICdkYXRbXScgdG8gJ2RhdGFbXScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpCiAgICAtIG1vdmUgJ2NwdV9wcmVwYXJlX3dvcmsnIGNvbnRlbnRzIGludG8gJ3Bz cl9jcHVfcHJlcGFyZScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY0OgogICAg LSBjcmVhdGUgdGhpcyBwYXRjaCB0byBtYWtlIGNvZGVzIGVhc2llciB0byB1bmRlcnN0YW5kLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8 IDgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LQogMSBmaWxlIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IGEz YWExZGIuLjM1Yjc4ZjYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4v YXJjaC94ODYvcHNyLmMKQEAgLTYyLDYgKzYyLDcgQEAKIAogZW51bSBwc3JfZmVhdF90eXBlIHsK ICAgICBGRUFUX1RZUEVfTDNfQ0FULAorICAgIEZFQVRfVFlQRV9MM19DRFAsCiAgICAgRkVBVF9U WVBFX05VTSwKICAgICBGRUFUX1RZUEVfVU5LTk9XTiwKIH07CkBAIC0xNjMsNiArMTY0LDIyIEBA IHN0YXRpYyBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0X2wzOwogI2RlZmluZSBjYXRfZGVmYXVsdF92 YWwobGVuKSAoMHhmZmZmZmZmZiA+PiAoMzIgLSAobGVuKSkpCiAKIC8qCisgKiBnZXRfY2RwX2Rh dGEgLSBnZXQgREFUQSBDT1MgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1MgSUQuCisgKiBA ZmVhdDogICAgICAgIHRoZSBmZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAgIHRoZSBDT1Mg SUQuCisgKi8KKyNkZWZpbmUgZ2V0X2NkcF9kYXRhKGZlYXQsIGNvcykgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgICgoZmVhdCktPmNvc19yZWdfdmFsWyhjb3MpICogMl0pCisKKy8qCisgKiBn ZXRfY2RwX2NvZGUgLSBnZXQgQ09ERSBDT1MgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1Mg SUQuCisgKiBAZmVhdDogICAgICAgIHRoZSBmZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAg IHRoZSBDT1MgSUQuCisgKi8KKyNkZWZpbmUgZ2V0X2NkcF9jb2RlKGZlYXQsIGNvcykgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgICgoZmVhdCktPmNvc19yZWdfdmFsWyhjb3MpICogMiArIDFd KQorCisvKgogICogVXNlIHRoaXMgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYW55IGFsbG9jYXRpb24g ZmVhdHVyZSBoYXMgYmVlbiBlbmFibGVkCiAgKiBpbiBjbWRsaW5lLgogICovCkBAIC0yNjIsNiAr Mjc5LDI5IEBAIHN0YXRpYyBpbnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRf bGVhZiAqcmVncywKIAogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgRkVBVF9UWVBFX0wzX0NE UDoKKyAgICB7CisgICAgICAgIHVpbnQ2NF90IHZhbDsKKworICAgICAgICBpZiAoIGZlYXQtPmNv c19tYXggPCAzICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgICAgIC8qIEN1 dCBoYWxmIG9mIGNvc19tYXggd2hlbiBDRFAgaXMgZW5hYmxlZC4gKi8KKyAgICAgICAgZmVhdC0+ Y29zX21heCA9IChmZWF0LT5jb3NfbWF4IC0gMSkgPj4gMTsKKworICAgICAgICAvKiBXZSByZXNl cnZlIGNvcz0wIGFzIGRlZmF1bHQgY2JtIChhbGwgYml0cyB3aXRoaW4gY2JtX2xlbiBhcmUgMSku ICovCisgICAgICAgIGdldF9jZHBfY29kZShmZWF0LCAwKSA9IGNhdF9kZWZhdWx0X3ZhbChmZWF0 LT5jYm1fbGVuKTsKKyAgICAgICAgZ2V0X2NkcF9kYXRhKGZlYXQsIDApID0gY2F0X2RlZmF1bHRf dmFsKGZlYXQtPmNibV9sZW4pOworCisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFT SygwKSwgY2F0X2RlZmF1bHRfdmFsKGZlYXQtPmNibV9sZW4pKTsKKyAgICAgICAgd3Jtc3JsKE1T Ul9JQTMyX1BTUl9MM19NQVNLKDEpLCBjYXRfZGVmYXVsdF92YWwoZmVhdC0+Y2JtX2xlbikpOwor ICAgICAgICByZG1zcmwoTVNSX0lBMzJfUFNSX0wzX1FPU19DRkcsIHZhbCk7CisgICAgICAgIHdy bXNybChNU1JfSUEzMl9QU1JfTDNfUU9TX0NGRywKKyAgICAgICAgICAgICAgIHZhbCB8ICgxdWxs IDw8IFBTUl9MM19RT1NfQ0RQX0VOQUJMRV9CSVQpKTsKKworICAgICAgICBicmVhazsKKyAgICB9 CisKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gLUVOT0VOVDsKICAgICB9CkBAIC0yNzIs NyArMzEyLDggQEAgc3RhdGljIGludCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0cnVjdCBjcHVp ZF9sZWFmICpyZWdzLAogICAgIGlmICggIW9wdF9jcHVfaW5mbyApCiAgICAgICAgIHJldHVybiAw OwogCi0gICAgcHJpbnRrKFhFTkxPR19JTkZPICJDQVQ6IGVuYWJsZWQgb24gc29ja2V0ICV1LCBj b3NfbWF4OiV1LCBjYm1fbGVuOiV1XG4iLAorICAgIHByaW50ayhYRU5MT0dfSU5GTyAiJXM6IGVu YWJsZWQgb24gc29ja2V0ICV1LCBjb3NfbWF4OiV1LCBjYm1fbGVuOiV1XG4iLAorICAgICAgICAg ICAoKHR5cGUgPT0gRkVBVF9UWVBFX0wzX0NEUCkgPyAiQ0RQIiA6ICJMMyBDQVQiKSwKICAgICAg ICAgICAgY3B1X3RvX3NvY2tldChzbXBfcHJvY2Vzc29yX2lkKCkpLCBmZWF0LT5jb3NfbWF4LCBm ZWF0LT5jYm1fbGVuKTsKIAogICAgIHJldHVybiAwOwpAQCAtMzA1LDYgKzM0NiwyNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2F0X3Byb3BzID0gewogICAgIC53cml0ZV9t c3IgPSBsM19jYXRfd3JpdGVfbXNyLAogfTsKIAorLyogTDMgQ0RQIHByb3BzICovCitzdGF0aWMg Ym9vbCBsM19jZHBfZ2V0X2ZlYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0YVtdLCB1aW50MzJf dCBhcnJheV9sZW4pCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBsM19j ZHBfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwgZW51bSBjYm1fdHlw ZSB0eXBlKQoreworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2RwX3By b3BzID0geworICAgIC5jb3NfbnVtID0gMiwKKyAgICAudHlwZVswXSA9IFBTUl9DQk1fVFlQRV9M M19EQVRBLAorICAgIC50eXBlWzFdID0gUFNSX0NCTV9UWVBFX0wzX0NPREUsCisgICAgLmFsdF90 eXBlID0gUFNSX0NCTV9UWVBFX0wzLAorICAgIC5nZXRfZmVhdF9pbmZvID0gbDNfY2RwX2dldF9m ZWF0X2luZm8sCisgICAgLndyaXRlX21zciA9IGwzX2NkcF93cml0ZV9tc3IsCit9OworCiBzdGF0 aWMgdm9pZCBfX2luaXQgcGFyc2VfcHNyX2Jvb2woY2hhciAqcywgY2hhciAqdmFsdWUsIGNoYXIg KmZlYXR1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IG1hc2spCiB7CkBAIC0xMjgzLDEwICsxMzQ0LDIyIEBAIHN0YXRpYyB2b2lkIHBzcl9jcHVfaW5p dCh2b2lkKQogICAgICAgICBmZWF0ID0gZmVhdF9sMzsKICAgICAgICAgZmVhdF9sMyA9IE5VTEw7 CiAKLSAgICAgICAgaWYgKCAhY2F0X2luaXRfZmVhdHVyZSgmcmVncywgZmVhdCwgaW5mbywgRkVB VF9UWVBFX0wzX0NBVCkgKQotICAgICAgICAgICAgZmVhdF9wcm9wc1tGRUFUX1RZUEVfTDNfQ0FU XSA9ICZsM19jYXRfcHJvcHM7CisgICAgICAgIGlmICggKHJlZ3MuYyAmIFBTUl9DQVRfQ0RQX0NB UEFCSUxJVFkpICYmIChvcHRfcHNyICYgUFNSX0NEUCkgKQorICAgICAgICB7CisgICAgICAgICAg ICBpZiAoICFjYXRfaW5pdF9mZWF0dXJlKCZyZWdzLCBmZWF0LCBpbmZvLCBGRUFUX1RZUEVfTDNf Q0RQKSApCisgICAgICAgICAgICAgICAgZmVhdF9wcm9wc1tGRUFUX1RZUEVfTDNfQ0RQXSA9ICZs M19jZHBfcHJvcHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgLyogSWYgQ0RQ IGluaXQgZmFpbHMsIHRyeSB0byB3b3JrIGFzIEwzIENBVC4gKi8KKyAgICAgICAgICAgICAgICBn b3RvIGwzX2NhdF9pbml0OworICAgICAgICB9CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZl YXRfbDMgPSBmZWF0OworICAgICAgICB7CisgbDNfY2F0X2luaXQ6CisgICAgICAgICAgICBpZiAo ICFjYXRfaW5pdF9mZWF0dXJlKCZyZWdzLCBmZWF0LCBpbmZvLCBGRUFUX1RZUEVfTDNfQ0FUKSAp CisgICAgICAgICAgICAgICAgZmVhdF9wcm9wc1tGRUFUX1RZUEVfTDNfQ0FUXSA9ICZsM19jYXRf cHJvcHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmVhdF9sMyA9IGZlYXQ7 CisgICAgICAgIH0KICAgICB9CiAKICAgICBpbmZvLT5mZWF0X2luaXQgPSB0cnVlOwpAQCAtMTM0 OCw3ICsxNDIxLDcgQEAgc3RhdGljIGludCBfX2luaXQgcHNyX3ByZXNtcF9pbml0KHZvaWQpCiAg ICAgaWYgKCAob3B0X3BzciAmIFBTUl9DTVQpICYmIG9wdF9ybWlkX21heCApCiAgICAgICAgIGlu aXRfcHNyX2NtdChvcHRfcm1pZF9tYXgpOwogCi0gICAgaWYgKCBvcHRfcHNyICYgUFNSX0NBVCAp CisgICAgaWYgKCBvcHRfcHNyICYgKFBTUl9DQVQgfCBQU1JfQ0RQKSApCiAgICAgICAgIGluaXRf cHNyKCk7CiAKICAgICBpZiAoIHBzcl9jcHVfcHJlcGFyZSgpICkKLS0gCjEuOS4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==