From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v6 12/12] microcode: update microcode on cores in parallel Date: Mon, 11 Mar 2019 15:57:36 +0800 Message-ID: <1552291056-20286-13-git-send-email-chao.gao@intel.com> References: <1552291056-20286-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h3Fl4-00041o-5O for xen-devel@lists.xenproject.org; Mon, 11 Mar 2019 07:54:02 +0000 In-Reply-To: <1552291056-20286-1-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Sergey Dyasli , Wei Liu , Ashok Raj , Andrew Cooper , Jan Beulich , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org bWljcm9jb2RlX3VwZGF0ZV9sb2NrIGFuZCBtaWNyb2NvZGVfbXV0ZXggcHJldmVudCBjb3JlcyBm cm9tIHVwZGF0aW5nCm1pY3JvY29kZSBpbiBwYXJhbGxlbC4gQmVsb3cgY2hhbmdlcyBhcmUgbWFk ZSB0byBzdXBwb3J0IHBhcmFsbGVsCm1pY3JvY29kZSB1cGRhdGUgb24gY29yZXMuCgptaWNyb2Nv ZGVfdXBkYXRlX2xvY2sgaXMgcmVtb3ZlZC4gVGhpcyBsb2NrIHdhcyB0byBwcmV2ZW50IGxvZ2lj IHRocmVhZHMKb2YgYSBzYW1lIGNvcmUgZnJvbSB1cGRhdGluZyBtaWNyb2NvZGUgYXQgdGhlIHNh bWUgdGltZS4gQnV0IGR1ZSB0bwp1c2luZyBhIGdsb2JhbCBsb2NrLCBpdCBhbHNvIHByZXZlbnRl ZCBwYXJhbGxlbCBtaWNyb2NvZGUgdXBkYXRpbmcgb24KZGlmZmVyZW50IGNvcmVzLiBXZSBlbnN1 cmUgdGhlIHNpYmxpbmdzIG9mIGEgc2FtZSBjb3JlIHdvbid0IHVwZGF0ZQptaWNyb2NvZGUgYXQg dGhlIGNhbGxlciBsZXZlbCBvZiBhcHBseV9taWNyb2NvZGUoKSBpbnN0ZWFkIG9mIGluc2lkZQpp dDoKMS4gRm9yIGxhdGUgbWljcm9jb2RlIHVwZGF0ZSwgZG9fbWljcm9jb2RlX3VwZGF0ZSgpIGVu c3VyZXMgdGhhdCBvbmx5Cm9uZSBzaWJpbGluZyB0aHJlYWQgb2YgYSBjb3JlIGNhbiB1cGRhdGUg bWljcm9jb2RlLgoyLiBGb3IgbWljcm9jb2RlIHVwZGF0ZSBkdXJpbmcgc3lzdGVtIHN0YXJ0dXAg b3IgQ1BVLWhvdHBsdWcsIHRoZSBuZXcKZWFybHlfdWNvZGVfdXBkYXRlX2xvY2soKSBjYW4gZ3Vh cmFudGVlIHVwZGF0ZSBzZXJpYWxpemF0aW9uIG9mIGxvZ2ljYWwKdGhyZWFkcy4gV2UgdXNlIHRo aXMgc3ViLW9wdGltYWwgbWV0aG9kIGJlY2F1c2UgaXQgaXMgaGFyZCB0byBpbXBsZW1lbnQgYQpw ZXItY29yZSBsb2NrIGF0IHRoYXQgZWFybHkgc3RhZ2Ugd2hlcmUgc2libGluZyBpbmZvIGlzbid0 IGluaXRpYWxpemVkIHlldC4KMy4gZ2V0L3B1dF9jcHVfYml0bWFwcygpIHByZXZlbnRzIHRoZSBj b25jdXJyZW5jeSBvZiBDUFUtaG90cGx1ZyBhbmQKbGF0ZSBtaWNyb2NvZGUgdXBkYXRlLgoKbWlj cm9jb2RlX211dGV4IGlzIHJlcGxhY2VkIGJ5IGEgcndsb2NrLiBtaWNyb2NvZGVfbXV0ZXggd2Fz IHVzZWQgdG8KcHJldmVudCBjb25jdXJyZW50IGFjY2Vzc2VzIHRvICd1Y2knIChhbHJlYWR5IHJl bW92ZWQgaW4gcHJldmlvdXMgcGF0Y2gpCmFuZCBtaWNyb2NvZGVfY2FjaGUuIE5vdyB0aGUgb25s eSBzaGFyZWQgcmVzb3VyY2Ugd2hpY2ggbmVlZHMgdG8gYmUKcHJvdGVjdGVkIGlzIHRoZSBtaWNy b2NvZGVfY2FjaGUuIEEgcndsb2NrIGFsbG93cyBtdWx0aXBsZSByZWFkZXJzIChvbmUKdGhyZWFk IG9mIGVhY2ggY29yZSkgdG8gYWNjZXNzIHRoZSBnbG9iYWwgY2FjaGUgYW5kIHVwZGF0ZSBtaWNy b2NvZGUKc2ltdWx0YW5lb3VzbHkuIEJlY2F1c2UgdGhlIHJ3bG9jayBtYXkgYmUgaGVsZCBpbiBz dG9wX21hY2hpbmUgY29udGV4dCwKd2hlcmUgaW50ZXJydXB0IGlzIGRpc2FibGVkLCBpcnF7c2F2 ZSwgcmVzdG9yZX0gdmFyaWFudHMgYXJlIHVzZWQgdG8KZ2V0L3JlbGVhc2UgdGhlIHJ3bG9jay4K Ck5vdGUgdGhhdCBwcmludGsgaW4gYXBwbHlfbWljcm9jb2RlKCkgYW5kIHN2bV9ob3N0X29zdm1f aW5pdCgpIChmb3IgQU1ECm9ubHkpIGFyZSBzdGlsbCBwcm9jZXNzZWQgc2VxdWVudGlhbGx5LgoK U2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KLS0tCkNoYW5nZXMg aW4gdjY6CiAtIGludHJvZHVjZSBlYXJseV91Y29kZV91cGRhdGVfbG9jayB0byBzZXJpYWxpemUg ZWFybHkgdWNvZGUgdXBkYXRlLgoKQ2hhbmdlcyBpbiB2NToKIC0gbmV3bHkgYWRkCi0tLQogeGVu L2FyY2gveDg2L21pY3JvY29kZS5jICAgICAgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jICAgfCAgOCAr LS0tLS0KIHhlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYyB8ICA5ICstLS0tLQogMyBmaWxl cyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKaW5k ZXggOTZiY2VmNi4uZTdkZjcwZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21pY3JvY29kZS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwpAQCAtMjA0LDcgKzIwNCw5IEBAIHNjYW46 CiAKIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfb3BzICptaWNyb2NvZGVfb3BzOwogCi1zdGF0aWMg REVGSU5FX1NQSU5MT0NLKG1pY3JvY29kZV9tdXRleCk7CitzdGF0aWMgREVGSU5FX1JXTE9DSyhj YWNoZV9yd2xvY2spOworLyogSG9sZCB0aGlzIGxvY2sgZHVyaW5nIGVhcmx5IG1pY3JvY29kZSB1 cGRhdGUgICovCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGVhcmx5X3Vjb2RlX3VwZGF0ZV9sb2Nr KTsKIAogREVGSU5FX1BFUl9DUFUoc3RydWN0IGNwdV9zaWduYXR1cmUsIGNwdV9zaWcpOwogCkBA IC0yMjQsNDAgKzIyNiw0NyBAQCBzdGF0aWMgYXRvbWljX3QgY3B1X2luLCBjcHVfb3V0OwogICov CiBib29sIG1pY3JvY29kZV9zYXZlX3BhdGNoKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm5ldykK IHsKLSAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpvbGQ7CisgICAgc3RydWN0IG1pY3JvY29k ZV9wYXRjaCAqb2xkLCAqZnJlZSA9IE5VTEw7CisgICAgZW51bSBtaWNyb2NvZGVfbWF0Y2hfcmVz dWx0IHJlc3VsdCA9IE1JU19VQ09ERTsKKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0gICAg QVNTRVJUKHNwaW5faXNfbG9ja2VkKCZtaWNyb2NvZGVfbXV0ZXgpKTsKKyAgICB3cml0ZV9sb2Nr X2lycXNhdmUoJmNhY2hlX3J3bG9jaywgZmxhZ3MpOwogCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRy eShvbGQsICZtaWNyb2NvZGVfY2FjaGUsIGxpc3QpCiAgICAgewotICAgICAgICBlbnVtIG1pY3Jv Y29kZV9tYXRjaF9yZXN1bHQgcmVzdWx0ID0KLSAgICAgICAgICAgIG1pY3JvY29kZV9vcHMtPmNv bXBhcmVfcGF0Y2gobmV3LCBvbGQpOworICAgICAgICByZXN1bHQgPSBtaWNyb2NvZGVfb3BzLT5j b21wYXJlX3BhdGNoKG5ldywgb2xkKTsKIAogICAgICAgICBpZiAoIHJlc3VsdCA9PSBPTERfVUNP REUgKQogICAgICAgICB7Ci0gICAgICAgICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3BhdGNoKG5l dyk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmcmVlID0gbmV3Owor ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIHJlc3VsdCA9 PSBORVdfVUNPREUgKQogICAgICAgICB7CiAgICAgICAgICAgICBsaXN0X3JlcGxhY2UoJm9sZC0+ bGlzdCwgJm5ldy0+bGlzdCk7Ci0gICAgICAgICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3BhdGNo KG9sZCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGZyZWUgPSBvbGQ7 CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBlbHNlIC8qIHJlc3VsdCA9 PSBNSVNfVUNPREUgKi8KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgIH0KIAotICAgIGlmICgg bWljcm9jb2RlX29wcy0+aXNfcGF0Y2hfY29tcGF0aWJsZSAmJgotICAgICAgICAgIW1pY3JvY29k ZV9vcHMtPmlzX3BhdGNoX2NvbXBhdGlibGUobmV3KSApCisgICAgaWYgKCByZXN1bHQgPT0gTUlT X1VDT0RFICkKICAgICB7Ci0gICAgICAgIHhmcmVlKG5ldyk7Ci0gICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgaWYgKCBtaWNyb2NvZGVfb3BzLT5pc19wYXRjaF9jb21wYXRpYmxlICYmCisg ICAgICAgICAgICAgIW1pY3JvY29kZV9vcHMtPmlzX3BhdGNoX2NvbXBhdGlibGUobmV3KSApCisg ICAgICAgICAgICBmcmVlID0gbmV3OworICAgICAgICBlbHNlCisgICAgICAgICAgICBsaXN0X2Fk ZF90YWlsKCZuZXctPmxpc3QsICZtaWNyb2NvZGVfY2FjaGUpOwogICAgIH0KIAotICAgIGxpc3Rf YWRkX3RhaWwoJm5ldy0+bGlzdCwgJm1pY3JvY29kZV9jYWNoZSk7CisgICAgd3JpdGVfdW5sb2Nr X2lycXJlc3RvcmUoJmNhY2hlX3J3bG9jaywgZmxhZ3MpOworCisgICAgLyogZnJlZSB1c2VsZXNz IHBhdGNoZXMgYWZ0ZXIgaW50ZXJydXB0IGVuYWJsZWQgKi8KKyAgICBpZiAoIGZyZWUgKQorICAg ICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3BhdGNoKGZyZWUpOwogCi0gICAgcmV0dXJuIHRydWU7 CisgICAgcmV0dXJuIGZyZWUgIT0gbmV3OwogfQogCiAvKgpAQCAtMjY5LDggKzI3OCw2IEBAIGNv bnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9maW5kX3BhdGNoKHZvaWQpCiB7 CiAgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqbWljcm9jb2RlX3BhdGNoOwogCi0g ICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZtaWNyb2NvZGVfbXV0ZXgpKTsKLQogICAgIGxpc3Rf Zm9yX2VhY2hfZW50cnkobWljcm9jb2RlX3BhdGNoLCAmbWljcm9jb2RlX2NhY2hlLCBsaXN0KQog ICAgIHsKICAgICAgICAgaWYgKCBtaWNyb2NvZGVfb3BzLT5tYXRjaF9jcHUobWljcm9jb2RlX3Bh dGNoKSApCkBAIC0yODgsMTEgKzI5NSw5IEBAIHN0YXRpYyBpbnQgbWljcm9jb2RlX3BhcnNlX2Js b2IoY2hhciAqYnVmLCB1aW50MzJfdCBsZW4pCiB7CiAgICAgaW50IHJldDsKIAotICAgIHNwaW5f bG9jaygmbWljcm9jb2RlX211dGV4KTsKICAgICByZXQgPSBtaWNyb2NvZGVfb3BzLT5jb2xsZWN0 X2NwdV9pbmZvKCZ0aGlzX2NwdShjcHVfc2lnKSk7CiAgICAgaWYgKCBsaWtlbHkoIXJldCkgKQog ICAgICAgICByZXQgPSBtaWNyb2NvZGVfb3BzLT5jcHVfcmVxdWVzdF9taWNyb2NvZGUoYnVmLCBs ZW4pOwotICAgIHNwaW5fdW5sb2NrKCZtaWNyb2NvZGVfbXV0ZXgpOwogCiAgICAgcmV0dXJuIHJl dDsKIH0KQEAgLTMwMCwxMiArMzA1LDE1IEBAIHN0YXRpYyBpbnQgbWljcm9jb2RlX3BhcnNlX2Js b2IoY2hhciAqYnVmLCB1aW50MzJfdCBsZW4pCiBzdGF0aWMgaW50IG1pY3JvY29kZV91cGRhdGVf Y3B1KHZvaWQpCiB7CiAgICAgaW50IHJldDsKKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0g ICAgc3Bpbl9sb2NrKCZtaWNyb2NvZGVfbXV0ZXgpOwogICAgIHJldCA9IG1pY3JvY29kZV9vcHMt PmNvbGxlY3RfY3B1X2luZm8oJnRoaXNfY3B1KGNwdV9zaWcpKTsKLSAgICBpZiAoIGxpa2VseSgh cmV0KSApCi0gICAgICAgIHJldCA9IG1pY3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZSgpOwot ICAgIHNwaW5fdW5sb2NrKCZtaWNyb2NvZGVfbXV0ZXgpOworICAgIGlmICggdW5saWtlbHkocmV0 KSApCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZWFkX2xvY2tfaXJxc2F2ZSgmY2FjaGVf cndsb2NrLCBmbGFncyk7CisgICAgcmV0ID0gbWljcm9jb2RlX29wcy0+YXBwbHlfbWljcm9jb2Rl KCk7CisgICAgcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmY2FjaGVfcndsb2NrLCBmbGFncyk7CiAK ICAgICByZXR1cm4gcmV0OwogfQpAQCAtNDkzLDcgKzUwMSwxNiBAQCBfX2luaXRjYWxsKG1pY3Jv Y29kZV9pbml0KTsKIAogaW50IGVhcmx5X21pY3JvY29kZV91cGRhdGVfY3B1KHZvaWQpCiB7Ci0g ICAgcmV0dXJuIG1pY3JvY29kZV9vcHMgPyBtaWNyb2NvZGVfdXBkYXRlX2NwdSgpIDogMDsKKyAg ICBpbnQgcmM7CisKKyAgICBpZiAoICFtaWNyb2NvZGVfb3BzICkKKyAgICAgICAgcmV0dXJuIDA7 CisKKyAgICBzcGluX2xvY2soJmVhcmx5X3Vjb2RlX3VwZGF0ZV9sb2NrKTsKKyAgICByYyA9IG1p Y3JvY29kZV91cGRhdGVfY3B1KCk7CisgICAgc3Bpbl91bmxvY2soJmVhcmx5X3Vjb2RlX3VwZGF0 ZV9sb2NrKTsKKworICAgIHJldHVybiByYzsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9taWNyb2NvZGVfYW1kLmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCmluZGV4 IDVjMjVmZjIuLjRhYThmZGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1k LmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYwpAQCAtNzQsOSArNzQsNiBAQCBz dHJ1Y3QgbXBiaGRyIHsKICAgICB1aW50OF90IGRhdGFbXTsKIH07CiAKLS8qIHNlcmlhbGl6ZSBh Y2Nlc3MgdG8gdGhlIHBoeXNpY2FsIHdyaXRlICovCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1p Y3JvY29kZV91cGRhdGVfbG9jayk7Ci0KIC8qIFNlZSBjb21tZW50IGluIHN0YXJ0X3VwZGF0ZSgp IGZvciBjYXNlcyB3aGVuIHRoaXMgcm91dGluZSBmYWlscyAqLwogc3RhdGljIGludCBjb2xsZWN0 X2NwdV9pbmZvKHN0cnVjdCBjcHVfc2lnbmF0dXJlICpjc2lnKQogewpAQCAtMjUxLDcgKzI0OCw2 IEBAIHN0YXRpYyBlbnVtIG1pY3JvY29kZV9tYXRjaF9yZXN1bHQgY29tcGFyZV9wYXRjaCgKIAog c3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodm9pZCkKIHsKLSAgICB1bnNpZ25lZCBsb25nIGZs YWdzOwogICAgIHVpbnQzMl90IHJldjsKICAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRl cl9hbWQgKmhkcjsKICAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaDsKQEAg LTI2NSwxNSArMjYxLDEzIEBAIHN0YXRpYyBpbnQgYXBwbHlfbWljcm9jb2RlKHZvaWQpCiAKICAg ICBoZHIgPSBwYXRjaC0+ZGF0YTsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZtaWNyb2NvZGVf dXBkYXRlX2xvY2ssIGZsYWdzKTsKKyAgICBCVUdfT04obG9jYWxfaXJxX2lzX2VuYWJsZWQoKSk7 CiAKICAgICBod19lcnIgPSB3cm1zcl9zYWZlKE1TUl9BTURfUEFUQ0hMT0FERVIsICh1bnNpZ25l ZCBsb25nKWhkcik7CiAKICAgICAvKiBnZXQgcGF0Y2ggaWQgYWZ0ZXIgcGF0Y2hpbmcgKi8KICAg ICByZG1zcmwoTVNSX0FNRF9QQVRDSExFVkVMLCByZXYpOwogCi0gICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmbWljcm9jb2RlX3VwZGF0ZV9sb2NrLCBmbGFncyk7Ci0KICAgICAvKgogICAgICAq IFNvbWUgcHJvY2Vzc29ycyBsZWF2ZSB0aGUgdWNvZGUgYmxvYiBtYXBwaW5nIGFzIFVDIGFmdGVy IHRoZSB1cGRhdGUuCiAgICAgICogRmx1c2ggdGhlIG1hcHBpbmcgdG8gcmVnYWluIG5vcm1hbCBj YWNoZWFiaWxpdHkuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMg Yi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMKaW5kZXggZDVlZjE0NS4uNTZmMzk1NiAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jCisrKyBiL3hlbi9hcmNo L3g4Ni9taWNyb2NvZGVfaW50ZWwuYwpAQCAtOTUsOSArOTUsNiBAQCBzdHJ1Y3QgZXh0ZW5kZWRf c2lndGFibGUgewogCiAjZGVmaW5lIFNURVBQSU5HX01BU0sgfjB4ZlUKIAotLyogc2VyaWFsaXpl IGFjY2VzcyB0byB0aGUgcGh5c2ljYWwgd3JpdGUgdG8gTVNSIDB4NzkgKi8KLXN0YXRpYyBERUZJ TkVfU1BJTkxPQ0sobWljcm9jb2RlX3VwZGF0ZV9sb2NrKTsKLQogc3RhdGljIGludCBjb2xsZWN0 X2NwdV9pbmZvKHN0cnVjdCBjcHVfc2lnbmF0dXJlICpjc2lnKQogewogICAgIHVuc2lnbmVkIGlu dCBjcHVfbnVtID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwpAQCAtMzM0LDcgKzMzMSw2IEBAIHN0YXRp YyBpbnQgZ2V0X21hdGNoaW5nX21pY3JvY29kZShjb25zdCB2b2lkICptYywgdW5zaWduZWQgaW50 IGNwdSkKIAogc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodm9pZCkKIHsKLSAgICB1bnNpZ25l ZCBsb25nIGZsYWdzOwogICAgIHVpbnQ2NF90IG1zcl9jb250ZW50OwogICAgIHVuc2lnbmVkIGlu dCB2YWxbMl07CiAgICAgdW5zaWduZWQgaW50IGNwdV9udW0gPSByYXdfc21wX3Byb2Nlc3Nvcl9p ZCgpOwpAQCAtMzQ3LDkgKzM0Myw3IEBAIHN0YXRpYyBpbnQgYXBwbHlfbWljcm9jb2RlKHZvaWQp CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgbWNfaW50ZWwgPSBwYXRjaC0+ZGF0YTsK LQotICAgIC8qIHNlcmlhbGl6ZSBhY2Nlc3MgdG8gdGhlIHBoeXNpY2FsIHdyaXRlIHRvIE1TUiAw eDc5ICovCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxh Z3MpOworICAgIEJVR19PTihsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsKIAogICAgIC8qCiAgICAg ICogV3JpdGViYWNrIGFuZCBpbnZhbGlkYXRlIGNhY2hlcyBiZWZvcmUgdXBkYXRpbmcgbWljcm9j b2RlIHRvIGF2b2lkCkBAIC0zNjgsNyArMzYyLDYgQEAgc3RhdGljIGludCBhcHBseV9taWNyb2Nv ZGUodm9pZCkKICAgICByZG1zcmwoTVNSX0lBMzJfVUNPREVfUkVWLCBtc3JfY29udGVudCk7CiAg ICAgdmFsWzFdID0gKHVpbnQzMl90KShtc3JfY29udGVudCA+PiAzMik7CiAKLSAgICBzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZtaWNyb2NvZGVfdXBkYXRlX2xvY2ssIGZsYWdzKTsKICAgICBpZiAo IHZhbFsxXSAhPSBtY19pbnRlbC0+aGRyLnJldiApCiAgICAgewogICAgICAgICBwcmludGsoS0VS Tl9FUlIgIm1pY3JvY29kZTogQ1BVJWQgdXBkYXRlIGZyb20gcmV2aXNpb24gIgotLSAKMS44LjMu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=