From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v6 03/11] x86/mce: handle host LMCE Date: Tue, 4 Jul 2017 15:02:36 +0800 Message-ID: <20170704070236.7409-1-haozhong.zhang@intel.com> References: <20170703034626.9429-4-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170703034626.9429-4-haozhong.zhang@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.xen.org Cc: Haozhong Zhang , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org QSByb3VuZCBvZiBtY2Vfc29mdGlycSgpIG1heSBoYW5kbGUgbXVsdGlwbGUgZGVmZXJyZWQgTUNF J3MuCiAxLyBJZiBhbGwgb2YgdGhlbSBhcmUgTE1DRSdzLCB0aGVuIG1jZV9zb2Z0aXJxKCkgaXMg Y2FsbGVkIG9uIG9uZSBDUFUKICAgIGFuZCBzaG91bGQgbm90IHdhaXQgZm9yIG90aGVycy4KIDIv IElmIGF0IGxlYXN0IG9uZSBvZiB0aGVtIGlzIG5vbi1sb2NhbCBNQ0UsIHRoZW4gbWNlX3NvZnRp cnEoKQogICAgc2hvdWxkIHN5bmMgd2l0aCBvdGhlciBDUFVzLiBtY2Vfc29mdGlycSgpIHNob3Vs ZCBjaGVjayB0aG9zZSB0d28KICAgIGNhc2VzIGFuZCBoYW5kbGUgdGhlbSBhY2NvcmRpbmdseS4K CkJlY2F1c2UgbWNlX3NvZnRpcnEoKSBjYW4gYmUgaW50ZXJydXB0ZWQgYnkgTUMjIGFnYWluLCB3 ZSBzaG91bGQgYWxzbwplbnN1cmUgdGhlIGRlZmVycmVkIE1DRSBoYW5kbGluZyBpbiBtY2Vfc29m dGlycSgpIGlzIGltbXV0YWJsZSB0byB0aGUKY2hhbmdlIG9mIHRoZSBjaGVja2luZyByZXN1bHQu CgpBIHBlci1jcHUgbGlzdCAnbG1jZV9wZW5kaW5nJyBpcyBpbnRyb2R1Y2VkIHRvICdzdHJ1Y3Qg bWNfdGVsZW1fY3B1X2N0bCcKYWxvbmcgd2l0aCB0aGUgZXhpc3RpbmcgcGVyLWNwdSBsaXN0ICdw ZW5kaW5nJyBmb3IgTE1DRSBoYW5kbGluZy4KCk1DIyBoYW5kbGVyIG1jaGVja19jbW5faGFuZGxl cigpIGVuc3VyZXMgdGhhdAogMS8gaWYgYWxsIGRlZmVycmVkIE1DRSdzIG9uIGEgQ1BVIGFyZSBM TUNFJ3MsIHRoZW4gYWxsIG9mIHRoZWlyCiAgICB0ZWxlbWV0cmllcyB3aWxsIGJlIG9ubHkgaW4g J2xtY2VfcGVuZGluZycgb24gdGhhdCBDUFU7CiAyLyBpZiBhdCBsZWFzdCBvbmUgb2YgZGVmZXJy ZWQgTUNFIG9uIGEgQ1BVIGlzIG5vdCBMTUNFLCB0aGVuIGFsbAogICAgdGVsZW1ldHJpZXMgb2Yg ZGVmZXJyZWQgTUNFJ3Mgb24gdGhhdCBDUFUgd2lsbCBiZSBvbmx5IGluCiAgICAncGVuZGluZycg b24gdGhhdCBDUFUuCgpUaGVyZWZvcmUsIHRoZSBub24tZW1wdHkgb2YgJ2xtY2VfcGVuZGluZycg Y2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lCndoZXRoZXIgaXQncyB0aGUgZm9ybWVyIG9mIHRoZSBi ZWdpbm5pbmcgdHdvIGNhc2VzIGluIE1DRSBzb2Z0aXJxCmhhbmRsZXIgbWNlX3NvZnRpcnEoKS4K Cm1jZV9zb2Z0aXJxKCkgYXRvbWljYWxseSBtb3ZlcyBkZWZlcnJlZCBNQ0UncyBmcm9tIGVpdGhl ciBsaXN0CidsbWNlX3BlbmRpbmcnIG9uIHRoZSBjdXJyZW50IENQVSBvciBsaXN0cyAncGVuZGlu Zycgb24gdGhlIGN1cnJlbnQgb3IKb3RoZXIgQ1BVcyB0byBsaXN0ICdwcm9jZXNzaW5nJyBpbiB0 aGUgY3VycmVudCBDUFUsIGFuZCB0aGVuIGhhbmRsZXMKZGVmZXJyZWQgTUNFJ3MgaW4gbGlzdCAn cHJvY2Vzc2luZycuICBOZXcgY29taW5nIE1DIyBiZWZvcmUgYW5kIGFmdGVyCnRoZSBhdG9taWMg bW92ZSwgd2hpY2ggY2hhbmdlIHRoZSByZXN1bHQgb2YgdGhlIGNoZWNrLCBkbyBub3QgY2hhbmdl CndoZXRoZXIgTUNFJ3MgaW4gJ3Byb2Nlc3NpbmcnIGFyZSBMTUNFIG9yIG5vdCwgc28gbWNlX3Nv ZnRpcnEoKSBjYW4Kc3RpbGwgaGFuZGxlICdwcm9jZXNzaW5nJyBhY2NvcmRpbmcgdG8gdGhlIHJl c3VsdCBvZiBwcmV2aW91cyBjaGVjay4KClNpZ25lZC1vZmYtYnk6IEhhb3pob25nIFpoYW5nIDxo YW96aG9uZy56aGFuZ0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+Ci0tLQpUaGlzIHBhdGNoIGluY2x1ZGVzIGFsbCBjaGFuZ2VzIGluIHY2IGFu ZCBpcyB0aGUgb25seSBvbmUgc2VudCBpbiB2Ni4KCkNoYW5nZXMgaW4gdjY6CiAqIFJlbmFtZSB2 YXJpYWJsZXMgIndhaXQiIHRvICJiY2FzdCIgaW4gbWNoZWNrX2Ntbl9oYW5kbGVyKCkgYW5kIG1j ZV9zb2Z0aXJxKCkuCiAqIEFkanVzdCBjb2Rpbmcgc3R5bGUgdG8gdGhlICJtYWpvcml0eSIgc3R5 bGUgaW4gbWNlLmMKICogQWRqdXN0IGNvbW1lbnQgaW4gbWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVk KCkuCi0tLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYyB8ICAgNCArLQogeGVu L2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMgICAgICB8ICA2OSArKysrKysrKysrKysrLS0tLS0t LS0tLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oICAgICAgfCAgIDEgKwogeGVuL2Fy Y2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5jICB8IDEwNCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmggIHwgICA1 ICstCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay94ODZfbWNhLmggIHwgICA0ICstCiA2IGZpbGVz IGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jIGIveGVuL2FyY2gveDg2L2NwdS9t Y2hlY2svbWNhY3Rpb24uYwppbmRleCBkYWI5ZWFjMzA2Li5jYTE3ZDIyYmQ4IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL21jYWN0aW9uLmMKQEAgLTk2LDcgKzk2LDkgQEAgbWNfbWVtZXJyX2RoYW5kbGVy KHN0cnVjdCBtY2FfYmluZm8gKmJpbmZvLAogCiAgICAgICAgICAgICAgICAgYmFuay0+bWNfYWRk ciA9IGdmbiA8PCBQQUdFX1NISUZUIHwKICAgICAgICAgICAgICAgICAgIChiYW5rLT5tY19hZGRy ICYgKFBBR0VfU0laRSAtMSApKTsKLSAgICAgICAgICAgICAgICBpZiAoZmlsbF92bXNyX2RhdGEo YmFuaywgZCwgZ2xvYmFsLT5tY19nc3RhdHVzLAorICAgICAgICAgICAgICAgIC8qIFRPRE86IHN1 cHBvcnQgaW5qZWN0aW5nIExNQ0UgKi8KKyAgICAgICAgICAgICAgICBpZiAoZmlsbF92bXNyX2Rh dGEoYmFuaywgZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5t Y19nc3RhdHVzICYgfk1DR19TVEFUVVNfTE1DRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm1jZV92Y3B1aWQgPT0gVk1DRV9JTkpFQ1RfQlJPQURDQVNUKSkKICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIG1jZV9wcmludGsoTUNFX1FVSUVULCAiRmls bCB2TUNFIyBkYXRhIGZvciBET00lZCAiCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21j aGVjay9tY2UuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCmluZGV4IGQyNDdkNmUx OTguLmVlMDRmYjU0ZmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCkBAIC0zODcsNiArMzg3LDcgQEAg bWNoZWNrX21jYV9sb2dvdXQoZW51bSBtY2Ffc291cmNlIHdobywgc3RydWN0IG1jYV9iYW5rcyAq YmFua21hc2ssCiAgICAgICAgIHNwLT5lcnJjbnQgPSBlcnJjbnQ7CiAgICAgICAgIHNwLT5yaXB2 ID0gKGdzdGF0dXMgJiBNQ0dfU1RBVFVTX1JJUFYpICE9IDA7CiAgICAgICAgIHNwLT5laXB2ID0g KGdzdGF0dXMgJiBNQ0dfU1RBVFVTX0VJUFYpICE9IDA7CisgICAgICAgIHNwLT5sbWNlID0gKGdz dGF0dXMgJiBNQ0dfU1RBVFVTX0xNQ0UpICE9IDA7CiAgICAgICAgIHNwLT51YyA9IHVjOwogICAg ICAgICBzcC0+cGNjID0gcGNjOwogICAgICAgICBzcC0+cmVjb3ZlcmFibGUgPSByZWNvdmVyOwpA QCAtNDU0LDYgKzQ1NSw3IEBAIHZvaWQgbWNoZWNrX2Ntbl9oYW5kbGVyKGNvbnN0IHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHVpbnQ2NF90IGdzdGF0dXM7CiAgICAgbWN0ZWxlbV9j b29raWVfdCBtY3RjID0gTlVMTDsKICAgICBzdHJ1Y3QgbWNhX3N1bW1hcnkgYnM7CisgICAgYm9v bCBiY2FzdCwgbG1jZTsKIAogICAgIG1jZV9zcGluX2xvY2soJm1jZV9sb2dvdXRfbG9jayk7CiAK QEAgLTQ2Miw2ICs0NjQsOCBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgIHNpemVvZihsb25nKSAqIEJJVFNfVE9f TE9OR1MoY2xlYXJfYmFuay0+bnVtKSk7CiAgICAgfQogICAgIG1jdGMgPSBtY2hlY2tfbWNhX2xv Z291dChNQ0FfTUNFX1NDQU4sIGJhbmttYXNrLCAmYnMsIGNsZWFyX2JhbmspOworICAgIGxtY2Ug PSBicy5sbWNlOworICAgIGJjYXN0ID0gbWNlX2Jyb2FkY2FzdCAmJiAhbG1jZTsKIAogICAgIGlm IChicy5lcnJjbnQpIHsKICAgICAgICAgLyoKQEAgLTQ3MCw3ICs0NzQsNyBAQCB2b2lkIG1jaGVj a19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAg aWYgKGJzLnVjIHx8IGJzLnBjYykgewogICAgICAgICAgICAgYWRkX3RhaW50KFRBSU5UX01BQ0hJ TkVfQ0hFQ0spOwogICAgICAgICAgICAgaWYgKG1jdGMgIT0gTlVMTCkKLSAgICAgICAgICAgICAg ICBtY3RlbGVtX2RlZmVyKG1jdGMpOworICAgICAgICAgICAgICAgIG1jdGVsZW1fZGVmZXIobWN0 YywgbG1jZSk7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogRm9yIFBDQz0xIGFuZCBj YW4ndCBiZSByZWNvdmVyZWQsIGNvbnRleHQgaXMgbG9zdCwgc28KICAgICAgICAgICAgICAqIHJl Ym9vdCBub3cgd2l0aG91dCBjbGVhcmluZyB0aGUgYmFua3MsIGFuZCBkZWFsIHdpdGgKQEAgLTQ5 NywxNyArNTAxLDE2IEBAIHZvaWQgbWNoZWNrX2Ntbl9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogICAgIH0KICAgICBtY2Vfc3Bpbl91bmxvY2soJm1jZV9sb2dvdXRf bG9jayk7CiAKLSAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRj YXN0KTsKKyAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyLCBiY2FzdCk7CiAgICAg aWYgKCBtY3RjICE9IE5VTEwgJiYgbWNlX3VyZ2VudF9hY3Rpb24ocmVncywgbWN0YykpCiAgICAg ICAgIGNwdW1hc2tfc2V0X2NwdShzbXBfcHJvY2Vzc29yX2lkKCksICZtY2VfZmF0YWxfY3B1cyk7 Ci0gICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRjYXN0KTsKKyAg ICBtY2VfYmFycmllcl9leGl0KCZtY2VfdHJhcF9iYXIsIGJjYXN0KTsKIAogICAgIC8qCiAgICAg ICogV2FpdCB1bnRpbCBldmVyeWJvZHkgaGFzIHByb2Nlc3NlZCB0aGUgdHJhcC4KICAgICAgKi8K LSAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRjYXN0KTsKLSAg ICBpZiAoYXRvbWljX3JlYWQoJnNldmVyaXR5X2NwdSkgPT0gc21wX3Byb2Nlc3Nvcl9pZCgpKQot ICAgIHsKKyAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyLCBiY2FzdCk7CisgICAg aWYgKGxtY2UgfHwgYXRvbWljX3JlYWQoJnNldmVyaXR5X2NwdSkgPT0gc21wX3Byb2Nlc3Nvcl9p ZCgpKSB7CiAgICAgICAgIC8qIEFjY29yZGluZyB0byBTRE0sIGlmIG5vIGVycm9yIGJhbmsgZm91 bmQgb24gYW55IGNwdXMsCiAgICAgICAgICAqIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmlu Zywgd2UgY2FuJ3QgZG8gYW55CiAgICAgICAgICAqIHJlY292ZXJ5IGpvYiBidXQgdG8gcmVzZXQg dGhlIHN5c3RlbS4KQEAgLTUyNCwxNiArNTI3LDE2IEBAIHZvaWQgbWNoZWNrX2Ntbl9oYW5kbGVy KGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICBhdG9taWNfc2V0KCZm b3VuZF9lcnJvciwgMCk7CiAgICAgICAgIGF0b21pY19zZXQoJnNldmVyaXR5X2NwdSwgLTEpOwog ICAgIH0KLSAgICBtY2VfYmFycmllcl9leGl0KCZtY2VfdHJhcF9iYXIsIG1jZV9icm9hZGNhc3Qp OworICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV90cmFwX2JhciwgYmNhc3QpOwogCiAgICAgLyog Q2xlYXIgZmxhZ3MgYWZ0ZXIgYWJvdmUgZmF0YWwgY2hlY2sgKi8KLSAgICBtY2VfYmFycmllcl9l bnRlcigmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRjYXN0KTsKKyAgICBtY2VfYmFycmllcl9lbnRl cigmbWNlX3RyYXBfYmFyLCBiY2FzdCk7CiAgICAgZ3N0YXR1cyA9IG1jYV9yZG1zcihNU1JfSUEz Ml9NQ0dfU1RBVFVTKTsKICAgICBpZiAoKGdzdGF0dXMgJiBNQ0dfU1RBVFVTX01DSVApICE9IDAp IHsKICAgICAgICAgbWNlX3ByaW50ayhNQ0VfQ1JJVElDQUwsICJNQ0U6IENsZWFyIE1DSVBAIGxh c3Qgc3RlcCIpOwogICAgICAgICBtY2Ffd3Jtc3IoTVNSX0lBMzJfTUNHX1NUQVRVUywgMCk7CiAg ICAgfQotICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV90cmFwX2JhciwgbWNlX2Jyb2FkY2FzdCk7 CisgICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyLCBiY2FzdCk7CiAKICAgICByYWlz ZV9zb2Z0aXJxKE1BQ0hJTkVfQ0hFQ0tfU09GVElSUSk7CiB9CkBAIC0xNTYyLDcgKzE1NjUsOCBA QCBzdGF0aWMgdm9pZCBtY19wYW5pY19kdW1wKHZvaWQpCiAKICAgICBkcHJpbnRrKFhFTkxPR19F UlIsICJCZWdpbiBkdW1wIG1jX2luZm9cbiIpOwogICAgIGZvcl9lYWNoX29ubGluZV9jcHUoY3B1 KQotICAgICAgICBtY3RlbGVtX3Byb2Nlc3NfZGVmZXJyZWQoY3B1LCB4ODZfbWNpbmZvX2R1bXBf cGFuaWMpOworICAgICAgICBtY3RlbGVtX3Byb2Nlc3NfZGVmZXJyZWQoY3B1LCB4ODZfbWNpbmZv X2R1bXBfcGFuaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtY3RlbGVtX2hh c19kZWZlcnJlZF9sbWNlKGNwdSkpOwogICAgIGRwcmludGsoWEVOTE9HX0VSUiwgIkVuZCBkdW1w IG1jX2luZm8sICV4IG1jaW5mbyBkdW1wZWRcbiIsIG1jaW5mb19kdW1wcGVkKTsKIH0KIApAQCAt MTcwMCwzOCArMTcwNCw0NSBAQCBzdGF0aWMgdm9pZCBtY2Vfc29mdGlycSh2b2lkKQogICAgIHN0 YXRpYyBhdG9taWNfdCBzZXZlcml0eV9jcHU7CiAgICAgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3Jf aWQoKTsKICAgICB1bnNpZ25lZCBpbnQgd29ya2NwdTsKKyAgICBib29sIGxtY2UgPSBtY3RlbGVt X2hhc19kZWZlcnJlZF9sbWNlKGNwdSk7CisgICAgYm9vbCBiY2FzdCA9IG1jZV9icm9hZGNhc3Qg JiYgIWxtY2U7CiAKICAgICBtY2VfcHJpbnRrKE1DRV9WRVJCT1NFLCAiQ1BVJWQgZW50ZXIgc29m dGlycVxuIiwgY3B1KTsKIAotICAgIG1jZV9iYXJyaWVyX2VudGVyKCZtY2VfaW5zaWRlX2Jhciwg bWNlX2Jyb2FkY2FzdCk7Ci0KLSAgICAvKgotICAgICAqIEV2ZXJ5Ym9keSBpcyBoZXJlLiBOb3cg bGV0J3Mgc2VlIHdobyBnZXRzIHRvIGRvIHRoZQotICAgICAqIHJlY292ZXJ5IHdvcmsuIFJpZ2h0 IG5vdyB3ZSBqdXN0IHNlZSBpZiB0aGVyZSdzIGEgQ1BVCi0gICAgICogdGhhdCBkaWQgbm90IGhh dmUgYW55IHByb2JsZW1zLCBhbmQgcGljayB0aGF0IG9uZS4KLSAgICAgKgotICAgICAqIEZpcnN0 LCBqdXN0IHNldCBhIGRlZmF1bHQgdmFsdWU6IHRoZSBsYXN0IENQVSB3aG8gcmVhY2hlcyB0aGlz Ci0gICAgICogd2lsbCBvdmVyd3JpdGUgdGhlIHZhbHVlIGFuZCBiZWNvbWUgdGhlIGRlZmF1bHQu Ci0gICAgICovCisgICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV9pbnNpZGVfYmFyLCBiY2FzdCk7 CiAKLSAgICBhdG9taWNfc2V0KCZzZXZlcml0eV9jcHUsIGNwdSk7CisgICAgaWYgKCFsbWNlKSB7 CisgICAgICAgIC8qCisgICAgICAgICAqIEV2ZXJ5Ym9keSBpcyBoZXJlLiBOb3cgbGV0J3Mgc2Vl IHdobyBnZXRzIHRvIGRvIHRoZQorICAgICAgICAgKiByZWNvdmVyeSB3b3JrLiBSaWdodCBub3cg d2UganVzdCBzZWUgaWYgdGhlcmUncyBhIENQVQorICAgICAgICAgKiB0aGF0IGRpZCBub3QgaGF2 ZSBhbnkgcHJvYmxlbXMsIGFuZCBwaWNrIHRoYXQgb25lLgorICAgICAgICAgKgorICAgICAgICAg KiBGaXJzdCwganVzdCBzZXQgYSBkZWZhdWx0IHZhbHVlOiB0aGUgbGFzdCBDUFUgd2hvIHJlYWNo ZXMgdGhpcworICAgICAgICAgKiB3aWxsIG92ZXJ3cml0ZSB0aGUgdmFsdWUgYW5kIGJlY29tZSB0 aGUgZGVmYXVsdC4KKyAgICAgICAgICovCiAKLSAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3Nl dmVyaXR5X2JhciwgbWNlX2Jyb2FkY2FzdCk7Ci0gICAgaWYgKCFtY3RlbGVtX2hhc19kZWZlcnJl ZChjcHUpKQogICAgICAgICBhdG9taWNfc2V0KCZzZXZlcml0eV9jcHUsIGNwdSk7Ci0gICAgbWNl X2JhcnJpZXJfZXhpdCgmbWNlX3NldmVyaXR5X2JhciwgbWNlX2Jyb2FkY2FzdCk7CisKKyAgICAg ICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV9zZXZlcml0eV9iYXIsIGJjYXN0KTsKKyAgICAgICAg aWYgKCFtY3RlbGVtX2hhc19kZWZlcnJlZChjcHUpKQorICAgICAgICAgICAgYXRvbWljX3NldCgm c2V2ZXJpdHlfY3B1LCBjcHUpOworICAgICAgICBtY2VfYmFycmllcl9leGl0KCZtY2Vfc2V2ZXJp dHlfYmFyLCBiY2FzdCk7CisgICAgfQogCiAgICAgLyogV2UgY2hvb3NlIHNldmVyaXR5X2NwdSBm b3IgZnVydGhlciBwcm9jZXNzaW5nICovCi0gICAgaWYgKGF0b21pY19yZWFkKCZzZXZlcml0eV9j cHUpID09IGNwdSkgeworICAgIGlmIChsbWNlIHx8IGF0b21pY19yZWFkKCZzZXZlcml0eV9jcHUp ID09IGNwdSkgewogCiAgICAgICAgIG1jZV9wcmludGsoTUNFX1ZFUkJPU0UsICJDUFUlZCBoYW5k bGluZyBlcnJvcnNcbiIsIGNwdSk7CiAKICAgICAgICAgLyogU3RlcDE6IEZpbGwgRE9NMCBMT0cg YnVmZmVyLCB2TUNFIGluamVjdGlvbiBidWZmZXIgYW5kCiAgICAgICAgICAqIHZNQ0UgTVNScyB2 aXJ0dWFsaXphdGlvbiBidWZmZXIKICAgICAgICAgICovCi0gICAgICAgIGZvcl9lYWNoX29ubGlu ZV9jcHUod29ya2NwdSkgewotICAgICAgICAgICAgbWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVkKHdv cmtjcHUsIG1jZV9kZWxheWVkX2FjdGlvbik7Ci0gICAgICAgIH0KKworICAgICAgICBpZiAobG1j ZSkKKyAgICAgICAgICAgIG1jdGVsZW1fcHJvY2Vzc19kZWZlcnJlZChjcHUsIG1jZV9kZWxheWVk X2FjdGlvbiwgdHJ1ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZvcl9lYWNoX29ubGlu ZV9jcHUod29ya2NwdSkKKyAgICAgICAgICAgICAgICBtY3RlbGVtX3Byb2Nlc3NfZGVmZXJyZWQo d29ya2NwdSwgbWNlX2RlbGF5ZWRfYWN0aW9uLCBmYWxzZSk7CiAKICAgICAgICAgLyogU3RlcDI6 IFNlbmQgTG9nIHRvIERPTTAgdGhyb3VnaCB2SVJRICovCiAgICAgICAgIGlmIChkb20wX3ZtY2Vf ZW5hYmxlZCgpKSB7CkBAIC0xNzQwLDcgKzE3NTEsNyBAQCBzdGF0aWMgdm9pZCBtY2Vfc29mdGly cSh2b2lkKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX2lu c2lkZV9iYXIsIG1jZV9icm9hZGNhc3QpOworICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV9pbnNp ZGVfYmFyLCBiY2FzdCk7CiB9CiAKIC8qIE1hY2hpbmUgQ2hlY2sgb3duZXIganVkZ2UgYWxnb3Jp dGhtOgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmggYi94ZW4vYXJj aC94ODYvY3B1L21jaGVjay9tY2UuaAppbmRleCAxMGU1Y2ViZjhiLi40ZjEzNzkxOTQ4IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuaAorKysgYi94ZW4vYXJjaC94ODYv Y3B1L21jaGVjay9tY2UuaApAQCAtMTA5LDYgKzEwOSw3IEBAIHN0cnVjdCBtY2Ffc3VtbWFyeSB7 CiAgICAgaW50ICAgICAgICAgZWlwdjsgICAvKiBtZWFuaW5nZnVsIG9uICNNQyAqLwogICAgIGJv b2wgICAgICAgIHVjOyAgICAgLyogVUMgZmxhZyAqLwogICAgIGJvb2wgICAgICAgIHBjYzsgICAg LyogUENDIGZsYWcgKi8KKyAgICBib29sICAgICAgICBsbWNlOyAgIC8qIExNQ0UgZmxhZyAoSW50 ZWwgb25seSkgKi8KICAgICBib29sICAgICAgICByZWNvdmVyYWJsZTsgLyogc29mdHdhcmUgZXJy b3IgcmVjb3ZlcmFibGUgZmxhZyAqLwogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWN0ZWxlbS5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5jCmlu ZGV4IDU3YWJlYWIzNTcuLmIxNDRhNjYwNTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUv bWNoZWNrL21jdGVsZW0uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmMK QEAgLTEwOSw4ICsxMDksMjIgQEAgc3RydWN0IG1jX3RlbGVtX2NwdV9jdGwgewogCS8qCiAJICog UGVyLUNQVSBwcm9jZXNzaW5nIGxpc3RzLCB1c2VkIGZvciBkZWZlcnJlZCAoc29mdGlycSkKIAkg KiBwcm9jZXNzaW5nIG9mIHRlbGVtZXRyeS4KKwkgKgorCSAqIFRoZSB0d28gcGVuZGluZyBsaXN0 cyBAbG1jZV9wZW5kaW5nIGFuZCBAcGVuZGluZyBncm93IGF0CisJICogdGhlIGhlYWQgaW4gdGhl IHJldmVyc2UgY2hyb25vbG9naWNhbCBvcmRlci4KKwkgKgorCSAqIEBwZW5kaW5nIGFuZCBAbG1j ZV9wZW5kaW5nIG9uIHRoZSBzYW1lIENQVSBhcmUgbXV0dWFsbHkKKwkgKiBleGNsdXNpdmUsIGku ZS4gZGVmZXJyZWQgTUNFIG9uIGEgQ1BVIGFyZSBlaXRoZXIgYWxsIGluCisJICogQGxtY2VfcGVu ZGluZyBvciBhbGwgaW4gQHBlbmRpbmcuIEluIHRoZSBmb3JtZXIgY2FzZSwgYWxsCisJICogZGVm ZXJyZWQgTUNFIGFyZSBMTUNFLiBJbiB0aGUgbGF0dGVyIGNhc2UsIGJvdGggTE1DRSBhbmQKKwkg KiBub24tbG9jYWwgTUNFIGNhbiBiZSBpbiBAcGVuZGluZywgYW5kIEBwZW5kaW5nIGNvbnRhaW5z IGF0CisJICogbGVhc3Qgb25lIG5vbi1sb2NhbCBNQ0UgaWYgaXQncyBub3QgZW1wdHkuCisJICoK KwkgKiBDaGFuZ2VzIHRvIEBwZW5kaW5nIGFuZCBAbG1jZV9wZW5kaW5nIHNob3VsZCBiZSBwZXJm b3JtZWQKKwkgKiB2aWEgbWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVkKCkgYW5kIG1jdGVsZW1fZGVm ZXIoKSwgaW4gb3JkZXIKKwkgKiB0byBndWFyYW50ZWUgdGhlIGFib3ZlIG11dHVhbCBleGNsdXNp dml0eS4KIAkgKi8KLQlzdHJ1Y3QgbWN0ZWxlbV9lbnQgKnBlbmRpbmc7CisJc3RydWN0IG1jdGVs ZW1fZW50ICpwZW5kaW5nLCAqbG1jZV9wZW5kaW5nOwogCXN0cnVjdCBtY3RlbGVtX2VudCAqcHJv Y2Vzc2luZzsKIH07CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IG1jX3RlbGVtX2NwdV9j dGwsIG1jdGN0bCk7CkBAIC0xMzEsMjYgKzE0NSw5NyBAQCBzdGF0aWMgdm9pZCBtY3RlbGVtX3hj aGdfaGVhZChzdHJ1Y3QgbWN0ZWxlbV9lbnQgKipoZWFkcCwKIAl9CiB9CiAKLQotdm9pZCBtY3Rl bGVtX2RlZmVyKG1jdGVsZW1fY29va2llX3QgY29va2llKQorLyoqCisgKiBBcHBlbmQgYSB0ZWxl bWV0cnkgb2YgZGVmZXJyZWQgTUNFIHRvIGEgcGVyLWNwdSBwZW5kaW5nIGxpc3QsCisgKiBlaXRo ZXIgQHBlbmRpbmcgb3IgQGxtY2VfcGVuZGluZywgYWNjb3JkaW5nIHRvIHJ1bGVzIGJlbG93Ogor ICogIC0gaWYgQHBlbmRpbmcgaXMgbm90IGVtcHR5LCB0aGVuIHRoZSBuZXcgdGVsZW1ldHJ5IHdp bGwgYmUKKyAqICAgIGFwcGVuZGVkIHRvIEBwZW5kaW5nOworICogIC0gaWYgQHBlbmRpbmcgaXMg ZW1wdHkgYW5kIHRoZSBuZXcgdGVsZW1ldHJ5IGlzIGZvciBhIGRlZmVycmVkCisgKiAgICBMTUNF LCB0aGVuIHRoZSBuZXcgdGVsZW1ldHJ5IHdpbGwgYmUgYXBwZW5kZWQgdG8gQGxtY2VfcGVuZGlu ZzsKKyAqICAtIGlmIEBwZW5kaW5nIGlzIGVtcHR5IGFuZCB0aGUgbmV3IHRlbGVtZXRyeSBpcyBm b3IgYSBkZWZlcnJlZAorICogICAgbm9uLWxvY2FsIE1DRSwgYWxsIGV4aXN0aW5nIHRlbGVtZXRy aWVzIGluIEBsbWNlX3BlbmRpbmcgd2lsbCBiZQorICogICAgbW92ZWQgdG8gQHBlbmRpbmcgYW5k IHRoZW4gdGhlIG5ldyB0ZWxlbWV0cnkgd2lsbCBiZSBhcHBlbmRlZCB0bworICogICAgQHBlbmRp bmcuCisgKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIE1DSVAgYml0IHNl dCwgc28gdGhhdCBpdCBkb2VzIG5vdAorICogbmVlZCB0byB3b3JyeSBhYm91dCBNQyMgcmUtb2Nj dXJyaW5nIGluIHRoaXMgZnVuY3Rpb24uCisgKgorICogQXMgYSByZXN1bHQsIHRoaXMgZnVuY3Rp b24gY2FuIHByZXNlcnZlIHRoZSBtdXR1YWwgZXhjbHVzaXZpdHkKKyAqIGJldHdlZW4gQHBlbmRp bmcgYW5kIEBsbWNlX3BlbmRpbmcgKHNlZSB0aGVpciBjb21tZW50cyBpbiBzdHJ1Y3QKKyAqIG1j X3RlbGVtX2NwdV9jdGwpLgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiAgQGNvb2tpZTogdGVsZW1l dHJ5IG9mIHRoZSBkZWZlcnJlZCBNQ0UKKyAqICBAbG1jZTogICBpbmRpY2F0ZSB3aGV0aGVyIHRo ZSB0ZWxlbWV0cnkgaXMgZm9yIExNQ0UKKyAqLwordm9pZCBtY3RlbGVtX2RlZmVyKG1jdGVsZW1f Y29va2llX3QgY29va2llLCBib29sIGxtY2UpCiB7CiAJc3RydWN0IG1jdGVsZW1fZW50ICp0ZXAg PSBDT09LSUUyTUNURShjb29raWUpOwotCi0JbWN0ZWxlbV94Y2hnX2hlYWQoJnRoaXNfY3B1KG1j dGN0bC5wZW5kaW5nKSwgJnRlcC0+bWN0ZV9uZXh0LCB0ZXApOworCXN0cnVjdCBtY190ZWxlbV9j cHVfY3RsICptY3RjdGwgPSAmdGhpc19jcHUobWN0Y3RsKTsKKworCUFTU0VSVChtY3RjdGwtPnBl bmRpbmcgPT0gTlVMTCB8fCBtY3RjdGwtPmxtY2VfcGVuZGluZyA9PSBOVUxMKTsKKworCWlmICht Y3RjdGwtPnBlbmRpbmcpCisJCW1jdGVsZW1feGNoZ19oZWFkKCZtY3RjdGwtPnBlbmRpbmcsICZ0 ZXAtPm1jdGVfbmV4dCwgdGVwKTsKKwllbHNlIGlmIChsbWNlKQorCQltY3RlbGVtX3hjaGdfaGVh ZCgmbWN0Y3RsLT5sbWNlX3BlbmRpbmcsICZ0ZXAtPm1jdGVfbmV4dCwgdGVwKTsKKwllbHNlIHsK KwkJLyoKKwkJICogTE1DRSBpcyBzdXBwb3J0ZWQgb24gU2t5bGFrZS1zZXJ2ZXIgYW5kIGxhdGVy IENQVXMsIG9uCisJCSAqIHdoaWNoIG1jZV9icm9hZGNhc3QgaXMgYWx3YXlzIHRydWUuIFRoZXJl Zm9yZSwgbm9uLWVtcHR5CisJCSAqIG1jdGN0bC0+bG1jZV9wZW5kaW5nIGluIHRoaXMgYnJhbmNo IGltcGxpZXMgYSBicm9hZGNhc3RpbmcKKwkJICogTUMjIGlzIGJlaW5nIGhhbmRsZWQsIGV2ZXJ5 IENQVSBpcyBpbiB0aGUgZXhjZXB0aW9uCisJCSAqIGNvbnRleHQsIGFuZCBubyBvbmUgaXMgY29u c3VtaW5nIG1jdGN0bC0+cGVuZGluZyBhdCB0aGlzCisJCSAqIG1vbWVudC4gQXMgYSByZXN1bHQs IHRoZSBmb2xsb3dpbmcgdHdvIGV4Y2hhbmdlcyB0b2dldGhlcgorCQkgKiBjYW4gYmUgdHJlYXRl ZCBhcyBhdG9taWMuCisJCSAqLworCQlpZiAobWN0Y3RsLT5sbWNlX3BlbmRpbmcpCisJCQltY3Rl bGVtX3hjaGdfaGVhZCgmbWN0Y3RsLT5sbWNlX3BlbmRpbmcsCisJCQkJCSAgJm1jdGN0bC0+cGVu ZGluZywgTlVMTCk7CisJCW1jdGVsZW1feGNoZ19oZWFkKCZtY3RjdGwtPnBlbmRpbmcsICZ0ZXAt Pm1jdGVfbmV4dCwgdGVwKTsKKwl9CiB9CiAKKy8qKgorICogTW92ZSB0ZWxlbWV0cmllcyBvZiBk ZWZlcnJlZCBNQ0UgZnJvbSB0aGUgcGVyLWNwdSBwZW5kaW5nIGxpc3Qgb24KKyAqIHRoaXMgb3Ig YW5vdGhlciBDUFUgdG8gdGhlIHBlci1jcHUgcHJvY2Vzc2luZyBsaXN0IG9uIHRoaXMgQ1BVLCBh bmQKKyAqIHRoZW4gcHJvY2VzcyBhbGwgZGVmZXJyZWQgTUNFIG9uIHRoZSBwcm9jZXNzaW5nIGxp c3QuCisgKgorICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHdpdGggTUNJUCBiaXQgc2V0 IChlLmcuIGZyb20gTUMjCisgKiBoYW5kbGVyKSBvciBjbGVhcmVkIChmcm9tIE1DRSBzb2Z0aXJx IGhhbmRsZXIpLiBJbiB0aGUgbGF0dGVyIGNhc2UsCisgKiBNQyMgbWF5IHJlLW9jY3VyIGluIHRo aXMgZnVuY3Rpb24uCisgKgorICogUGFyYW1ldGVyczoKKyAqICBAY3B1OiAgaW5kaWNhdGUgdGhl IENQVSB3aGVyZSB0aGUgcGVuZGluZyBsaXN0IGlzCisgKiAgQGZuOiAgIHRoZSBmdW5jdGlvbiB0 byBoYW5kbGUgdGhlIGRlZmVycmVkIE1DRQorICogIEBsbWNlOiBpbmRpY2F0ZSB3aGljaCBwZW5k aW5nIGxpc3Qgb24gQGNwdSBpcyBoYW5kbGVkCisgKi8KIHZvaWQgbWN0ZWxlbV9wcm9jZXNzX2Rl ZmVycmVkKHVuc2lnbmVkIGludCBjcHUsCi0JCQkgICAgICBpbnQgKCpmbikobWN0ZWxlbV9jb29r aWVfdCkpCisJCQkgICAgICBpbnQgKCpmbikobWN0ZWxlbV9jb29raWVfdCksCisJCQkgICAgICBi b29sIGxtY2UpCiB7CiAJc3RydWN0IG1jdGVsZW1fZW50ICp0ZXA7CiAJc3RydWN0IG1jdGVsZW1f ZW50ICpoZWFkLCAqcHJldjsKKwlzdHJ1Y3QgbWNfdGVsZW1fY3B1X2N0bCAqbWN0Y3RsID0gJnBl cl9jcHUobWN0Y3RsLCBjcHUpOwogCWludCByZXQ7CiAKIAkvKgogCSAqIEZpcnN0LCB1bmhvb2sg dGhlIGxpc3Qgb2YgdGVsZW1ldHJ5IHN0cnVjdHVyZXMsIGFuZAkKIAkgKiBob29rIGl0IHVwIHRv IHRoZSBwcm9jZXNzaW5nIGxpc3QgaGVhZCBmb3IgdGhpcyBDUFUuCisJICoKKwkgKiBJZiBAbG1j ZSBpcyB0cnVlIGFuZCBhIG5vbi1sb2NhbCBNQyMgb2NjdXJzIGJlZm9yZSB0aGUKKwkgKiBmb2xs b3dpbmcgYXRvbWljIGV4Y2hhbmdlLCBAbG1jZSB3aWxsIG5vdCBob2xkIGFmdGVyCisJICogcmVz dW1wdGlvbiwgYmVjYXVzZSBhbGwgdGVsZW1ldHJpZXMgaW4gQGxtY2VfcGVuZGluZyBvbgorCSAq IEBjcHUgYXJlIG1vdmVkIHRvIEBwZW5kaW5nIG9uIEBjcHUgaW4gbWNoZWNrX2Ntbl9oYW5kbGVy KCkuCisJICogSW4gc3VjaCBhIGNhc2UsIG5vIHRlbGVtZXRyaWVzIHdpbGwgYmUgaGFuZGxlZCBp biB0aGlzCisJICogZnVuY3Rpb24gYWZ0ZXIgcmVzdW1wdGlvbi4gQW5vdGhlciByb3VuZCBvZiBN Q0Ugc29mdGlycSwKKwkgKiB3aGljaCB3YXMgcmFpc2VkIGJ5IGFib3ZlIG1jaGVja19jbW5faGFu ZGxlcigpLCB3aWxsIGhhbmRsZQorCSAqIHRob3NlIG1vdmVkIHRlbGVtZXRyaWVzIGluIEBwZW5k aW5nIG9uIEBjcHUuCisJICoKKwkgKiBBbnkgTUMjIG9jY3VycmluZyBhZnRlciB0aGUgZm9sbG93 aW5nIGF0b21pYyBleGNoYW5nZSB3aWxsIGJlCisJICogaGFuZGxlZCBieSBhbm90aGVyIHJvdW5k IG9mIE1DRSBzb2Z0aXJxLgogCSAqLwotCW1jdGVsZW1feGNoZ19oZWFkKCZwZXJfY3B1KG1jdGN0 bC5wZW5kaW5nLCBjcHUpLAorCW1jdGVsZW1feGNoZ19oZWFkKGxtY2UgPyAmbWN0Y3RsLT5sbWNl X3BlbmRpbmcgOiAmbWN0Y3RsLT5wZW5kaW5nLAogCQkJICAmdGhpc19jcHUobWN0Y3RsLnByb2Nl c3NpbmcpLCBOVUxMKTsKIAogCWhlYWQgPSB0aGlzX2NwdShtY3RjdGwucHJvY2Vzc2luZyk7CkBA IC0xOTQsNiArMjc5LDExIEBAIGJvb2wgbWN0ZWxlbV9oYXNfZGVmZXJyZWQodW5zaWduZWQgaW50 IGNwdSkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgbWN0ZWxlbV9oYXNfZGVmZXJyZWRfbG1j ZSh1bnNpZ25lZCBpbnQgY3B1KQoreworCXJldHVybiBwZXJfY3B1KG1jdGN0bC5sbWNlX3BlbmRp bmcsIGNwdSkgIT0gTlVMTDsKK30KKwogLyogRnJlZSBhbiBlbnRyeSB0byBpdHMgbmF0aXZlIGZy ZWUgbGlzdDsgdGhlIGVudHJ5IG11c3Qgbm90IGJlIGxpbmtlZCBvbgogICogYW55IGxpc3QuCiAg Ki8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uaCBiL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uaAppbmRleCA5ZmNkZTRmNmI4Li5kNGViYTUzYWUw IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmgKKysrIGIveGVu L2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5oCkBAIC02Nyw5ICs2NywxMCBAQCBleHRlcm4g dm9pZCBtY3RlbGVtX2Rpc21pc3MobWN0ZWxlbV9jb29raWVfdCk7CiBleHRlcm4gbWN0ZWxlbV9j b29raWVfdCBtY3RlbGVtX2NvbnN1bWVfb2xkZXN0X2JlZ2luKG1jdGVsZW1fY2xhc3NfdCk7CiBl eHRlcm4gdm9pZCBtY3RlbGVtX2NvbnN1bWVfb2xkZXN0X2VuZChtY3RlbGVtX2Nvb2tpZV90KTsK IGV4dGVybiB2b2lkIG1jdGVsZW1fYWNrKG1jdGVsZW1fY2xhc3NfdCwgbWN0ZWxlbV9jb29raWVf dCk7Ci1leHRlcm4gdm9pZCBtY3RlbGVtX2RlZmVyKG1jdGVsZW1fY29va2llX3QpOworZXh0ZXJu IHZvaWQgbWN0ZWxlbV9kZWZlcihtY3RlbGVtX2Nvb2tpZV90LCBib29sIGxtY2UpOwogZXh0ZXJu IHZvaWQgbWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVkKHVuc2lnbmVkIGludCwKLSAgICBpbnQgKCop KG1jdGVsZW1fY29va2llX3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgKCopKG1jdGVsZW1fY29va2llX3QpLCBib29sIGxtY2UpOwogYm9vbCBtY3RlbGVtX2hh c19kZWZlcnJlZCh1bnNpZ25lZCBpbnQpOworYm9vbCBtY3RlbGVtX2hhc19kZWZlcnJlZF9sbWNl KHVuc2lnbmVkIGludCBjcHUpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL3g4Nl9tY2EuaCBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3g4Nl9tY2EuaApp bmRleCAzNGQxOTIxY2UxLi5kZTAzZjgyOWMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1 L21jaGVjay94ODZfbWNhLmgKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2sveDg2X21jYS5o CkBAIC00Miw3ICs0Miw5IEBACiAjZGVmaW5lIE1DR19TVEFUVVNfUklQViAgICAgICAgIDB4MDAw MDAwMDAwMDAwMDAwMVVMTAogI2RlZmluZSBNQ0dfU1RBVFVTX0VJUFYgICAgICAgICAweDAwMDAw MDAwMDAwMDAwMDJVTEwKICNkZWZpbmUgTUNHX1NUQVRVU19NQ0lQICAgICAgICAgMHgwMDAwMDAw MDAwMDAwMDA0VUxMCi0vKiBCaXRzIDMtNjMgYXJlIHJlc2VydmVkICovCisjZGVmaW5lIE1DR19T VEFUVVNfTE1DRSAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwOFVMTCAgLyogSW50ZWwgc3BlY2lm aWMgKi8KKy8qIEJpdHMgMy02MyBhcmUgcmVzZXJ2ZWQgb24gQ1BVIG5vdCBzdXBwb3J0aW5nIExN Q0UgKi8KKy8qIEJpdHMgNC02MyBhcmUgcmVzZXJ2ZWQgb24gQ1BVIHN1cHBvcnRpbmcgTE1DRSAq LwogCiAvKiBCaXRmaWVsZCBvZiBNU1JfSzhfTUNpX1NUQVRVUyByZWdpc3RlcnMgKi8KIC8qIE1D QSBlcnJvciBjb2RlICovCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK