From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ross Lagerwall Subject: [PATCH] x86: Move microcode loading earlier Date: Tue, 18 Apr 2017 16:47:24 +0100 Message-ID: <1492530444-3900-1-git-send-email-ross.lagerwall@citrix.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 1d0VMC-0007nI-QY for xen-devel@lists.xenproject.org; Tue, 18 Apr 2017 15:47:56 +0000 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: Sergey Dyasli , Andrew Cooper , Jan Beulich , Ross Lagerwall List-Id: xen-devel@lists.xenproject.org TW92ZSBtaWNyb2NvZGUgbG9hZGluZyBlYXJsaWVyIGZvciB0aGUgYm9vdCBDUFUgYW5kIHNlY29u ZGFyeSBDUFVzIHNvCnRoYXQgaXQgdGFrZXMgcGxhY2UgYmVmb3JlIGlkZW50aWZ5X2NwdSgpIGlz IGNhbGxlZCBmb3IgZWFjaCBDUFUuCldpdGhvdXQgdGhpcywgdGhlIGRldGVjdGVkIGZlYXR1cmVz IG1heSBiZSB3cm9uZyBpZiB0aGUgbmV3IG1pY3JvY29kZQpsb2FkaW5nIGFkanVzdHMgdGhlIGZl YXR1cmUgYml0cy4gVGhhdCBjb3VsZCBtZWFuIHRoYXQgc29tZSBmaXhlcyAoZS5nLgpkNmU5Zjhk NGYzNWQgKCJ4ODYvdm14OiBmaXggdm1lbnRyeSBmYWlsdXJlIHdpdGggVFNYIGJpdHMgaW4gTEJS IikpCmRvbid0IHdvcmsgYXMgZXhwZWN0ZWQuCgpQcmV2aW91c2x5IGR1cmluZyBib290LCB0aGUg bWljcm9jb2RlIGxvYWRlciB3YXMgaW52b2tlZCBmb3IgZWFjaApzZWNvbmRhcnkgQ1BVIHN0YXJ0 ZWQgYW5kIHRoZW4gYWdhaW4gZm9yIGVhY2ggQ1BVIGFzIHBhcnQgb2YgYW4KaW5pdGNhbGwuIFNp bXBsaWZ5IHRoZSBjb2RlIHNvIHRoYXQgaXQgaXMgaW52b2tlZCBleGFjdGx5IG9uY2UgZm9yIGVh Y2gKQ1BVIGR1cmluZyBib290LgoKU2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3Mu bGFnZXJ3YWxsQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyAgICAg ICB8ICAgMiArCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgICAgICAgIHwgMTMxICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9taWNyb2NvZGVf YW1kLmMgICAgfCAgIDMgKy0KIHhlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYyAgfCAgIDMg Ky0KIHhlbi9hcmNoL3g4Ni9zZXR1cC5jICAgICAgICAgICAgfCAgIDIgKwogeGVuL2FyY2gveDg2 L3NtcGJvb3QuYyAgICAgICAgICB8ICAzMyArKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2 L3Byb2Nlc3Nvci5oIHwgICA0ICsrCiB4ZW4vaW5jbHVkZS94ZW4vc21wLmggICAgICAgICAgIHwg ICAyICsKIDggZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKSwgOTUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9j cHUvY29tbW9uLmMKaW5kZXggOWM0NGJiZC4uNmMyNzAwOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2NwdS9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCkBAIC0yNTIs NiArMjUyLDggQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X2NwdV9kZXRlY3Qodm9pZCkKIAkJ aWYgKGhhcF9wYWRkcl9iaXRzID4gUEFERFJfQklUUykKIAkJCWhhcF9wYWRkcl9iaXRzID0gUEFE RFJfQklUUzsKIAl9CisKKwlpbml0aWFsaXplX2NwdV9kYXRhKDApOwogfQogCiBzdGF0aWMgdm9p ZCBnZW5lcmljX2lkZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwppbmRleCAz MGEwODA2Li5iYjJmNDMxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKKysr IGIveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCkBAIC00Myw3ICs0Myw2IEBAIHN0YXRpYyBtb2R1 bGVfdCBfX2luaXRkYXRhIHVjb2RlX21vZDsKIHN0YXRpYyB2b2lkICooKl9faW5pdGRhdGEgdWNv ZGVfbW9kX21hcCkoY29uc3QgbW9kdWxlX3QgKik7CiBzdGF0aWMgc2lnbmVkIGludCBfX2luaXRk YXRhIHVjb2RlX21vZF9pZHg7CiBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgdWNvZGVfbW9kX2Zv cmNlZDsKLXN0YXRpYyBjcHVtYXNrX3QgX19pbml0ZGF0YSBpbml0X21hc2s7CiAKIC8qCiAgKiBJ ZiB3ZSBzY2FuIHRoZSBpbml0cmFtZnMuY3BpbyBmb3IgdGhlIGVhcmx5IG1pY3JvY29kZSBjb2Rl CkBAIC0zNDEsNTAgKzM0MCwyMyBAQCBpbnQgbWljcm9jb2RlX3VwZGF0ZShYRU5fR1VFU1RfSEFO RExFX1BBUkFNKGNvbnN0X3ZvaWQpIGJ1ZiwgdW5zaWduZWQgbG9uZyBsZW4pCiAgICAgcmV0dXJu IGNvbnRpbnVlX2h5cGVyY2FsbF9vbl9jcHUoaW5mby0+Y3B1LCBkb19taWNyb2NvZGVfdXBkYXRl LCBpbmZvKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IF9kb19taWNyb2NvZGVfdXBkYXRlKHVu c2lnbmVkIGxvbmcgZGF0YSkKLXsKLSAgICB2b2lkICpfZGF0YSA9ICh2b2lkICopZGF0YTsKLSAg ICBzaXplX3QgbGVuID0gdWNvZGVfYmxvYi5zaXplID8gdWNvZGVfYmxvYi5zaXplIDogdWNvZGVf bW9kLm1vZF9lbmQ7Ci0KLSAgICBtaWNyb2NvZGVfdXBkYXRlX2NwdShfZGF0YSwgbGVuKTsKLSAg ICBjcHVtYXNrX3NldF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpLCAmaW5pdF9tYXNrKTsKLX0KLQog c3RhdGljIGludCBfX2luaXQgbWljcm9jb2RlX2luaXQodm9pZCkKIHsKLSAgICB2b2lkICpkYXRh OwotICAgIHN0YXRpYyBzdHJ1Y3QgdGFza2xldCBfX2luaXRkYXRhIHRhc2tsZXQ7Ci0gICAgdW5z aWduZWQgaW50IGNwdTsKLQotICAgIGlmICggIW1pY3JvY29kZV9vcHMgKQotICAgICAgICByZXR1 cm4gMDsKLQotICAgIGlmICggIXVjb2RlX21vZC5tb2RfZW5kICYmICF1Y29kZV9ibG9iLnNpemUg KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGRhdGEgPSB1Y29kZV9ibG9iLnNpemUgPyB1Y29k ZV9ibG9iLmRhdGEgOiB1Y29kZV9tb2RfbWFwKCZ1Y29kZV9tb2QpOwotCi0gICAgaWYgKCAhZGF0 YSApCi0gICAgICAgIHJldHVybiAtRU5PTUVNOwotCi0gICAgaWYgKCBtaWNyb2NvZGVfb3BzLT5z dGFydF91cGRhdGUgJiYgbWljcm9jb2RlX29wcy0+c3RhcnRfdXBkYXRlKCkgIT0gMCApCi0gICAg ICAgIGdvdG8gb3V0OwotCi0gICAgc29mdGlycV90YXNrbGV0X2luaXQoJnRhc2tsZXQsIF9kb19t aWNyb2NvZGVfdXBkYXRlLCAodW5zaWduZWQgbG9uZylkYXRhKTsKLQotICAgIGZvcl9lYWNoX29u bGluZV9jcHUgKCBjcHUgKQorICAgIC8qCisgICAgICogQXQgdGhpcyBwb2ludCwgYWxsIENQVXMg c2hvdWxkIGhhdmUgdXBkYXRlZCB0aGVpciBtaWNyb2NvZGUKKyAgICAgKiB2aWEgdGhlIGVhcmx5 X21pY3JvY29kZV8qIHBhdGhzIHNvIGZyZWUgdGhlIG1pY3JvY29kZSBibG9iLgorICAgICAqLwor ICAgIGlmICggdWNvZGVfYmxvYi5zaXplICkKICAgICB7Ci0gICAgICAgIHRhc2tsZXRfc2NoZWR1 bGVfb25fY3B1KCZ0YXNrbGV0LCBjcHUpOwotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBwcm9j ZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKLSAgICAgICAgfSB3aGlsZSAoICFjcHVtYXNrX3Rlc3Rf Y3B1KGNwdSwgJmluaXRfbWFzaykgKTsKKyAgICAgICAgeGZyZWUodWNvZGVfYmxvYi5kYXRhKTsK KyAgICAgICAgdWNvZGVfYmxvYi5zaXplID0gMDsKKyAgICAgICAgdWNvZGVfYmxvYi5kYXRhID0g TlVMTDsKICAgICB9Ci0KLW91dDoKLSAgICBpZiAoIHVjb2RlX2Jsb2Iuc2l6ZSApCi0gICAgICAg IHhmcmVlKGRhdGEpOwotICAgIGVsc2UKKyAgICBlbHNlIGlmICggdWNvZGVfbW9kLm1vZF9lbmQg KQorICAgIHsKICAgICAgICAgdWNvZGVfbW9kX21hcChOVUxMKTsKKyAgICAgICAgdWNvZGVfbW9k Lm1vZF9lbmQgPSAwOworICAgIH0KIAogICAgIHJldHVybiAwOwogfQpAQCAtNDA5LDUwICszODEs NTUgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBtaWNyb2NvZGVfcGVyY3B1X25mYiA9 IHsKICAgICAubm90aWZpZXJfY2FsbCA9IG1pY3JvY29kZV9wZXJjcHVfY2FsbGJhY2ssCiB9Owog Ci1zdGF0aWMgaW50IF9faW5pdCBtaWNyb2NvZGVfcHJlc21wX2luaXQodm9pZCkKK2ludCBfX2lu aXQgZWFybHlfbWljcm9jb2RlX3VwZGF0ZV9jcHUoYm9vbF90IHN0YXJ0X3VwZGF0ZSkKK3sKKyAg ICBpbnQgcmMgPSAwOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworICAgIHNpemVfdCBsZW47CisK KyAgICBpZiAoIHVjb2RlX2Jsb2Iuc2l6ZSApCisgICAgeworICAgICAgICBsZW4gPSB1Y29kZV9i bG9iLnNpemU7CisgICAgICAgIGRhdGEgPSB1Y29kZV9ibG9iLmRhdGE7CisgICAgfQorICAgIGVs c2UgaWYgKCB1Y29kZV9tb2QubW9kX2VuZCApCisgICAgeworICAgICAgICBsZW4gPSB1Y29kZV9t b2QubW9kX2VuZDsKKyAgICAgICAgZGF0YSA9IHVjb2RlX21vZF9tYXAoJnVjb2RlX21vZCk7Cisg ICAgfQorICAgIGlmICggZGF0YSApCisgICAgeworICAgICAgICBpZiAoIHN0YXJ0X3VwZGF0ZSAm JiBtaWNyb2NvZGVfb3BzLT5zdGFydF91cGRhdGUgKQorICAgICAgICAgICAgcmMgPSBtaWNyb2Nv ZGVfb3BzLT5zdGFydF91cGRhdGUoKTsKKworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAg IHJldHVybiByYzsKKworICAgICAgICByZXR1cm4gbWljcm9jb2RlX3VwZGF0ZV9jcHUoZGF0YSwg bGVuKTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICByZXR1cm4gLUVOT01FTTsKK30KKworaW50 IF9faW5pdCBlYXJseV9taWNyb2NvZGVfaW5pdCh2b2lkKQogeworICAgIGludCByYzsKKworICAg IHJjID0gbWljcm9jb2RlX2luaXRfaW50ZWwoKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0 dXJuIHJjOworCisgICAgcmMgPSBtaWNyb2NvZGVfaW5pdF9hbWQoKTsKKyAgICBpZiAoIHJjICkK KyAgICAgICAgcmV0dXJuIHJjOworCiAgICAgaWYgKCBtaWNyb2NvZGVfb3BzICkKICAgICB7CiAg ICAgICAgIGlmICggdWNvZGVfbW9kLm1vZF9lbmQgfHwgdWNvZGVfYmxvYi5zaXplICkKLSAgICAg ICAgewotICAgICAgICAgICAgdm9pZCAqZGF0YTsKLSAgICAgICAgICAgIHNpemVfdCBsZW47Ci0g ICAgICAgICAgICBpbnQgcmMgPSAwOwotCi0gICAgICAgICAgICBpZiAoIHVjb2RlX2Jsb2Iuc2l6 ZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGVuID0gdWNvZGVfYmxvYi5zaXpl OwotICAgICAgICAgICAgICAgIGRhdGEgPSB1Y29kZV9ibG9iLmRhdGE7Ci0gICAgICAgICAgICB9 Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGVuID0g dWNvZGVfbW9kLm1vZF9lbmQ7Ci0gICAgICAgICAgICAgICAgZGF0YSA9IHVjb2RlX21vZF9tYXAo JnVjb2RlX21vZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIGRhdGEgKQotICAg ICAgICAgICAgICAgIHJjID0gbWljcm9jb2RlX3VwZGF0ZV9jcHUoZGF0YSwgbGVuKTsKLSAgICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYyA9IC1FTk9NRU07Ci0KLSAgICAgICAgICAg IGlmICggIXVjb2RlX2Jsb2Iuc2l6ZSApCi0gICAgICAgICAgICAgICAgdWNvZGVfbW9kX21hcChO VUxMKTsKLQotICAgICAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgaWYgKCB1Y29kZV9ibG9iLnNpemUgKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICAgICAgeGZyZWUodWNvZGVfYmxvYi5kYXRhKTsKLSAgICAgICAgICAgICAgICAgICAg dWNvZGVfYmxvYi5zaXplID0gMDsKLSAgICAgICAgICAgICAgICAgICAgdWNvZGVfYmxvYi5kYXRh ID0gTlVMTDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgICAgICAgICB1Y29kZV9tb2QubW9kX2VuZCA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgIH0KKyAgICAgICAgICAgIHJjID0gZWFybHlfbWljcm9jb2RlX3VwZGF0ZV9jcHUodHJ1ZSk7 CiAKICAgICAgICAgcmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZtaWNyb2NvZGVfcGVyY3B1X25mYik7 CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9Ci1wcmVzbXBfaW5pdGNhbGwobWljcm9jb2RlX3By ZXNtcF9pbml0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMgYi94 ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCmluZGV4IDQ3NTk5MTEuLmI1NGIwYjkgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKKysrIGIveGVuL2FyY2gveDg2L21p Y3JvY29kZV9hbWQuYwpAQCAtNjI3LDEwICs2MjcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1p Y3JvY29kZV9vcHMgbWljcm9jb2RlX2FtZF9vcHMgPSB7CiAgICAgLnN0YXJ0X3VwZGF0ZSAgICAg ICAgICAgICAgICAgICAgID0gc3RhcnRfdXBkYXRlLAogfTsKIAotc3RhdGljIF9faW5pdCBpbnQg bWljcm9jb2RlX2luaXRfYW1kKHZvaWQpCitpbnQgX19pbml0IG1pY3JvY29kZV9pbml0X2FtZCh2 b2lkKQogewogICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1Jf QU1EICkKICAgICAgICAgbWljcm9jb2RlX29wcyA9ICZtaWNyb2NvZGVfYW1kX29wczsKICAgICBy ZXR1cm4gMDsKIH0KLXByZXNtcF9pbml0Y2FsbChtaWNyb2NvZGVfaW5pdF9hbWQpOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jIGIveGVuL2FyY2gveDg2L21pY3Jv Y29kZV9pbnRlbC5jCmluZGV4IGJhMzk3MWEuLmM2YjY3ZTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9taWNyb2NvZGVfaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVs LmMKQEAgLTQwNCwxMCArNDA0LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfb3Bz IG1pY3JvY29kZV9pbnRlbF9vcHMgPSB7CiAgICAgLmFwcGx5X21pY3JvY29kZSAgICAgICAgICAg ICAgICAgID0gYXBwbHlfbWljcm9jb2RlLAogfTsKIAotc3RhdGljIF9faW5pdCBpbnQgbWljcm9j b2RlX2luaXRfaW50ZWwodm9pZCkKK2ludCBfX2luaXQgbWljcm9jb2RlX2luaXRfaW50ZWwodm9p ZCkKIHsKICAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0lO VEVMICkKICAgICAgICAgbWljcm9jb2RlX29wcyA9ICZtaWNyb2NvZGVfaW50ZWxfb3BzOwogICAg IHJldHVybiAwOwogfQotcHJlc21wX2luaXRjYWxsKG1pY3JvY29kZV9pbml0X2ludGVsKTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5k ZXggYzNkOTllOS4uZjdiOTI3OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysr IGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAgLTE0NjEsNiArMTQ2MSw4IEBAIHZvaWQgX19pbml0 IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICB0aW1lcl9p bml0KCk7CiAKKyAgICBlYXJseV9taWNyb2NvZGVfaW5pdCgpOworCiAgICAgaWRlbnRpZnlfY3B1 KCZib290X2NwdV9kYXRhKTsKIAogICAgIHNldF9pbl9jcjQoWDg2X0NSNF9PU0ZYU1IgfCBYODZf Q1I0X09TWE1NRVhDUFQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYyBiL3hl bi9hcmNoL3g4Ni9zbXBib290LmMKaW5kZXggODI1NTllZC4uNGUwMWM3YiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3NtcGJvb3QuYworKysgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCkBAIC04 MywyMiArODMsMjIgQEAgc3RhdGljIGVudW0gY3B1X3N0YXRlIHsKIAogdm9pZCAqc3RhY2tfYmFz ZVtOUl9DUFVTXTsKIAordm9pZCBpbml0aWFsaXplX2NwdV9kYXRhKHVuc2lnbmVkIGludCBjcHUp Cit7CisgICAgKihjcHVfZGF0YSArIGNwdSkgPSBib290X2NwdV9kYXRhOworfQorCiBzdGF0aWMg dm9pZCBzbXBfc3RvcmVfY3B1X2luZm8oaW50IGlkKQogewotICAgIHN0cnVjdCBjcHVpbmZvX3g4 NiAqYyA9IGNwdV9kYXRhICsgaWQ7CiAgICAgdW5zaWduZWQgaW50IHNvY2tldDsKIAotICAgICpj ID0gYm9vdF9jcHVfZGF0YTsKLSAgICBpZiAoIGlkICE9IDAgKQotICAgIHsKLSAgICAgICAgaWRl bnRpZnlfY3B1KGMpOworICAgIGlkZW50aWZ5X2NwdShjcHVfZGF0YSArIGlkKTsKIAotICAgICAg ICBzb2NrZXQgPSBjcHVfdG9fc29ja2V0KGlkKTsKLSAgICAgICAgaWYgKCAhc29ja2V0X2NwdW1h c2tbc29ja2V0XSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNvY2tldF9jcHVtYXNrW3NvY2tl dF0gPSBzZWNvbmRhcnlfc29ja2V0X2NwdW1hc2s7Ci0gICAgICAgICAgICBzZWNvbmRhcnlfc29j a2V0X2NwdW1hc2sgPSBOVUxMOwotICAgICAgICB9CisgICAgc29ja2V0ID0gY3B1X3RvX3NvY2tl dChpZCk7CisgICAgaWYgKCAhc29ja2V0X2NwdW1hc2tbc29ja2V0XSApCisgICAgeworICAgICAg ICBzb2NrZXRfY3B1bWFza1tzb2NrZXRdID0gc2Vjb25kYXJ5X3NvY2tldF9jcHVtYXNrOworICAg ICAgICBzZWNvbmRhcnlfc29ja2V0X2NwdW1hc2sgPSBOVUxMOwogICAgIH0KIH0KIApAQCAtMzMy LDYgKzMzMiwxMyBAQCB2b2lkIHN0YXJ0X3NlY29uZGFyeSh2b2lkICp1bnVzZWQpCiAKICAgICBj cHVfaW5pdCgpOwogCisgICAgaW5pdGlhbGl6ZV9jcHVfZGF0YShjcHUpOworCisgICAgaWYgKCBz eXN0ZW1fc3RhdGUgPD0gU1lTX1NUQVRFX3NtcF9ib290ICkKKyAgICAgICAgZWFybHlfbWljcm9j b2RlX3VwZGF0ZV9jcHUoZmFsc2UpOworICAgIGVsc2UKKyAgICAgICAgbWljcm9jb2RlX3Jlc3Vt ZV9jcHUoY3B1KTsKKwogICAgIHNtcF9jYWxsaW4oKTsKIAogICAgIGluaXRfcGVyY3B1X3RpbWUo KTsKQEAgLTM2NCw4ICszNzEsNiBAQCB2b2lkIHN0YXJ0X3NlY29uZGFyeSh2b2lkICp1bnVzZWQp CiAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwogICAgIG10cnJfYXBfaW5pdCgpOwogCi0gICAgbWlj cm9jb2RlX3Jlc3VtZV9jcHUoY3B1KTsKLQogICAgIHdtYigpOwogICAgIHN0YXJ0dXBfY3B1X2lk bGVfbG9vcCgpOwogfQpAQCAtNzgwLDcgKzc4NSw3IEBAIHZvaWQgX19pbml0IHNtcF9wcmVwYXJl X2NwdXModW5zaWduZWQgaW50IG1heF9jcHVzKQogICAgIG10cnJfYXBzX3N5bmNfYmVnaW4oKTsK IAogICAgIC8qIFNldHVwIGJvb3QgQ1BVIGluZm9ybWF0aW9uICovCi0gICAgc21wX3N0b3JlX2Nw dV9pbmZvKDApOyAvKiBGaW5hbCBmdWxsIHZlcnNpb24gb2YgdGhlIGRhdGEgKi8KKyAgICBpbml0 aWFsaXplX2NwdV9kYXRhKDApOyAvKiBGaW5hbCBmdWxsIHZlcnNpb24gb2YgdGhlIGRhdGEgKi8K ICAgICBwcmludF9jcHVfaW5mbygwKTsKIAogICAgIGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCA9 IGdldF9hcGljX2lkKCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nv ci5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCA3NTYzMmQ5Li43NzYy MzU2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKQEAgLTU2Myw2ICs1NjMsMTAgQEAgaW50IHdy bXNyX2h5cGVydmlzb3JfcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCk7CiB2b2lkIG1p Y3JvY29kZV9zZXRfbW9kdWxlKHVuc2lnbmVkIGludCk7CiBpbnQgbWljcm9jb2RlX3VwZGF0ZShY RU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3ZvaWQpLCB1bnNpZ25lZCBsb25nIGxlbik7CiBp bnQgbWljcm9jb2RlX3Jlc3VtZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CitpbnQgZWFybHlfbWlj cm9jb2RlX3VwZGF0ZV9jcHUoYm9vbF90IHN0YXJ0X3VwZGF0ZSk7CitpbnQgZWFybHlfbWljcm9j b2RlX2luaXQodm9pZCk7CitpbnQgbWljcm9jb2RlX2luaXRfaW50ZWwodm9pZCk7CitpbnQgbWlj cm9jb2RlX2luaXRfYW1kKHZvaWQpOwogCiBlbnVtIGdldF9jcHVfdmVuZG9yIHsKICAgICBnY3Zf aG9zdCwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zbXAuaCBiL3hlbi9pbmNsdWRlL3hl bi9zbXAuaAppbmRleCA2ZmViYjU2Li5jNTVmNTdmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94 ZW4vc21wLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NtcC5oCkBAIC03MSw0ICs3MSw2IEBAIGlu dCBhbGxvY19jcHVfaWQodm9pZCk7CiAKIGV4dGVybiB2b2lkICpzdGFja19iYXNlW05SX0NQVVNd OwogCit2b2lkIGluaXRpYWxpemVfY3B1X2RhdGEodW5zaWduZWQgaW50IGNwdSk7CisKICNlbmRp ZiAvKiBfX1hFTl9TTVBfSF9fICovCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=