From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v13 13/23] x86: refactor psr: CDP: implement CPU init flow. Date: Thu, 6 Jul 2017 09:53:06 +0800 Message-ID: <1499305996-19029-14-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSwCL-0000t1-12 for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 02:07:17 +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 VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBDUFUgaW5pdCBmbG93IGZvciBDRFAuIFRoZSBmbG93 IGlzIGFsbW9zdApzYW1lIGFzIEwzIENBVC4KCk5vdGU6IENEUCBkb2VzIE5PVCB3b3JrIHVudGls IHlvdSBhcHBseSB0aGUgbGF0ZXIgcGF0Y2hlcyBvZiBDRFAuCiJ4ODY6IHJlZmFjdG9yIHBzcjog Q0RQOiBpbXBsZW1lbnQgZ2V0IGh3IGluZm8gZmxvdy4iCiJ4ODY6IHJlZmFjdG9yIHBzcjogQ0RQ OiBpbXBsZW1lbnQgc2V0IHZhbHVlIGNhbGxiYWNrIGZ1bmN0aW9uLiIKClNpZ25lZC1vZmYtYnk6 IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KdjEzOgogICAgLSBhZGQgY29t bWl0IG1lc3NhZ2UuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGZpeCBj b21tZW50IGlzc3VlLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBzZXQg Q0RQIGRlZmF1bHQgdmFsdWUgYmVmb3JlIGVuYWJsaW5nIGl0LgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2suCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHNldCAnYWx0X3R5cGUnIGZvciBDRFAuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoZWNrICdjb3NfbWF4JyBhbmQgc3Vi c3RyYWN0IDEgYmVmb3JlIHJpZ2h0IHNoaWZ0IGl0IHRvIGdldCBjb3JyZWN0CiAgICAgIHZhbHVl LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTI6CiAgICAtIG1vdmUgJ3R5cGVb XScgYXNzaWdubWVudCBpbnRvIGwzX2NkcF9wcm9wcyBkZWNsYXJhdGlvbiB0byBtYWtlIGl0IGJl CiAgICAgICdjb25zdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJl bW92ZSAiTDIgQ0FUIiBpbmRpY2F0aW9uIGluIHByaW50ay4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gZml4IGNvZGluZyBzdHlsZSBpc3N1ZS4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlICd2YWwnIHR5cGUgdG8gdWludDY0X3QuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHVzZSAxdWxsLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZXN0b3JlIG1hc2soMCkgTVNSIHRvIGRlZmF1 bHQgdmFsdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnYxMToKICAgIC0gY2hh bmdlcyBhYm91dCAnZmVhdF9wcm9wcycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CiAgICAtIHJlbW92ZSBNU1IgcmVzdG9yZSBhY3Rpb24gd2hpY2ggaXMgdW5uZWNlc3NhcnkuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vZGlmeSBjb21taXQgbWVzc2Fn ZS4KdjEwOgogICAgLSBmaXggY29tbWVudC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKICAgIC0gdXNlIHN3aXRoIGluICdjYXRfaW5pdF9mZWF0dXJlJyB0byBoYW5kbGUgZGlmZmVy ZW50IGZlYXR1cmUgdHlwZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IGNoYW5nZXMgYWJvdXQgJ3Byb3BzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gcmVzdG9yZSBNU1JzIHRvIGRlZmF1bHQgdmFsdWUgd2hlbiBjcHUgb25saW5lLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgZmVhdF9tYXNrLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2OToKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNz YWdlIHRvIGRlc2NyaWJlIGZsb3cgY2xlYXJlci4KICAgIC0gaGFuZGxlIGNwdSBvZmZsaW5lIGFu ZCBvbmxpbmUgYWdhaW4gY2FzZSB0byByZWFkIE1TUnMgcmVnaXN0ZXJzIHZhbHVlcwogICAgICBi YWNrIGFuZCBzYXZlIHRoZW0gaW50byBjb3MgYXJyYXkgdG8gbWFrZSB1c2VyIGNhbiBnZXQgcmVh bCBkYXRhLgogICAgLSBtb2RpZnkgZXJyb3IgaGFuZGxpbmcgcHJvY2VzcyBpbiAncHNyX2NwdV9w cmVwYXJlJyB0byByZWR1Y2UgcmVkdW5kYW50CiAgICAgIGNvZGVzLgogICAgLSBtb2RpZnkgJ2dl dF9jZHBfZGF0YScgYW5kICdnZXRfY2RwX2NvZGUnIHRvIG1ha2UgdGhlbSBzdGFuZGFyZC4KICAg ICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgYW5kIEphbiBCZXVsaWNoKQogICAgLSBlbmNhcHN1 bGF0ZSBDRFAgb3BlcmF0aW9ucyBpbnRvICdjYXRfaW5pdF9mZWF0dXJlJyB0byByZWR1Y2UgcmVk dW5kYW50CiAgICAgIGNvZGVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0g cmV1c2UgJ2NhdF9nZXRfY29zX21heCcgZm9yIENEUC4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dl ciBQYXUpCiAgICAtIGhhbmRsZSAnUFNSX0NEUCcgaW4gcHNyX3ByZXNtcF9pbml0IHRvIG1ha2Ug aW5pdCB3b3JrIGNhbiBiZSBkb25lIHdoZW4KICAgICAgdGhlcmUgaXMgb25seSAncHNyPWNkcCcg aW4gY21kbGluZS4KICAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IGNvbW1lbnQuCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vdmUgQ0RQIHJlbGF0ZWQgY29kZXMgaW4gJ2Nw dV9pbml0X3dvcmsnIGludG8gJ3Bzcl9jcHVfaW5pdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpCiAgICAtIGFkZCBjb2RlcyB0byBoYW5kbGUgQ0RQJ3MgJ2Nvc19udW0nLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBmaXggY29kaW5nIHN0eWxlIGlzc3Vl LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBkbyBub3QgZnJlZSByZXNv dXJjZXMgd2hlbiBhbGxvY2F0aW9uIGZhaWxzIGluICdwc3JfY3B1X3ByZXBhcmUnLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0ICd1aW50NjRfdCcg dG8gJ3VpbnQzMl90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjc6CiAgICAt IGluaXRpYWxpemUgJ2wzX2NkcCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRl ayBXaWxrKQp2NjoKICAgIC0gdXNlICdjcHVpZF9sZWFmJy4KICAgICAgKHN1Z2dlc3RlZCBieSBL b25yYWQgUnplc3p1dGVrIFdpbGsgYW5kIEphbiBCZXVsaWNoKQp2NToKICAgIC0gcmVtb3ZlIGNv ZGVzIHRvIGZyZWUgJ2ZlYXRfbDNfY2RwJyBpbiAnZnJlZV9mZWF0dXJlJy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZW5jYXBzdWxhdGUgY3B1aWQgcmVnaXN0ZXJzIGlu dG8gJ3N0cnVjdCBjcHVpZF9sZWFmX3JlZ3MnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSBwcmludCBzb2NrZXQgaW5mbyB3aGVuICdvcHRfY3B1X2luZm8nIGlzIHRydWUu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbmFtZSAnbDNfY2RwX2dl dF9tYXhfY29zX21heCcgdG8gJ2wzX2NkcF9nZXRfY29zX21heCcuCiAgICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbmFtZSAnZGF0W10nIHRvICdkYXRhW10nLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb3ZlICdjcHVfcHJlcGFyZV93b3JrJyBj b250ZW50cyBpbnRvICdwc3JfY3B1X3ByZXBhcmUnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2ggdG8gbWFrZSBjb2RlcyBlYXNpZXIg dG8gdW5kZXJzdGFuZC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKLS0tCiB4ZW4v YXJjaC94ODYvcHNyLmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4 Ni9wc3IuYwppbmRleCA0OGRhYjYwLi4xM2Q1YzJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv cHNyLmMKKysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC02Miw2ICs2Miw3IEBACiAKIGVudW0g cHNyX2ZlYXRfdHlwZSB7CiAgICAgRkVBVF9UWVBFX0wzX0NBVCwKKyAgICBGRUFUX1RZUEVfTDNf Q0RQLAogICAgIEZFQVRfVFlQRV9OVU0sCiAgICAgRkVBVF9UWVBFX1VOS05PV04sCiB9OwpAQCAt MTU4LDExICsxNTksMjggQEAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBwc3JfYXNzb2Ms IHBzcl9hc3NvYyk7CiAgKiBhcnJheSBjcmVhdGlvbi4gSXQgaXMgdXNlZCB0byB0cmFuc2llbnRs eSBzdG9yZSBhIHNwYXJlIG5vZGUuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0 X2wzX2NhdDsKK3N0YXRpYyBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0X2wzX2NkcDsKIAogLyogQ29t bW9uIGZ1bmN0aW9ucyAqLwogI2RlZmluZSBjYXRfZGVmYXVsdF92YWwobGVuKSAoMHhmZmZmZmZm ZiA+PiAoMzIgLSAobGVuKSkpCiAKIC8qCisgKiBnZXRfY2RwX2RhdGEgLSBnZXQgREFUQSBDT1Mg cmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1MgSUQuCisgKiBAZmVhdDogICAgICAgIHRoZSBm ZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAgIHRoZSBDT1MgSUQuCisgKi8KKyNkZWZpbmUg Z2V0X2NkcF9kYXRhKGZlYXQsIGNvcykgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICgoZmVh dCktPmNvc19yZWdfdmFsWyhjb3MpICogMl0pCisKKy8qCisgKiBnZXRfY2RwX2NvZGUgLSBnZXQg Q09ERSBDT1MgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1MgSUQuCisgKiBAZmVhdDogICAg ICAgIHRoZSBmZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAgIHRoZSBDT1MgSUQuCisgKi8K KyNkZWZpbmUgZ2V0X2NkcF9jb2RlKGZlYXQsIGNvcykgICAgICAgICAgICAgIFwKKyAgICAgICAg ICAgICgoZmVhdCktPmNvc19yZWdfdmFsWyhjb3MpICogMiArIDFdKQorCisvKgogICogVXNlIHRo aXMgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYW55IGFsbG9jYXRpb24gZmVhdHVyZSBoYXMgYmVlbiBl bmFibGVkCiAgKiBpbiBjbWRsaW5lLgogICovCkBAIC0yNjIsNiArMjgwLDI5IEBAIHN0YXRpYyBp bnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywKIAogICAg ICAgICBicmVhazsKIAorICAgIGNhc2UgRkVBVF9UWVBFX0wzX0NEUDoKKyAgICB7CisgICAgICAg IHVpbnQ2NF90IHZhbDsKKworICAgICAgICBpZiAoIGZlYXQtPmNvc19tYXggPCAzICkKKyAgICAg ICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgICAgIC8qIEN1dCBoYWxmIG9mIGNvc19tYXgg d2hlbiBDRFAgaXMgZW5hYmxlZC4gKi8KKyAgICAgICAgZmVhdC0+Y29zX21heCA9IChmZWF0LT5j b3NfbWF4IC0gMSkgPj4gMTsKKworICAgICAgICAvKiBXZSByZXNlcnZlIGNvcz0wIGFzIGRlZmF1 bHQgY2JtIChhbGwgYml0cyB3aXRoaW4gY2JtX2xlbiBhcmUgMSkuICovCisgICAgICAgIGdldF9j ZHBfY29kZShmZWF0LCAwKSA9IGNhdF9kZWZhdWx0X3ZhbChmZWF0LT5jYm1fbGVuKTsKKyAgICAg ICAgZ2V0X2NkcF9kYXRhKGZlYXQsIDApID0gY2F0X2RlZmF1bHRfdmFsKGZlYXQtPmNibV9sZW4p OworCisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSygwKSwgY2F0X2RlZmF1bHRf dmFsKGZlYXQtPmNibV9sZW4pKTsKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX1BTUl9MM19NQVNL KDEpLCBjYXRfZGVmYXVsdF92YWwoZmVhdC0+Y2JtX2xlbikpOworICAgICAgICByZG1zcmwoTVNS X0lBMzJfUFNSX0wzX1FPU19DRkcsIHZhbCk7CisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1Jf TDNfUU9TX0NGRywKKyAgICAgICAgICAgICAgIHZhbCB8ICgxdWxsIDw8IFBTUl9MM19RT1NfQ0RQ X0VOQUJMRV9CSVQpKTsKKworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZhdWx0Ogog ICAgICAgICByZXR1cm4gLUVOT0VOVDsKICAgICB9CkBAIC0yNzIsNyArMzEzLDggQEAgc3RhdGlj IGludCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAogICAg IGlmICggIW9wdF9jcHVfaW5mbyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcHJpbnRrKFhF TkxPR19JTkZPICJDQVQ6IGVuYWJsZWQgb24gc29ja2V0ICV1LCBjb3NfbWF4OiV1LCBjYm1fbGVu OiV1XG4iLAorICAgIHByaW50ayhYRU5MT0dfSU5GTyAiJXM6IGVuYWJsZWQgb24gc29ja2V0ICV1 LCBjb3NfbWF4OiV1LCBjYm1fbGVuOiV1XG4iLAorICAgICAgICAgICAoKHR5cGUgPT0gRkVBVF9U WVBFX0wzX0NEUCkgPyAiQ0RQIiA6ICJMMyBDQVQiKSwKICAgICAgICAgICAgY3B1X3RvX3NvY2tl dChzbXBfcHJvY2Vzc29yX2lkKCkpLCBmZWF0LT5jb3NfbWF4LCBmZWF0LT5jYm1fbGVuKTsKIAog ICAgIHJldHVybiAwOwpAQCAtMzA1LDYgKzM0NywxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZl YXRfcHJvcHMgbDNfY2F0X3Byb3BzID0gewogICAgIC53cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVf bXNyLAogfTsKIAorLyogTDMgQ0RQIHByb3BzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRf cHJvcHMgbDNfY2RwX3Byb3BzID0geworICAgIC5jb3NfbnVtID0gMiwKKyAgICAudHlwZVswXSA9 IFBTUl9DQk1fVFlQRV9MM19EQVRBLAorICAgIC50eXBlWzFdID0gUFNSX0NCTV9UWVBFX0wzX0NP REUsCisgICAgLmFsdF90eXBlID0gRkVBVF9UWVBFX0wzX0NBVCwKK307CisKIHN0YXRpYyB2b2lk IF9faW5pdCBwYXJzZV9wc3JfYm9vbChjaGFyICpzLCBjaGFyICp2YWx1ZSwgY2hhciAqZmVhdHVy ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWFzaykK IHsKQEAgLTEyNDYsNiArMTI5NiwxMCBAQCBzdGF0aWMgaW50IHBzcl9jcHVfcHJlcGFyZSh2b2lk KQogICAgICAgICAgKGZlYXRfbDNfY2F0ID0geHphbGxvYyhzdHJ1Y3QgZmVhdF9ub2RlKSkgPT0g TlVMTCApCiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogCisgICAgaWYgKCBmZWF0X2wzX2NkcCA9 PSBOVUxMICYmCisgICAgICAgICAoZmVhdF9sM19jZHAgPSB4emFsbG9jKHN0cnVjdCBmZWF0X25v ZGUpKSA9PSBOVUxMICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKICAgICByZXR1cm4gMDsK IH0KIApAQCAtMTI3NywxMSArMTMzMSwyMCBAQCBzdGF0aWMgdm9pZCBwc3JfY3B1X2luaXQodm9p ZCkKICAgICB7CiAgICAgICAgIGNwdWlkX2NvdW50X2xlYWYoUFNSX0NQVUlEX0xFVkVMX0NBVCwg MSwgJnJlZ3MpOwogCi0gICAgICAgIGZlYXQgPSBmZWF0X2wzX2NhdDsKLSAgICAgICAgZmVhdF9s M19jYXQgPSBOVUxMOwotCi0gICAgICAgIGlmICggIWNhdF9pbml0X2ZlYXR1cmUoJnJlZ3MsIGZl YXQsIGluZm8sIEZFQVRfVFlQRV9MM19DQVQpICkKLSAgICAgICAgICAgIGZlYXRfcHJvcHNbRkVB VF9UWVBFX0wzX0NBVF0gPSAmbDNfY2F0X3Byb3BzOworICAgICAgICBpZiAoIChyZWdzLmMgJiBQ U1JfQ0FUX0NEUF9DQVBBQklMSVRZKSAmJiAob3B0X3BzciAmIFBTUl9DRFApICkKKyAgICAgICAg eworICAgICAgICAgICAgZmVhdCA9IGZlYXRfbDNfY2RwOworICAgICAgICAgICAgZmVhdF9sM19j ZHAgPSBOVUxMOworICAgICAgICAgICAgaWYgKCAhY2F0X2luaXRfZmVhdHVyZSgmcmVncywgZmVh dCwgaW5mbywgRkVBVF9UWVBFX0wzX0NEUCkgKQorICAgICAgICAgICAgICAgIGZlYXRfcHJvcHNb RkVBVF9UWVBFX0wzX0NEUF0gPSAmbDNfY2RwX3Byb3BzOworICAgICAgICB9CisgICAgICAgIGVs c2UKKyAgICAgICAgeworICAgICAgICAgICAgZmVhdCA9IGZlYXRfbDNfY2F0OworICAgICAgICAg ICAgZmVhdF9sM19jYXQgPSBOVUxMOworICAgICAgICAgICAgaWYgKCAhY2F0X2luaXRfZmVhdHVy ZSgmcmVncywgZmVhdCwgaW5mbywgRkVBVF9UWVBFX0wzX0NBVCkgKQorICAgICAgICAgICAgICAg IGZlYXRfcHJvcHNbRkVBVF9UWVBFX0wzX0NBVF0gPSAmbDNfY2F0X3Byb3BzOworICAgICAgICB9 CiAgICAgfQogCiAgICAgaW5mby0+ZmVhdF9pbml0ID0gdHJ1ZTsKQEAgLTEzNDMsNyArMTQwNiw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IHBzcl9wcmVzbXBfaW5pdCh2b2lkKQogICAgIGlmICggKG9w dF9wc3IgJiBQU1JfQ01UKSAmJiBvcHRfcm1pZF9tYXggKQogICAgICAgICBpbml0X3Bzcl9jbXQo b3B0X3JtaWRfbWF4KTsKIAotICAgIGlmICggb3B0X3BzciAmIFBTUl9DQVQgKQorICAgIGlmICgg b3B0X3BzciAmIChQU1JfQ0FUIHwgUFNSX0NEUCkgKQogICAgICAgICBpbml0X3BzcigpOwogCiAg ICAgaWYgKCBwc3JfY3B1X3ByZXBhcmUoKSApCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=