From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v5 03/11] x86/mce: handle host LMCE Date: Mon, 3 Jul 2017 11:46:18 +0800 Message-ID: <20170703034626.9429-4-haozhong.zhang@intel.com> References: <20170703034626.9429-1-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-1-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+Ci0tLQpDaGFuZ2VzIGluIHY1OgogKiBBZGFwdCBmb3Ig Y2hhbmdlcyBpbiBQYXRjaCAyLgogKiBBZGQgY29tbWVudCBpbiBtY3RlbGVtX2RlZmVyKCkgdG8g ZXhwbGFpbiB3aHkgdGhlIHR3byBzZXBhcmF0ZSBleGNoYW5nZXMKICAgdG9nZXJ0aGVyIGNhbiBi ZSB0cmVhdGVkIGFzIGF0b21pYy4KCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KIHhlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMgfCAgIDQgKy0KIHhlbi9hcmNoL3g4Ni9jcHUv bWNoZWNrL21jZS5jICAgICAgfCAgNjggKysrKysrKysrKysrKystLS0tLS0tLS0tCiB4ZW4vYXJj aC94ODYvY3B1L21jaGVjay9tY2UuaCAgICAgIHwgICAxICsKIHhlbi9hcmNoL3g4Ni9jcHUvbWNo ZWNrL21jdGVsZW0uYyAgfCAxMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5oICB8ICAgNSArLQogeGVuL2FyY2gv eDg2L2NwdS9tY2hlY2sveDg2X21jYS5oICB8ICAgNCArLQogNiBmaWxlcyBjaGFuZ2VkLCAxNDcg aW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svbWNhY3Rpb24uYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9u LmMKaW5kZXggZGFiOWVhYzMwNi4uY2ExN2QyMmJkOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svbWNhY3Rpb24uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2Fj dGlvbi5jCkBAIC05Niw3ICs5Niw5IEBAIG1jX21lbWVycl9kaGFuZGxlcihzdHJ1Y3QgbWNhX2Jp bmZvICpiaW5mbywKIAogICAgICAgICAgICAgICAgIGJhbmstPm1jX2FkZHIgPSBnZm4gPDwgUEFH RV9TSElGVCB8CiAgICAgICAgICAgICAgICAgICAoYmFuay0+bWNfYWRkciAmIChQQUdFX1NJWkUg LTEgKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGZpbGxfdm1zcl9kYXRhKGJhbmssIGQsIGdsb2Jh bC0+bWNfZ3N0YXR1cywKKyAgICAgICAgICAgICAgICAvKiBUT0RPOiBzdXBwb3J0IGluamVjdGlu ZyBMTUNFICovCisgICAgICAgICAgICAgICAgaWYgKGZpbGxfdm1zcl9kYXRhKGJhbmssIGQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+bWNfZ3N0YXR1cyAmIH5N Q0dfU1RBVFVTX0xNQ0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtY2Vf dmNwdWlkID09IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVCkpCiAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICBtY2VfcHJpbnRrKE1DRV9RVUlFVCwgIkZpbGwgdk1DRSMgZGF0YSBm b3IgRE9NJWQgIgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMgYi94 ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYwppbmRleCBkMjQ3ZDZlMTk4Li4wZTE3ZmI3MDdh IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYworKysgYi94ZW4vYXJj aC94ODYvY3B1L21jaGVjay9tY2UuYwpAQCAtMzg3LDYgKzM4Nyw3IEBAIG1jaGVja19tY2FfbG9n b3V0KGVudW0gbWNhX3NvdXJjZSB3aG8sIHN0cnVjdCBtY2FfYmFua3MgKmJhbmttYXNrLAogICAg ICAgICBzcC0+ZXJyY250ID0gZXJyY250OwogICAgICAgICBzcC0+cmlwdiA9IChnc3RhdHVzICYg TUNHX1NUQVRVU19SSVBWKSAhPSAwOwogICAgICAgICBzcC0+ZWlwdiA9IChnc3RhdHVzICYgTUNH X1NUQVRVU19FSVBWKSAhPSAwOworICAgICAgICBzcC0+bG1jZSA9IChnc3RhdHVzICYgTUNHX1NU QVRVU19MTUNFKSAhPSAwOwogICAgICAgICBzcC0+dWMgPSB1YzsKICAgICAgICAgc3AtPnBjYyA9 IHBjYzsKICAgICAgICAgc3AtPnJlY292ZXJhYmxlID0gcmVjb3ZlcjsKQEAgLTQ1NCw2ICs0NTUs NyBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKICAgICB1aW50NjRfdCBnc3RhdHVzOwogICAgIG1jdGVsZW1fY29va2llX3QgbWN0YyA9 IE5VTEw7CiAgICAgc3RydWN0IG1jYV9zdW1tYXJ5IGJzOworICAgIGJvb2wgd2FpdCwgbG1jZTsK IAogICAgIG1jZV9zcGluX2xvY2soJm1jZV9sb2dvdXRfbG9jayk7CiAKQEAgLTQ2Miw2ICs0NjQs OCBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKICAgICAgICAgICAgIHNpemVvZihsb25nKSAqIEJJVFNfVE9fTE9OR1MoY2xlYXJfYmFu ay0+bnVtKSk7CiAgICAgfQogICAgIG1jdGMgPSBtY2hlY2tfbWNhX2xvZ291dChNQ0FfTUNFX1ND QU4sIGJhbmttYXNrLCAmYnMsIGNsZWFyX2JhbmspOworICAgIGxtY2UgPSBicy5sbWNlOworICAg IHdhaXQgPSBtY2VfYnJvYWRjYXN0ICYmICFsbWNlOwogCiAgICAgaWYgKGJzLmVycmNudCkgewog ICAgICAgICAvKgpAQCAtNDcwLDcgKzQ3NCw3IEBAIHZvaWQgbWNoZWNrX2Ntbl9oYW5kbGVyKGNv bnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICBpZiAoYnMudWMgfHwgYnMu cGNjKSB7CiAgICAgICAgICAgICBhZGRfdGFpbnQoVEFJTlRfTUFDSElORV9DSEVDSyk7CiAgICAg ICAgICAgICBpZiAobWN0YyAhPSBOVUxMKQotICAgICAgICAgICAgICAgIG1jdGVsZW1fZGVmZXIo bWN0Yyk7CisgICAgICAgICAgICAgICAgbWN0ZWxlbV9kZWZlcihtY3RjLCBsbWNlKTsKICAgICAg ICAgICAgIC8qCiAgICAgICAgICAgICAgKiBGb3IgUENDPTEgYW5kIGNhbid0IGJlIHJlY292ZXJl ZCwgY29udGV4dCBpcyBsb3N0LCBzbwogICAgICAgICAgICAgICogcmVib290IG5vdyB3aXRob3V0 IGNsZWFyaW5nIHRoZSBiYW5rcywgYW5kIGRlYWwgd2l0aApAQCAtNDk3LDE2ICs1MDEsMTYgQEAg dm9pZCBtY2hlY2tfY21uX2hhbmRsZXIoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp CiAgICAgfQogICAgIG1jZV9zcGluX3VubG9jaygmbWNlX2xvZ291dF9sb2NrKTsKIAotICAgIG1j ZV9iYXJyaWVyX2VudGVyKCZtY2VfdHJhcF9iYXIsIG1jZV9icm9hZGNhc3QpOworICAgIG1jZV9i YXJyaWVyX2VudGVyKCZtY2VfdHJhcF9iYXIsIHdhaXQpOwogICAgIGlmICggbWN0YyAhPSBOVUxM ICYmIG1jZV91cmdlbnRfYWN0aW9uKHJlZ3MsIG1jdGMpKQogICAgICAgICBjcHVtYXNrX3NldF9j cHUoc21wX3Byb2Nlc3Nvcl9pZCgpLCAmbWNlX2ZhdGFsX2NwdXMpOwotICAgIG1jZV9iYXJyaWVy X2V4aXQoJm1jZV90cmFwX2JhciwgbWNlX2Jyb2FkY2FzdCk7CisgICAgbWNlX2JhcnJpZXJfZXhp dCgmbWNlX3RyYXBfYmFyLCB3YWl0KTsKIAogICAgIC8qCiAgICAgICogV2FpdCB1bnRpbCBldmVy eWJvZHkgaGFzIHByb2Nlc3NlZCB0aGUgdHJhcC4KICAgICAgKi8KLSAgICBtY2VfYmFycmllcl9l bnRlcigmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRjYXN0KTsKLSAgICBpZiAoYXRvbWljX3JlYWQo JnNldmVyaXR5X2NwdSkgPT0gc21wX3Byb2Nlc3Nvcl9pZCgpKQorICAgIG1jZV9iYXJyaWVyX2Vu dGVyKCZtY2VfdHJhcF9iYXIsIHdhaXQpOworICAgIGlmIChsbWNlIHx8IGF0b21pY19yZWFkKCZz ZXZlcml0eV9jcHUpID09IHNtcF9wcm9jZXNzb3JfaWQoKSkKICAgICB7CiAgICAgICAgIC8qIEFj Y29yZGluZyB0byBTRE0sIGlmIG5vIGVycm9yIGJhbmsgZm91bmQgb24gYW55IGNwdXMsCiAgICAg ICAgICAqIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmluZywgd2UgY2FuJ3QgZG8gYW55CkBA IC01MjQsMTYgKzUyOCwxNiBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgYXRvbWljX3NldCgmZm91bmRfZXJyb3IsIDAp OwogICAgICAgICBhdG9taWNfc2V0KCZzZXZlcml0eV9jcHUsIC0xKTsKICAgICB9Ci0gICAgbWNl X2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRjYXN0KTsKKyAgICBtY2VfYmFy cmllcl9leGl0KCZtY2VfdHJhcF9iYXIsIHdhaXQpOwogCiAgICAgLyogQ2xlYXIgZmxhZ3MgYWZ0 ZXIgYWJvdmUgZmF0YWwgY2hlY2sgKi8KLSAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBf YmFyLCBtY2VfYnJvYWRjYXN0KTsKKyAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFy LCB3YWl0KTsKICAgICBnc3RhdHVzID0gbWNhX3JkbXNyKE1TUl9JQTMyX01DR19TVEFUVVMpOwog ICAgIGlmICgoZ3N0YXR1cyAmIE1DR19TVEFUVVNfTUNJUCkgIT0gMCkgewogICAgICAgICBtY2Vf cHJpbnRrKE1DRV9DUklUSUNBTCwgIk1DRTogQ2xlYXIgTUNJUEAgbGFzdCBzdGVwIik7CiAgICAg ICAgIG1jYV93cm1zcihNU1JfSUEzMl9NQ0dfU1RBVFVTLCAwKTsKICAgICB9Ci0gICAgbWNlX2Jh cnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyLCBtY2VfYnJvYWRjYXN0KTsKKyAgICBtY2VfYmFycmll cl9leGl0KCZtY2VfdHJhcF9iYXIsIHdhaXQpOwogCiAgICAgcmFpc2Vfc29mdGlycShNQUNISU5F X0NIRUNLX1NPRlRJUlEpOwogfQpAQCAtMTU2Miw3ICsxNTY2LDggQEAgc3RhdGljIHZvaWQgbWNf cGFuaWNfZHVtcCh2b2lkKQogCiAgICAgZHByaW50ayhYRU5MT0dfRVJSLCAiQmVnaW4gZHVtcCBt Y19pbmZvXG4iKTsKICAgICBmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKLSAgICAgICAgbWN0ZWxl bV9wcm9jZXNzX2RlZmVycmVkKGNwdSwgeDg2X21jaW5mb19kdW1wX3BhbmljKTsKKyAgICAgICAg bWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVkKGNwdSwgeDg2X21jaW5mb19kdW1wX3BhbmljLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWN0ZWxlbV9oYXNfZGVmZXJyZWRfbG1jZShj cHUpKTsKICAgICBkcHJpbnRrKFhFTkxPR19FUlIsICJFbmQgZHVtcCBtY19pbmZvLCAleCBtY2lu Zm8gZHVtcGVkXG4iLCBtY2luZm9fZHVtcHBlZCk7CiB9CiAKQEAgLTE3MDAsMzggKzE3MDUsNDUg QEAgc3RhdGljIHZvaWQgbWNlX3NvZnRpcnEodm9pZCkKICAgICBzdGF0aWMgYXRvbWljX3Qgc2V2 ZXJpdHlfY3B1OwogICAgIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICAgdW5zaWdu ZWQgaW50IHdvcmtjcHU7CisgICAgYm9vbCBsbWNlID0gbWN0ZWxlbV9oYXNfZGVmZXJyZWRfbG1j ZShjcHUpOworICAgIGJvb2wgd2FpdCA9IG1jZV9icm9hZGNhc3QgJiYgIWxtY2U7CiAKICAgICBt Y2VfcHJpbnRrKE1DRV9WRVJCT1NFLCAiQ1BVJWQgZW50ZXIgc29mdGlycVxuIiwgY3B1KTsKIAot ICAgIG1jZV9iYXJyaWVyX2VudGVyKCZtY2VfaW5zaWRlX2JhciwgbWNlX2Jyb2FkY2FzdCk7Cisg ICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV9pbnNpZGVfYmFyLCB3YWl0KTsKIAotICAgIC8qCi0g ICAgICogRXZlcnlib2R5IGlzIGhlcmUuIE5vdyBsZXQncyBzZWUgd2hvIGdldHMgdG8gZG8gdGhl Ci0gICAgICogcmVjb3Zlcnkgd29yay4gUmlnaHQgbm93IHdlIGp1c3Qgc2VlIGlmIHRoZXJlJ3Mg YSBDUFUKLSAgICAgKiB0aGF0IGRpZCBub3QgaGF2ZSBhbnkgcHJvYmxlbXMsIGFuZCBwaWNrIHRo YXQgb25lLgotICAgICAqCi0gICAgICogRmlyc3QsIGp1c3Qgc2V0IGEgZGVmYXVsdCB2YWx1ZTog dGhlIGxhc3QgQ1BVIHdobyByZWFjaGVzIHRoaXMKLSAgICAgKiB3aWxsIG92ZXJ3cml0ZSB0aGUg dmFsdWUgYW5kIGJlY29tZSB0aGUgZGVmYXVsdC4KLSAgICAgKi8KLQotICAgIGF0b21pY19zZXQo JnNldmVyaXR5X2NwdSwgY3B1KTsKKyAgICBpZiAoIWxtY2UpIHsKKyAgICAgICAgLyoKKyAgICAg ICAgICogRXZlcnlib2R5IGlzIGhlcmUuIE5vdyBsZXQncyBzZWUgd2hvIGdldHMgdG8gZG8gdGhl CisgICAgICAgICAqIHJlY292ZXJ5IHdvcmsuIFJpZ2h0IG5vdyB3ZSBqdXN0IHNlZSBpZiB0aGVy ZSdzIGEgQ1BVCisgICAgICAgICAqIHRoYXQgZGlkIG5vdCBoYXZlIGFueSBwcm9ibGVtcywgYW5k IHBpY2sgdGhhdCBvbmUuCisgICAgICAgICAqCisgICAgICAgICAqIEZpcnN0LCBqdXN0IHNldCBh IGRlZmF1bHQgdmFsdWU6IHRoZSBsYXN0IENQVSB3aG8gcmVhY2hlcyB0aGlzCisgICAgICAgICAq IHdpbGwgb3ZlcndyaXRlIHRoZSB2YWx1ZSBhbmQgYmVjb21lIHRoZSBkZWZhdWx0LgorICAgICAg ICAgKi8KIAotICAgIG1jZV9iYXJyaWVyX2VudGVyKCZtY2Vfc2V2ZXJpdHlfYmFyLCBtY2VfYnJv YWRjYXN0KTsKLSAgICBpZiAoIW1jdGVsZW1faGFzX2RlZmVycmVkKGNwdSkpCiAgICAgICAgIGF0 b21pY19zZXQoJnNldmVyaXR5X2NwdSwgY3B1KTsKLSAgICBtY2VfYmFycmllcl9leGl0KCZtY2Vf c2V2ZXJpdHlfYmFyLCBtY2VfYnJvYWRjYXN0KTsKKworICAgICAgICBtY2VfYmFycmllcl9lbnRl cigmbWNlX3NldmVyaXR5X2Jhciwgd2FpdCk7CisgICAgICAgIGlmICghbWN0ZWxlbV9oYXNfZGVm ZXJyZWQoY3B1KSkKKyAgICAgICAgICAgIGF0b21pY19zZXQoJnNldmVyaXR5X2NwdSwgY3B1KTsK KyAgICAgICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX3NldmVyaXR5X2Jhciwgd2FpdCk7CisgICAg fQogCiAgICAgLyogV2UgY2hvb3NlIHNldmVyaXR5X2NwdSBmb3IgZnVydGhlciBwcm9jZXNzaW5n ICovCi0gICAgaWYgKGF0b21pY19yZWFkKCZzZXZlcml0eV9jcHUpID09IGNwdSkgeworICAgIGlm IChsbWNlIHx8IGF0b21pY19yZWFkKCZzZXZlcml0eV9jcHUpID09IGNwdSkgewogCiAgICAgICAg IG1jZV9wcmludGsoTUNFX1ZFUkJPU0UsICJDUFUlZCBoYW5kbGluZyBlcnJvcnNcbiIsIGNwdSk7 CiAKICAgICAgICAgLyogU3RlcDE6IEZpbGwgRE9NMCBMT0cgYnVmZmVyLCB2TUNFIGluamVjdGlv biBidWZmZXIgYW5kCiAgICAgICAgICAqIHZNQ0UgTVNScyB2aXJ0dWFsaXphdGlvbiBidWZmZXIK ICAgICAgICAgICovCi0gICAgICAgIGZvcl9lYWNoX29ubGluZV9jcHUod29ya2NwdSkgewotICAg ICAgICAgICAgbWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVkKHdvcmtjcHUsIG1jZV9kZWxheWVkX2Fj dGlvbik7Ci0gICAgICAgIH0KKworICAgICAgICBpZiAobG1jZSkKKyAgICAgICAgICAgIG1jdGVs ZW1fcHJvY2Vzc19kZWZlcnJlZChjcHUsIG1jZV9kZWxheWVkX2FjdGlvbiwgdHJ1ZSk7CisgICAg ICAgIGVsc2UKKyAgICAgICAgICAgIGZvcl9lYWNoX29ubGluZV9jcHUod29ya2NwdSkKKyAgICAg ICAgICAgICAgICBtY3RlbGVtX3Byb2Nlc3NfZGVmZXJyZWQod29ya2NwdSwgbWNlX2RlbGF5ZWRf YWN0aW9uLCBmYWxzZSk7CiAKICAgICAgICAgLyogU3RlcDI6IFNlbmQgTG9nIHRvIERPTTAgdGhy b3VnaCB2SVJRICovCiAgICAgICAgIGlmIChkb20wX3ZtY2VfZW5hYmxlZCgpKSB7CkBAIC0xNzQw LDcgKzE3NTIsNyBAQCBzdGF0aWMgdm9pZCBtY2Vfc29mdGlycSh2b2lkKQogICAgICAgICB9CiAg ICAgfQogCi0gICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX2luc2lkZV9iYXIsIG1jZV9icm9hZGNh c3QpOworICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV9pbnNpZGVfYmFyLCB3YWl0KTsKIH0KIAog LyogTWFjaGluZSBDaGVjayBvd25lciBqdWRnZSBhbGdvcml0aG06CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvY3B1L21jaGVjay9tY2UuaCBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5o CmluZGV4IDEwZTVjZWJmOGIuLjRmMTM3OTE5NDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL21jZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCkBAIC0x MDksNiArMTA5LDcgQEAgc3RydWN0IG1jYV9zdW1tYXJ5IHsKICAgICBpbnQgICAgICAgICBlaXB2 OyAgIC8qIG1lYW5pbmdmdWwgb24gI01DICovCiAgICAgYm9vbCAgICAgICAgdWM7ICAgICAvKiBV QyBmbGFnICovCiAgICAgYm9vbCAgICAgICAgcGNjOyAgICAvKiBQQ0MgZmxhZyAqLworICAgIGJv b2wgICAgICAgIGxtY2U7ICAgLyogTE1DRSBmbGFnIChJbnRlbCBvbmx5KSAqLwogICAgIGJvb2wg ICAgICAgIHJlY292ZXJhYmxlOyAvKiBzb2Z0d2FyZSBlcnJvciByZWNvdmVyYWJsZSBmbGFnICov CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmMgYi94 ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmMKaW5kZXggNTdhYmVhYjM1Ny4uYTJmYjMx OWZmOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uYwpAQCAtMTA5LDggKzEwOSwyMiBAQCBz dHJ1Y3QgbWNfdGVsZW1fY3B1X2N0bCB7CiAJLyoKIAkgKiBQZXItQ1BVIHByb2Nlc3NpbmcgbGlz dHMsIHVzZWQgZm9yIGRlZmVycmVkIChzb2Z0aXJxKQogCSAqIHByb2Nlc3Npbmcgb2YgdGVsZW1l dHJ5LgorCSAqCisJICogVGhlIHR3byBwZW5kaW5nIGxpc3RzIEBsbWNlX3BlbmRpbmcgYW5kIEBw ZW5kaW5nIGdyb3cgYXQKKwkgKiB0aGUgaGVhZCBpbiB0aGUgcmV2ZXJzZSBjaHJvbm9sb2dpY2Fs IG9yZGVyLgorCSAqCisJICogQHBlbmRpbmcgYW5kIEBsbWNlX3BlbmRpbmcgb24gdGhlIHNhbWUg Q1BVIGFyZSBtdXR1YWxseQorCSAqIGV4Y2x1c2l2ZSwgaS5lLiBkZWZlcnJlZCBNQ0Ugb24gYSBD UFUgYXJlIGVpdGhlciBhbGwgaW4KKwkgKiBAbG1jZV9wZW5kaW5nIG9yIGFsbCBpbiBAcGVuZGlu Zy4gSW4gdGhlIGZvcm1lciBjYXNlLCBhbGwKKwkgKiBkZWZlcnJlZCBNQ0UgYXJlIExNQ0UuIElu IHRoZSBsYXR0ZXIgY2FzZSwgYm90aCBMTUNFIGFuZAorCSAqIG5vbi1sb2NhbCBNQ0UgY2FuIGJl IGluIEBwZW5kaW5nLCBhbmQgQHBlbmRpbmcgY29udGFpbnMgYXQKKwkgKiBsZWFzdCBvbmUgbm9u LWxvY2FsIE1DRSBpZiBpdCdzIG5vdCBlbXB0eS4KKwkgKgorCSAqIENoYW5nZXMgdG8gQHBlbmRp bmcgYW5kIEBsbWNlX3BlbmRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZAorCSAqIHZpYSBtY3RlbGVt X3Byb2Nlc3NfZGVmZXJyZWQoKSBhbmQgbWN0ZWxlbV9kZWZlcigpLCBpbiBvcmRlcgorCSAqIHRv IGd1YXJhbnRlZSB0aGUgYWJvdmUgbXV0dWFsIGV4Y2x1c2l2aXR5LgogCSAqLwotCXN0cnVjdCBt Y3RlbGVtX2VudCAqcGVuZGluZzsKKwlzdHJ1Y3QgbWN0ZWxlbV9lbnQgKnBlbmRpbmcsICpsbWNl X3BlbmRpbmc7CiAJc3RydWN0IG1jdGVsZW1fZW50ICpwcm9jZXNzaW5nOwogfTsKIHN0YXRpYyBE RUZJTkVfUEVSX0NQVShzdHJ1Y3QgbWNfdGVsZW1fY3B1X2N0bCwgbWN0Y3RsKTsKQEAgLTEzMSwy NiArMTQ1LDk3IEBAIHN0YXRpYyB2b2lkIG1jdGVsZW1feGNoZ19oZWFkKHN0cnVjdCBtY3RlbGVt X2VudCAqKmhlYWRwLAogCX0KIH0KIAotCi12b2lkIG1jdGVsZW1fZGVmZXIobWN0ZWxlbV9jb29r aWVfdCBjb29raWUpCisvKioKKyAqIEFwcGVuZCBhIHRlbGVtZXRyeSBvZiBkZWZlcnJlZCBNQ0Ug dG8gYSBwZXItY3B1IHBlbmRpbmcgbGlzdCwKKyAqIGVpdGhlciBAcGVuZGluZyBvciBAbG1jZV9w ZW5kaW5nLCBhY2NvcmRpbmcgdG8gcnVsZXMgYmVsb3c6CisgKiAgLSBpZiBAcGVuZGluZyBpcyBu b3QgZW1wdHksIHRoZW4gdGhlIG5ldyB0ZWxlbWV0cnkgd2lsbCBiZQorICogICAgYXBwZW5kZWQg dG8gQHBlbmRpbmc7CisgKiAgLSBpZiBAcGVuZGluZyBpcyBlbXB0eSBhbmQgdGhlIG5ldyB0ZWxl bWV0cnkgaXMgZm9yIGEgZGVmZXJyZWQKKyAqICAgIExNQ0UsIHRoZW4gdGhlIG5ldyB0ZWxlbWV0 cnkgd2lsbCBiZSBhcHBlbmRlZCB0byBAbG1jZV9wZW5kaW5nOworICogIC0gaWYgQHBlbmRpbmcg aXMgZW1wdHkgYW5kIHRoZSBuZXcgdGVsZW1ldHJ5IGlzIGZvciBhIGRlZmVycmVkCisgKiAgICBu b24tbG9jYWwgTUNFLCBhbGwgZXhpc3RpbmcgdGVsZW1ldHJpZXMgaW4gQGxtY2VfcGVuZGluZyB3 aWxsIGJlCisgKiAgICBtb3ZlZCB0byBAcGVuZGluZyBhbmQgdGhlbiB0aGUgbmV3IHRlbGVtZXRy eSB3aWxsIGJlIGFwcGVuZGVkIHRvCisgKiAgICBAcGVuZGluZy4KKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggTUNJUCBiaXQgc2V0LCBzbyB0aGF0IGl0IGRvZXMgbm90 CisgKiBuZWVkIHRvIHdvcnJ5IGFib3V0IE1DIyByZS1vY2N1cnJpbmcgaW4gdGhpcyBmdW5jdGlv bi4KKyAqCisgKiBBcyBhIHJlc3VsdCwgdGhpcyBmdW5jdGlvbiBjYW4gcHJlc2VydmUgdGhlIG11 dHVhbCBleGNsdXNpdml0eQorICogYmV0d2VlbiBAcGVuZGluZyBhbmQgQGxtY2VfcGVuZGluZyAo c2VlIHRoZWlyIGNvbW1lbnRzIGluIHN0cnVjdAorICogbWNfdGVsZW1fY3B1X2N0bCkuCisgKgor ICogUGFyYW1ldGVyczoKKyAqICBAY29va2llOiB0ZWxlbWV0cnkgb2YgdGhlIGRlZmVycmVkIE1D RQorICogIEBsbWNlOiAgIGluZGljYXRlIHdoZXRoZXIgdGhlIHRlbGVtZXRyeSBpcyBmb3IgTE1D RQorICovCit2b2lkIG1jdGVsZW1fZGVmZXIobWN0ZWxlbV9jb29raWVfdCBjb29raWUsIGJvb2wg bG1jZSkKIHsKIAlzdHJ1Y3QgbWN0ZWxlbV9lbnQgKnRlcCA9IENPT0tJRTJNQ1RFKGNvb2tpZSk7 Ci0KLQltY3RlbGVtX3hjaGdfaGVhZCgmdGhpc19jcHUobWN0Y3RsLnBlbmRpbmcpLCAmdGVwLT5t Y3RlX25leHQsIHRlcCk7CisJc3RydWN0IG1jX3RlbGVtX2NwdV9jdGwgKm1jdGN0bCA9ICZ0aGlz X2NwdShtY3RjdGwpOworCisJQVNTRVJUKG1jdGN0bC0+cGVuZGluZyA9PSBOVUxMIHx8IG1jdGN0 bC0+bG1jZV9wZW5kaW5nID09IE5VTEwpOworCisJaWYgKG1jdGN0bC0+cGVuZGluZykKKwkJbWN0 ZWxlbV94Y2hnX2hlYWQoJm1jdGN0bC0+cGVuZGluZywgJnRlcC0+bWN0ZV9uZXh0LCB0ZXApOwor CWVsc2UgaWYgKGxtY2UpCisJCW1jdGVsZW1feGNoZ19oZWFkKCZtY3RjdGwtPmxtY2VfcGVuZGlu ZywgJnRlcC0+bWN0ZV9uZXh0LCB0ZXApOworCWVsc2UgeworCQkvKgorCQkgKiBMTUNFIGlzIHN1 cHBvcnRlZCBvbiBTa3lsYWtlLXNlcnZlciBhbmQgbGF0ZXIgQ1BVcywgb24KKwkJICogd2hpY2gg bWNlX2Jyb2FkY2FzdCBpcyBhbHdheXMgdHJ1ZS4gVGhlcmVmb3JlLCBub24tZW1wdHkKKwkJICog bWN0Y3RsLT5sbWNlX3BlbmRpbmcgaW4gdGhpcyBicmFuY2ggaW1wbGllcyBhIGJyb2FkY2FzdGlu ZworCQkgKiBNQyMgaXMgYmVpbmcgaGFuZGxlZCwgZXZlcnkgQ1BVIGlzIGluIHRoZSBleGNlcHRp b24KKwkJICogY29udGV4dCwgYW5kIG5vIG9uZSBpcyBjb25zdW1pbmcgbWN0Y3RsLT5wZW5kaW5n IGF0IHRoaXMKKwkJICogbW9tZW50LiBBcyBhIHJlc3VsdCwgdGhlIGZvbGxvd2luZyB0d28gZXhj aGFuZ2VzIHRvZ2V0aGVyCisJCSAqIGNhbiBiZSB0cmVhdGVkIGFzIGF0b21pYy4KKwkJICovCisJ CWlmIChtY3RjdGwtPmxtY2VfcGVuZGluZykKKwkJCW1jdGVsZW1feGNoZ19oZWFkKCZtY3RjdGwt PmxtY2VfcGVuZGluZywKKwkJCQkJICAmbWN0Y3RsLT5wZW5kaW5nLCBOVUxMKTsKKwkJbWN0ZWxl bV94Y2hnX2hlYWQoJm1jdGN0bC0+cGVuZGluZywgJnRlcC0+bWN0ZV9uZXh0LCB0ZXApOworCX0K IH0KIAorLyoqCisgKiBNb3ZlIHRlbGVtZXRyaWVzIG9mIGRlZmVycmVkIE1DRSBmcm9tIHRoZSBw ZXItY3B1IHBlbmRpbmcgbGlzdCBvbgorICogdGhpcyBvciBhbm90aGVyIENQVSB0byB0aGUgcGVy LWNwdSBwcm9jZXNzaW5nIGxpc3Qgb24gdGhpcyBDUFUsIGFuZAorICogdGhlbiBwcm9jZXNzIGFs bCBkZWZlcnJlZCBNQ0Ugb24gdGhlIHByb2Nlc3NpbmcgbGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIGNhbiBiZSBjYWxsZWQgd2l0aCBNQ0lQIGJpdCBzZXQgKGUuZy4gZnJvbSBNQyMKKyAqIGhh bmRsZXIpIG9yIGNsZWFyZWQgKGZyb20gTUNFIHNvZnRpcnEgaGFuZGxlcikuIEluIHRoZSBsYXR0 ZXIgY2FzZSwKKyAqIE1DIyBtYXkgcmUtb2NjdXIgaW4gdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBQ YXJhbWV0ZXJzOgorICogIEBjcHU6ICBpbmRpY2F0ZSB0aGUgQ1BVIHdoZXJlIHRoZSBwZW5kaW5n IGxpc3QgaXMKKyAqICBAZm46ICAgdGhlIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgZGVmZXJyZWQg TUNFCisgKiAgQGxtY2U6IGluZGljYXRlIHdoaWNoIHBlbmRpbmcgbGlzdCBvbiBAY3B1IGlzIGhh bmRsZWQKKyAqLwogdm9pZCBtY3RlbGVtX3Byb2Nlc3NfZGVmZXJyZWQodW5zaWduZWQgaW50IGNw dSwKLQkJCSAgICAgIGludCAoKmZuKShtY3RlbGVtX2Nvb2tpZV90KSkKKwkJCSAgICAgIGludCAo KmZuKShtY3RlbGVtX2Nvb2tpZV90KSwKKwkJCSAgICAgIGJvb2wgbG1jZSkKIHsKIAlzdHJ1Y3Qg bWN0ZWxlbV9lbnQgKnRlcDsKIAlzdHJ1Y3QgbWN0ZWxlbV9lbnQgKmhlYWQsICpwcmV2OworCXN0 cnVjdCBtY190ZWxlbV9jcHVfY3RsICptY3RjdGwgPSAmcGVyX2NwdShtY3RjdGwsIGNwdSk7CiAJ aW50IHJldDsKIAogCS8qCiAJICogRmlyc3QsIHVuaG9vayB0aGUgbGlzdCBvZiB0ZWxlbWV0cnkg c3RydWN0dXJlcywgYW5kCQogCSAqIGhvb2sgaXQgdXAgdG8gdGhlIHByb2Nlc3NpbmcgbGlzdCBo ZWFkIGZvciB0aGlzIENQVS4KKwkgKgorCSAqIElmIEBsbWNlIGlzIHRydWUgYW5kIGEgbm9uLWxv Y2FsIE1DIyBvY2N1cnMgYmVmb3JlIHRoZQorCSAqIGZvbGxvd2luZyBhdG9taWMgZXhjaGFuZ2Us IEBsbWNlIHdpbGwgbm90IGhvbGQgYWZ0ZXIKKwkgKiByZXN1bXB0aW9uLCBiZWNhdXNlIGFsbCB0 ZWxlbWV0cmllcyBpbiBAbG1jZV9wZW5kaW5nIG9uCisJICogQGNwdSBhcmUgbW92ZWQgdG8gQHBl bmRpbmcgb24gQGNwdSBpbiBtY2hlY2tfY21uX2hhbmRsZXIoKS4KKwkgKiBJbiBzdWNoIGEgY2Fz ZSwgbm8gdGVsZW1ldHJpZXMgd2lsbCBiZSBoYW5kbGVkIGluIHRoaXMKKwkgKiBmdW5jdGlvbiBh ZnRlciByZXN1bXB0aW9uLiBBbm90aGVyIHJvdW5kIG9mIE1DRSBzb2Z0aXJxLAorCSAqIHdoaWNo IHdhcyByYWlzZWQgYnkgYWJvdmUgbWNoZWNrX2Ntbl9oYW5kbGVyKCksIHdpbGwgaGFuZGxlCisJ ICogdGhvc2UgbW92ZWQgdGVsZW1ldHJpZXMgaW4gQHBlbmRpbmcgb24gQGNwdS4KKwkgKgorCSAq IElmIGFub3RoZXIgTUMjIG9jY3VycyBhZnRlciB0aGUgZm9sbG93aW5nIGF0b21pYyBleGNoYW5n ZSwKKwkgKiBpdCB3aWxsIGJlIGhhbmRsZWQgYnkgYW5vdGhlciByb3VuZCBvZiBNQ0Ugc29mdGly cS4KIAkgKi8KLQltY3RlbGVtX3hjaGdfaGVhZCgmcGVyX2NwdShtY3RjdGwucGVuZGluZywgY3B1 KSwKKwltY3RlbGVtX3hjaGdfaGVhZChsbWNlID8gJm1jdGN0bC0+bG1jZV9wZW5kaW5nIDogJm1j dGN0bC0+cGVuZGluZywKIAkJCSAgJnRoaXNfY3B1KG1jdGN0bC5wcm9jZXNzaW5nKSwgTlVMTCk7 CiAKIAloZWFkID0gdGhpc19jcHUobWN0Y3RsLnByb2Nlc3NpbmcpOwpAQCAtMTk0LDYgKzI3OSwx MSBAQCBib29sIG1jdGVsZW1faGFzX2RlZmVycmVkKHVuc2lnbmVkIGludCBjcHUpCiAJcmV0dXJu IGZhbHNlOwogfQogCitib29sIG1jdGVsZW1faGFzX2RlZmVycmVkX2xtY2UodW5zaWduZWQgaW50 IGNwdSkKK3sKKwlyZXR1cm4gcGVyX2NwdShtY3RjdGwubG1jZV9wZW5kaW5nLCBjcHUpICE9IE5V TEw7Cit9CisKIC8qIEZyZWUgYW4gZW50cnkgdG8gaXRzIG5hdGl2ZSBmcmVlIGxpc3Q7IHRoZSBl bnRyeSBtdXN0IG5vdCBiZSBsaW5rZWQgb24KICAqIGFueSBsaXN0LgogICovCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmggYi94ZW4vYXJjaC94ODYvY3B1L21j aGVjay9tY3RlbGVtLmgKaW5kZXggOWZjZGU0ZjZiOC4uZDRlYmE1M2FlMCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUv bWNoZWNrL21jdGVsZW0uaApAQCAtNjcsOSArNjcsMTAgQEAgZXh0ZXJuIHZvaWQgbWN0ZWxlbV9k aXNtaXNzKG1jdGVsZW1fY29va2llX3QpOwogZXh0ZXJuIG1jdGVsZW1fY29va2llX3QgbWN0ZWxl bV9jb25zdW1lX29sZGVzdF9iZWdpbihtY3RlbGVtX2NsYXNzX3QpOwogZXh0ZXJuIHZvaWQgbWN0 ZWxlbV9jb25zdW1lX29sZGVzdF9lbmQobWN0ZWxlbV9jb29raWVfdCk7CiBleHRlcm4gdm9pZCBt Y3RlbGVtX2FjayhtY3RlbGVtX2NsYXNzX3QsIG1jdGVsZW1fY29va2llX3QpOwotZXh0ZXJuIHZv aWQgbWN0ZWxlbV9kZWZlcihtY3RlbGVtX2Nvb2tpZV90KTsKK2V4dGVybiB2b2lkIG1jdGVsZW1f ZGVmZXIobWN0ZWxlbV9jb29raWVfdCwgYm9vbCBsbWNlKTsKIGV4dGVybiB2b2lkIG1jdGVsZW1f cHJvY2Vzc19kZWZlcnJlZCh1bnNpZ25lZCBpbnQsCi0gICAgaW50ICgqKShtY3RlbGVtX2Nvb2tp ZV90KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqKShtY3Rl bGVtX2Nvb2tpZV90KSwgYm9vbCBsbWNlKTsKIGJvb2wgbWN0ZWxlbV9oYXNfZGVmZXJyZWQodW5z aWduZWQgaW50KTsKK2Jvb2wgbWN0ZWxlbV9oYXNfZGVmZXJyZWRfbG1jZSh1bnNpZ25lZCBpbnQg Y3B1KTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay94ODZf bWNhLmggYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay94ODZfbWNhLmgKaW5kZXggMzRkMTkyMWNl MS4uZGUwM2Y4MjljMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2sveDg2X21j YS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3g4Nl9tY2EuaApAQCAtNDIsNyArNDIs OSBAQAogI2RlZmluZSBNQ0dfU1RBVFVTX1JJUFYgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDFV TEwKICNkZWZpbmUgTUNHX1NUQVRVU19FSVBWICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAyVUxM CiAjZGVmaW5lIE1DR19TVEFUVVNfTUNJUCAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwNFVMTAot LyogQml0cyAzLTYzIGFyZSByZXNlcnZlZCAqLworI2RlZmluZSBNQ0dfU1RBVFVTX0xNQ0UgICAg ICAgICAweDAwMDAwMDAwMDAwMDAwMDhVTEwgIC8qIEludGVsIHNwZWNpZmljICovCisvKiBCaXRz IDMtNjMgYXJlIHJlc2VydmVkIG9uIENQVSBub3Qgc3VwcG9ydGluZyBMTUNFICovCisvKiBCaXRz IDQtNjMgYXJlIHJlc2VydmVkIG9uIENQVSBzdXBwb3J0aW5nIExNQ0UgKi8KIAogLyogQml0Zmll bGQgb2YgTVNSX0s4X01DaV9TVEFUVVMgcmVnaXN0ZXJzICovCiAvKiBNQ0EgZXJyb3IgY29kZSAq LwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==