From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v3 1/9] x86/mce: handle LMCE locally Date: Thu, 30 Mar 2017 14:19:55 +0800 Message-ID: <20170330062003.9119-2-haozhong.zhang@intel.com> References: <20170330062003.9119-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: <20170330062003.9119-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 TE1DRSBpcyBzZW50IHRvIG9ubHkgb25lIENQVSB0aHJlYWQsIHNvIE1DRSBoYW5kbGVyLCBiYXJy aWVycyBhbmQKc29mdGlycSBoYW5kbGVyIHNob3VsZCBnbyB3aXRob3V0IHdhaXRpbmcgZm9yIG90 aGVyIENQVXMsIHdoZW4KaGFuZGxpbmcgTE1DRS4gTm90ZSBMTUNFIGlzIHN0aWxsIGJyb2FkY2Fz dCB0byBhbGwgdmNwdXMgYXMgcmVndWxhcgpNQ0Ugb24gSW50ZWwgQ1BVIHJpZ2h0IG5vdy4KClNp Z25lZC1vZmYtYnk6IEhhb3pob25nIFpoYW5nIDxoYW96aG9uZy56aGFuZ0BpbnRlbC5jb20+Ci0t LQpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCkNoYW5nZXMgaW4gdjM6CiAqIERvIG5vdCBhZGQg bm93YWl0IGFyZ3VtZW50IHRvIGN1cnJlbnRseSB1bnVzZWQgbWNlX2JhcnJpZXIoKS4KICogRG8g bm90IGFjY2VzcyB0aGUgZ2xvYmFsIHZhcmlhYmxlICdzZXZlcml0eV9jcHUnIHdoZW4gaGFuZGxp bmcgTE1DRS4KICogUmVuYW1lIHBlci1jcHUgZmxhZyAnbWNlX2luX3Byb2Nlc3MnIHRvICdub25s b2NhbF9tY2VfaW5fcHJvZ3Jlc3MnCiAgIHRvIGNsYXJpZnkgaXQncyBmb3Igbm9uLWxvY2FsIE1D RS4KICogQWRkIGNvZGUgY29tbWVudHMgZm9yIHRyaWNreSBwb2ludHMuCi0tLQogeGVuL2FyY2gv eDg2L2NwdS9tY2hlY2svYmFycmllci5jICB8ICAxMiArKy0tCiB4ZW4vYXJjaC94ODYvY3B1L21j aGVjay9iYXJyaWVyLmggIHwgIDEyICsrKy0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0 aW9uLmMgfCAgIDQgKy0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jICAgICAgfCAxMjIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2NwdS9t Y2hlY2svbWNlLmggICAgICB8ICAgMiArCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay94ODZfbWNh LmggIHwgICA0ICstCiA2IGZpbGVzIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCspLCAzOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9iYXJyaWVyLmMg Yi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9iYXJyaWVyLmMKaW5kZXggNWRjZTFmYi4uMGIzYjA5 MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svYmFycmllci5jCisrKyBiL3hl bi9hcmNoL3g4Ni9jcHUvbWNoZWNrL2JhcnJpZXIuYwpAQCAtMTYsMTEgKzE2LDExIEBAIHZvaWQg bWNlX2JhcnJpZXJfZGVjKHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICpiYXIpCiAgICAgYXRv bWljX2RlYygmYmFyLT52YWwpOwogfQogCi12b2lkIG1jZV9iYXJyaWVyX2VudGVyKHN0cnVjdCBt Y2Vfc29mdGlycV9iYXJyaWVyICpiYXIpCit2b2lkIG1jZV9iYXJyaWVyX2VudGVyKHN0cnVjdCBt Y2Vfc29mdGlycV9iYXJyaWVyICpiYXIsIGJvb2wgbm93YWl0KQogewogICAgIGludCBnZW47CiAK LSAgICBpZiAoIW1jZV9icm9hZGNhc3QpCisgICAgaWYgKCAhbWNlX2Jyb2FkY2FzdCB8fCBub3dh aXQgKQogICAgICAgICByZXR1cm47CiAgICAgYXRvbWljX2luYygmYmFyLT5pbmdlbik7CiAgICAg Z2VuID0gYXRvbWljX3JlYWQoJmJhci0+b3V0Z2VuKTsKQEAgLTM0LDExICszNCwxMSBAQCB2b2lk IG1jZV9iYXJyaWVyX2VudGVyKHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICpiYXIpCiAgICAg fQogfQogCi12b2lkIG1jZV9iYXJyaWVyX2V4aXQoc3RydWN0IG1jZV9zb2Z0aXJxX2JhcnJpZXIg KmJhcikKK3ZvaWQgbWNlX2JhcnJpZXJfZXhpdChzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciAq YmFyLCBib29sIG5vd2FpdCkKIHsKICAgICBpbnQgZ2VuOwogCi0gICAgaWYgKCAhbWNlX2Jyb2Fk Y2FzdCApCisgICAgaWYgKCAhbWNlX2Jyb2FkY2FzdCB8fCBub3dhaXQgKQogICAgICAgICByZXR1 cm47CiAgICAgYXRvbWljX2luYygmYmFyLT5vdXRnZW4pOwogICAgIGdlbiA9IGF0b21pY19yZWFk KCZiYXItPmluZ2VuKTsKQEAgLTU0LDYgKzU0LDYgQEAgdm9pZCBtY2VfYmFycmllcl9leGl0KHN0 cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICpiYXIpCiAKIHZvaWQgbWNlX2JhcnJpZXIoc3RydWN0 IG1jZV9zb2Z0aXJxX2JhcnJpZXIgKmJhcikKIHsKLSAgICBtY2VfYmFycmllcl9lbnRlcihiYXIp OwotICAgIG1jZV9iYXJyaWVyX2V4aXQoYmFyKTsKKyAgICBtY2VfYmFycmllcl9lbnRlcihiYXIs IGZhbHNlKTsKKyAgICBtY2VfYmFycmllcl9leGl0KGJhciwgZmFsc2UpOwogfQpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svYmFycmllci5oIGIveGVuL2FyY2gveDg2L2NwdS9t Y2hlY2svYmFycmllci5oCmluZGV4IDg3Zjc1NTAuLmYyNjEzZTYgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL2JhcnJpZXIuaAorKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVj ay9iYXJyaWVyLmgKQEAgLTI1LDYgKzI1LDE0IEBAIHZvaWQgbWNlX2JhcnJpZXJfaW5pdChzdHJ1 Y3QgbWNlX3NvZnRpcnFfYmFycmllciAqKTsKIHZvaWQgbWNlX2JhcnJpZXJfZGVjKHN0cnVjdCBt Y2Vfc29mdGlycV9iYXJyaWVyICopOwogCiAvKgorICogSWYgbm93YWl0IGlzIHRydWUsIG1jZV9i YXJyaWVyX2VudGVyL2V4aXQoKSB3aWxsIHJldHVybiBpbW1lZGlhdGVseQorICogd2l0aG91dCB0 b3VjaGluZyB0aGUgYmFycmllci4gSXQncyB1c2VkIHdoZW4gaGFuZGxpbmcgYSBMTUNFIHdoaWNo CisgKiBpcyByZWNlaXZlZCBvbiBvbmx5IG9uZSBDUFUgYW5kIHRodXMgZG9lcyBub3QgaW52b2tl CisgKiBtY2VfYmFycmllcl9lbnRlci9leGl0KCkgY2FsbHMgb24gYWxsIENQVXMuCisgKgorICog SWYgbm93YWl0IGlzIGZhbHNlLCBtY2VfYmFycmllcl9lbnRlci9leGl0KCkgd2lsbCBoYW5kbGUg dGhlIGdpdmVuCisgKiBiYXJyaWVyIGFzIGJlbG93LgorICoKICAqIEluY3JlbWVudCB0aGUgZ2Vu ZXJhdGlvbiBudW1iZXIgYW5kIHRoZSB2YWx1ZS4gVGhlIGdlbmVyYXRpb24gbnVtYmVyCiAgKiBp cyBpbmNyZW1lbnRlZCB3aGVuIGVudGVyaW5nIGEgYmFycmllci4gVGhpcyB3YXksIGl0IGNhbiBi ZSBjaGVja2VkCiAgKiBvbiBleGl0IGlmIGEgQ1BVIGlzIHRyeWluZyB0byByZS1lbnRlciB0aGUg YmFycmllci4gVGhpcyBjYW4gaGFwcGVuCkBAIC0zNiw4ICs0NCw4IEBAIHZvaWQgbWNlX2JhcnJp ZXJfZGVjKHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICopOwogICogVGhlc2UgYmFycmllciBm dW5jdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBwYWlyZWQsIHNvIHRoYXQgdGhlCiAgKiBjb3VudGVy IHZhbHVlIHdpbGwgcmVhY2ggMCBhZ2FpbiBhZnRlciBhbGwgQ1BVcyBoYXZlIGV4aXRlZC4KICAq Lwotdm9pZCBtY2VfYmFycmllcl9lbnRlcihzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciAqKTsK LXZvaWQgbWNlX2JhcnJpZXJfZXhpdChzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciAqKTsKK3Zv aWQgbWNlX2JhcnJpZXJfZW50ZXIoc3RydWN0IG1jZV9zb2Z0aXJxX2JhcnJpZXIgKiwgYm9vbCBu b3dhaXQpOwordm9pZCBtY2VfYmFycmllcl9leGl0KHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVy ICosIGJvb2wgbm93YWl0KTsKIAogdm9pZCBtY2VfYmFycmllcihzdHJ1Y3QgbWNlX3NvZnRpcnFf YmFycmllciAqKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rp b24uYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMKaW5kZXggZGFiOWVhYy4u Y2ExN2QyMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYwor KysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jCkBAIC05Niw3ICs5Niw5IEBA IG1jX21lbWVycl9kaGFuZGxlcihzdHJ1Y3QgbWNhX2JpbmZvICpiaW5mbywKIAogICAgICAgICAg ICAgICAgIGJhbmstPm1jX2FkZHIgPSBnZm4gPDwgUEFHRV9TSElGVCB8CiAgICAgICAgICAgICAg ICAgICAoYmFuay0+bWNfYWRkciAmIChQQUdFX1NJWkUgLTEgKSk7Ci0gICAgICAgICAgICAgICAg aWYgKGZpbGxfdm1zcl9kYXRhKGJhbmssIGQsIGdsb2JhbC0+bWNfZ3N0YXR1cywKKyAgICAgICAg ICAgICAgICAvKiBUT0RPOiBzdXBwb3J0IGluamVjdGluZyBMTUNFICovCisgICAgICAgICAgICAg ICAgaWYgKGZpbGxfdm1zcl9kYXRhKGJhbmssIGQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdsb2JhbC0+bWNfZ3N0YXR1cyAmIH5NQ0dfU1RBVFVTX0xNQ0UsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID09IFZNQ0VfSU5KRUNUX0JS T0FEQ0FTVCkpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBtY2VfcHJp bnRrKE1DRV9RVUlFVCwgIkZpbGwgdk1DRSMgZGF0YSBmb3IgRE9NJWQgIgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9t Y2UuYwppbmRleCAxMWQwZTIzLi5jMWE1OWJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1 L21jaGVjay9tY2UuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYwpAQCAtNDIs NiArNDIsMTMgQEAgREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFkoc3RydWN0IG1jYV9iYW5rcyAq LCBwb2xsX2JhbmttYXNrKTsKIERFRklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHN0cnVjdCBtY2Ff YmFua3MgKiwgbm9fY21jaV9iYW5rcyk7CiBERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWShzdHJ1 Y3QgbWNhX2JhbmtzICosIG1jZV9jbGVhcl9iYW5rcyk7CiAKKy8qCisgKiBGbGFnIHRvIGluZGlj YXRlIHRoYXQgYXQgbGVhc3Qgb25lIG5vbi1sb2NhbCBNQ0Ugb24gdGhpcyBDUFUgaGFzCisgKiBu b3QgYmVlbiBjb21wbGV0ZWQgaGFuZGxlZC4gSXQncyBzZXQgYnkgbWNoZWNrX2Ntbl9oYW5kbGVy KCkgYW5kCisgKiBjbGVhcmVkIGJ5IG1jZV9zb2Z0aXJxKCkuCisgKi8KK3N0YXRpYyBERUZJTkVf UEVSX0NQVShib29sLCBub25sb2NhbF9tY2VfaW5fcHJvZ3Jlc3MpOworCiBzdGF0aWMgdm9pZCBp bnRwb3NlX2luaXQodm9pZCk7CiBzdGF0aWMgdm9pZCBtY2luZm9fY2xlYXIoc3RydWN0IG1jX2lu Zm8gKik7CiBzdHJ1Y3QgbWNhX2JhbmtzICptY2FfYWxsYmFua3M7CkBAIC0xODYsNyArMTkzLDI5 IEBAIHN0YXRpYyBzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciBtY2VfdHJhcF9iYXI7CiAgKi8K IHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobWNlX2xvZ291dF9sb2NrKTsKIAorLyoKKyAqICdzZXZl cml0eV9jcHUnIGlzIHVzZWQgaW4gYm90aCBtY2hlY2tfY21uX2hhbmRsZXIoKSBhbmQgbWNlX3Nv ZnRpcnEoKS4KKyAqCisgKiBXaGVuIGhhbmRsaW5nIGJyb2FkY2FzdGluZyBNQ0UsIE1DRSBiYXJy aWVycyB0YWtlIGVmZmVjdCB0byBwcmV2ZW50CisgKiAnc2V2ZXJpdHlfY3B1JyBiZWluZyBtb2Rp ZmllZCBpbiBvbmUgZnVuY3Rpb24gb24gb25lIENQVSBhbmQgYWNjZXNzZWQKKyAqIGluIGFub3Ro ZXIgb24gYSBkaWZmZXJlbnQgQ1BVLgorICoKKyAqIFdoZW4gaGFuZGxpbmcgTE1DRSwgbWNlX2Jh cnJpZXJfZW50ZXIoKSBhbmQgbWNlX2JhcnJpZXJfZXhpdCgpIGFyZQorICogZWZmZWN0aXZlbHkg Tk9QLCBzbyBpdCdzIHBvc3NpYmxlIHRoYXQgbWNoZWNrX2Ntbl9oYW5kbGVyKCkgaXMgaGFuZGxp bmcKKyAqIGEgTE1DRSBvbiBDUFV4IHdoaWxlIG1jZV9zb2Z0aXJxKCkgaXMgaGFuZGxpbmcgYW5v dGhlciBMTUNFIG9uIENQVXkuCisgKiBJZiBib3RoIGFyZSBtb2RpZnlpbmcgJ3NldmVyaXR5X2Nw dScsIHRoZXkgbWF5IGludGVyZmVyZSB3aXRoIGVhY2gKKyAqIG90aGVyLiBUaGVyZWZvcmUsIGl0 J3MgYmV0dGVyIGZvciBtY2hlY2tfY21uX2hhbmRsZXIoKSBhbmQgbWNlX3NvZnRpcnEoKQorICog dG8gYXZvaWQgYWNjZXNzaW5nICdzZXZlcml0eV9jcHUnIHdoZW4gaGFuZGxpbmcgTE1DRSwgdW5s ZXNzIG90aGVyCisgKiBhcHByb2FjaGVzIGFyZSB0YWtlbiB0byBhdm9pZCB0aGUgYWJvdmUgaW50 ZXJmZXJlbmNlLgorICovCiBzdGF0aWMgYXRvbWljX3Qgc2V2ZXJpdHlfY3B1ID0gQVRPTUlDX0lO SVQoLTEpOworLyoKKyAqIFRoZSBmb2xsb3dpbmcgdHdvIGdsb2JhbCB2YXJpYWJsZXMgYXJlIHVz ZWQgb25seSBpbiBtY2hlY2tfY21uX2hhbmRsZXIoKS4KKyAqIEJlY2F1c2UgdGhlcmUgY2FuIGJl IGF0IG1vc3Qgb25lIE1DRSAoaW5jbHVkaW5nIExNQ0UpIG91dHN0YW5kaW5nCisgKiBpbiB0aGUg aGFyZHdhcmUgcGxhdGZvcm0sIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlIGFib3Zl CisgKiBpbnRlcmZlcmVuY2UsIHdoZXJlIHR3byBjb2RlIHBhdGhzIGhhbmRpbmcgZGlmZmVyZW50 IE1DRSdzIGFjY2VzcworICogdGhlIHNhbWUgZ2xvYmFsIHZhcmlhYmxlcy4KKyAqLwogc3RhdGlj IGF0b21pY190IGZvdW5kX2Vycm9yID0gQVRPTUlDX0lOSVQoMCk7CiBzdGF0aWMgY3B1bWFza190 IG1jZV9mYXRhbF9jcHVzOwogCkBAIC0zOTUsNiArNDI0LDcgQEAgbWNoZWNrX21jYV9sb2dvdXQo ZW51bSBtY2Ffc291cmNlIHdobywgc3RydWN0IG1jYV9iYW5rcyAqYmFua21hc2ssCiAgICAgICAg IHNwLT5lcnJjbnQgPSBlcnJjbnQ7CiAgICAgICAgIHNwLT5yaXB2ID0gKGdzdGF0dXMgJiBNQ0df U1RBVFVTX1JJUFYpICE9IDA7CiAgICAgICAgIHNwLT5laXB2ID0gKGdzdGF0dXMgJiBNQ0dfU1RB VFVTX0VJUFYpICE9IDA7CisgICAgICAgIHNwLT5sbWNlID0gKGdzdGF0dXMgJiBNQ0dfU1RBVFVT X0xNQ0UpICE9IDA7CiAgICAgICAgIHNwLT51YyA9IHVjOwogICAgICAgICBzcC0+cGNjID0gcGNj OwogICAgICAgICBzcC0+cmVjb3ZlcmFibGUgPSByZWNvdmVyOwpAQCAtNDU4LDYgKzQ4OCw3IEBA IHZvaWQgbWNoZWNrX2Ntbl9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQogICAgIHVpbnQ2NF90IGdzdGF0dXM7CiAgICAgbWN0ZWxlbV9jb29raWVfdCBtY3RjID0gTlVM TDsKICAgICBzdHJ1Y3QgbWNhX3N1bW1hcnkgYnM7CisgICAgYm9vbCBsbWNlOwogCiAgICAgbWNl X3NwaW5fbG9jaygmbWNlX2xvZ291dF9sb2NrKTsKIApAQCAtNDY3LDYgKzQ5OCwxMCBAQCB2b2lk IG1jaGVja19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAg ICB9CiAgICAgbWN0YyA9IG1jaGVja19tY2FfbG9nb3V0KE1DQV9NQ0VfU0NBTiwgYmFua21hc2ss ICZicywgY2xlYXJfYmFuayk7CiAKKyAgICBsbWNlID0gYnMubG1jZTsKKyAgICBpZiAoIWxtY2Up CisgICAgICAgIHRoaXNfY3B1KG5vbmxvY2FsX21jZV9pbl9wcm9ncmVzcykgPSB0cnVlOworCiAg ICAgaWYgKGJzLmVycmNudCkgewogICAgICAgICAvKgogICAgICAgICAgKiBVbmNvcnJlY3RlZCBl cnJvcnMgbXVzdCBiZSBkZWFsdCB3aXRoIGluIHNvZnRpcnEgY29udGV4dC4KQEAgLTQ4OCw4ICs1 MjMsOSBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKICAgICAgICAgfQogICAgICAgICBhdG9taWNfc2V0KCZmb3VuZF9lcnJvciwgMSk7 CiAKLSAgICAgICAgLyogVGhlIGxhc3QgQ1BVIHdpbGwgYmUgdGFrZSBjaGVjay9jbGVhbi11cCBl dGMgKi8KLSAgICAgICAgYXRvbWljX3NldCgmc2V2ZXJpdHlfY3B1LCBzbXBfcHJvY2Vzc29yX2lk KCkpOworICAgICAgICAvKiBUaGUgbGFzdCBDUFUgd2lsbCBiZSB0YWtlIGNoZWNrL2NsZWFuLXVw IGV0Yy4gKi8KKyAgICAgICAgaWYgKCFsbWNlKQorICAgICAgICAgICAgYXRvbWljX3NldCgmc2V2 ZXJpdHlfY3B1LCBzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAgIG1jZV9wcmludGsoTUNF X0NSSVRJQ0FMLCAiTUNFOiBjbGVhcl9iYW5rIG1hcCAlbHggb24gQ1BVJWRcbiIsCiAgICAgICAg ICAgICAgICAgKigodW5zaWduZWQgbG9uZyopY2xlYXJfYmFuayksIHNtcF9wcm9jZXNzb3JfaWQo KSk7CkBAIC01MDEsMTYgKzUzNywxNiBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxlcihjb25zdCBz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICB9CiAgICAgbWNlX3NwaW5fdW5sb2NrKCZt Y2VfbG9nb3V0X2xvY2spOwogCi0gICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV90cmFwX2Jhcik7 CisgICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV90cmFwX2JhciwgbG1jZSk7CiAgICAgaWYgKCBt Y3RjICE9IE5VTEwgJiYgbWNlX3VyZ2VudF9hY3Rpb24ocmVncywgbWN0YykpCiAgICAgICAgIGNw dW1hc2tfc2V0X2NwdShzbXBfcHJvY2Vzc29yX2lkKCksICZtY2VfZmF0YWxfY3B1cyk7Ci0gICAg bWNlX2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyKTsKKyAgICBtY2VfYmFycmllcl9leGl0KCZt Y2VfdHJhcF9iYXIsIGxtY2UpOwogCiAgICAgLyoKICAgICAgKiBXYWl0IHVudGlsIGV2ZXJ5Ym9k eSBoYXMgcHJvY2Vzc2VkIHRoZSB0cmFwLgogICAgICAqLwotICAgIG1jZV9iYXJyaWVyX2VudGVy KCZtY2VfdHJhcF9iYXIpOwotICAgIGlmIChhdG9taWNfcmVhZCgmc2V2ZXJpdHlfY3B1KSA9PSBz bXBfcHJvY2Vzc29yX2lkKCkpCisgICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV90cmFwX2Jhciwg bG1jZSk7CisgICAgaWYgKGxtY2UgfHwgYXRvbWljX3JlYWQoJnNldmVyaXR5X2NwdSkgPT0gc21w X3Byb2Nlc3Nvcl9pZCgpKQogICAgIHsKICAgICAgICAgLyogQWNjb3JkaW5nIHRvIFNETSwgaWYg bm8gZXJyb3IgYmFuayBmb3VuZCBvbiBhbnkgY3B1cywKICAgICAgICAgICogc29tZXRoaW5nIHVu ZXhwZWN0ZWQgaGFwcGVuaW5nLCB3ZSBjYW4ndCBkbyBhbnkKQEAgLTUyNywxNiArNTYzLDE2IEBA IHZvaWQgbWNoZWNrX2Ntbl9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQogICAgICAgICB9CiAgICAgICAgIGF0b21pY19zZXQoJmZvdW5kX2Vycm9yLCAwKTsKICAgICB9 Ci0gICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyKTsKKyAgICBtY2VfYmFycmllcl9l eGl0KCZtY2VfdHJhcF9iYXIsIGxtY2UpOwogCiAgICAgLyogQ2xlYXIgZmxhZ3MgYWZ0ZXIgYWJv dmUgZmF0YWwgY2hlY2sgKi8KLSAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyKTsK KyAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyLCBsbWNlKTsKICAgICBnc3RhdHVz ID0gbWNhX3JkbXNyKE1TUl9JQTMyX01DR19TVEFUVVMpOwogICAgIGlmICgoZ3N0YXR1cyAmIE1D R19TVEFUVVNfTUNJUCkgIT0gMCkgewogICAgICAgICBtY2VfcHJpbnRrKE1DRV9DUklUSUNBTCwg Ik1DRTogQ2xlYXIgTUNJUEAgbGFzdCBzdGVwIik7CiAgICAgICAgIG1jYV93cm1zcihNU1JfSUEz Ml9NQ0dfU1RBVFVTLCAwKTsKICAgICB9Ci0gICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBf YmFyKTsKKyAgICBtY2VfYmFycmllcl9leGl0KCZtY2VfdHJhcF9iYXIsIGxtY2UpOwogCiAgICAg cmFpc2Vfc29mdGlycShNQUNISU5FX0NIRUNLX1NPRlRJUlEpOwogfQpAQCAtMTcwMCwzOCArMTcz Niw2MSBAQCBzdGF0aWMgdm9pZCBtY2Vfc29mdGlycSh2b2lkKQogewogICAgIGludCBjcHUgPSBz bXBfcHJvY2Vzc29yX2lkKCk7CiAgICAgdW5zaWduZWQgaW50IHdvcmtjcHU7CisgICAgLyoKKyAg ICAgKiBPbiBwbGF0Zm9ybXMgc3VwcG9ydGluZyBicm9hZGNhc3RpbmcgTUNFLCBpZiB0aGVyZSBp cyBhCisgICAgICogbm9uLWxvY2FsIE1DRSB3YWl0aW5nIGZvciBwcm9jZXNzIG9uIHRoaXMgQ1BV LCBpdCBpbXBsaWVzIG90aGVyCisgICAgICogQ1BVcyByZWNlaXZlZCB0aGUgc2FtZSBNQ0UgYXMg d2VsbC4gVGhlcmVmb3JlLCBtY2Vfc29mdGlycSgpCisgICAgICogd2lsbCBiZSBsYXVuY2hlZCBv biBvdGhlciBDUFVzIGFzIHdlbGwgYW5kIGNvbXBldGUgd2l0aCB0aGlzCisgICAgICogbWNlX3Nv ZnRpcnEoKSB0byBoYW5kbGUgYWxsIE1DRSdzIG9uIGFsbCBDUFVzLiBJbiB0aGF0IGNhc2UsIHdl CisgICAgICogc2hvdWxkIHVzZSBNQ0UgYmFycmllcnMgdG8gc3luYyB3aXRoIG90aGVyIENQVXMu IE90aGVyd2lzZSwgd2UKKyAgICAgKiBkbyBub3QgbmVlZCB0byB3YWl0IGZvciBvdGhlciBDUFVz LgorICAgICAqLworICAgIGJvb2wgbm93YWl0ID0gIXRoaXNfY3B1KG5vbmxvY2FsX21jZV9pbl9w cm9ncmVzcyk7CiAKICAgICBtY2VfcHJpbnRrKE1DRV9WRVJCT1NFLCAiQ1BVJWQgZW50ZXIgc29m dGlycVxuIiwgY3B1KTsKIAotICAgIG1jZV9iYXJyaWVyX2VudGVyKCZtY2VfaW5zaWRlX2Jhcik7 CisgICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV9pbnNpZGVfYmFyLCBub3dhaXQpOwogCiAgICAg LyoKLSAgICAgKiBFdmVyeWJvZHkgaXMgaGVyZS4gTm93IGxldCdzIHNlZSB3aG8gZ2V0cyB0byBk byB0aGUKLSAgICAgKiByZWNvdmVyeSB3b3JrLiBSaWdodCBub3cgd2UganVzdCBzZWUgaWYgdGhl cmUncyBhIENQVQotICAgICAqIHRoYXQgZGlkIG5vdCBoYXZlIGFueSBwcm9ibGVtcywgYW5kIHBp Y2sgdGhhdCBvbmUuCi0gICAgICoKLSAgICAgKiBGaXJzdCwganVzdCBzZXQgYSBkZWZhdWx0IHZh bHVlOiB0aGUgbGFzdCBDUFUgd2hvIHJlYWNoZXMgdGhpcwotICAgICAqIHdpbGwgb3ZlcndyaXRl IHRoZSB2YWx1ZSBhbmQgYmVjb21lIHRoZSBkZWZhdWx0LgorICAgICAqIFdoZW4gTE1DRSBpcyBi ZWluZyBoYW5kbGVkIGFuZCBubyBub24tbG9jYWwgTUNFIGlzIHdhaXRpbmcgZm9yCisgICAgICog cHJvY2VzcywgbWNlX3NvZnRpcnEoKSBkb2VzIG5vdCBuZWVkIHRvIHNldCAnc2V2ZXJpdHlfY3B1 Jy4gQW5kCisgICAgICogaXQgc2hvdWxkIG5vdCwgYmVjYXVzZSB0aGUgbW9kaWZpY2F0aW9uIGlu IHRoaXMgZnVuY3Rpb24gbWF5CisgICAgICogaW50ZXJmZXJlIHdpdGggdGhlIHNpbXVsdGFuZW91 cyBtb2RpZmljYXRpb24gaW4gbWNlX2Ntbl9oYW5kbGVyKCkKKyAgICAgKiBvbiBhbm90aGVyIENQ VS4KICAgICAgKi8KLQotICAgIGF0b21pY19zZXQoJnNldmVyaXR5X2NwdSwgY3B1KTsKLQotICAg IG1jZV9iYXJyaWVyX2VudGVyKCZtY2Vfc2V2ZXJpdHlfYmFyKTsKLSAgICBpZiAoIW1jdGVsZW1f aGFzX2RlZmVycmVkKGNwdSkpCisgICAgaWYgKCFub3dhaXQpIHsKKyAgICAgICAgLyoKKyAgICAg ICAgICogRXZlcnlib2R5IGlzIGhlcmUuIE5vdyBsZXQncyBzZWUgd2hvIGdldHMgdG8gZG8gdGhl CisgICAgICAgICAqIHJlY292ZXJ5IHdvcmsuIFJpZ2h0IG5vdyB3ZSBqdXN0IHNlZSBpZiB0aGVy ZSdzIGEgQ1BVCisgICAgICAgICAqIHRoYXQgZGlkIG5vdCBoYXZlIGFueSBwcm9ibGVtcywgYW5k IHBpY2sgdGhhdCBvbmUuCisgICAgICAgICAqCisgICAgICAgICAqIEZpcnN0LCBqdXN0IHNldCBh IGRlZmF1bHQgdmFsdWU6IHRoZSBsYXN0IENQVSB3aG8gcmVhY2hlcyB0aGlzCisgICAgICAgICAq IHdpbGwgb3ZlcndyaXRlIHRoZSB2YWx1ZSBhbmQgYmVjb21lIHRoZSBkZWZhdWx0LgorICAgICAg ICAgKi8KICAgICAgICAgYXRvbWljX3NldCgmc2V2ZXJpdHlfY3B1LCBjcHUpOwotICAgIG1jZV9i YXJyaWVyX2V4aXQoJm1jZV9zZXZlcml0eV9iYXIpOwogCi0gICAgLyogV2UgY2hvb3NlIHNldmVy aXR5X2NwdSBmb3IgZnVydGhlciBwcm9jZXNzaW5nICovCi0gICAgaWYgKGF0b21pY19yZWFkKCZz ZXZlcml0eV9jcHUpID09IGNwdSkgeworICAgICAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX3Nl dmVyaXR5X2Jhciwgbm93YWl0KTsKKyAgICAgICAgaWYgKCFtY3RlbGVtX2hhc19kZWZlcnJlZChj cHUpKQorICAgICAgICAgICAgYXRvbWljX3NldCgmc2V2ZXJpdHlfY3B1LCBjcHUpOworICAgICAg ICBtY2VfYmFycmllcl9leGl0KCZtY2Vfc2V2ZXJpdHlfYmFyLCBub3dhaXQpOworICAgIH0KKwor ICAgIC8qCisgICAgICogRWl0aGVyIG5vIG5vbi1sb2NhbCBNQ0UgaXMgYmVpbmcgaGFuZGxlZCwg b3IgdGhpcyBDUFUgaXMgY2hvc2UgYXMKKyAgICAgKiBzZXZlcml0eV9jcHUgZm9yIGZ1cnRoZXIg cHJvY2Vzc2luZyAuLi4KKyAgICAgKi8KKyAgICBpZiAobm93YWl0IHx8IGF0b21pY19yZWFkKCZz ZXZlcml0eV9jcHUpID09IGNwdSkgewogCiAgICAgICAgIG1jZV9wcmludGsoTUNFX1ZFUkJPU0Us ICJDUFUlZCBoYW5kbGluZyBlcnJvcnNcbiIsIGNwdSk7CiAKICAgICAgICAgLyogU3RlcDE6IEZp bGwgRE9NMCBMT0cgYnVmZmVyLCB2TUNFIGluamVjdGlvbiBidWZmZXIgYW5kCiAgICAgICAgICAq IHZNQ0UgTVNScyB2aXJ0dWFsaXphdGlvbiBidWZmZXIKICAgICAgICAgICovCi0gICAgICAgIGZv cl9lYWNoX29ubGluZV9jcHUod29ya2NwdSkgewotICAgICAgICAgICAgbWN0ZWxlbV9wcm9jZXNz X2RlZmVycmVkKHdvcmtjcHUsIG1jZV9kZWxheWVkX2FjdGlvbik7Ci0gICAgICAgIH0KKyAgICAg ICAgaWYgKG5vd2FpdCkKKyAgICAgICAgICAgIG1jdGVsZW1fcHJvY2Vzc19kZWZlcnJlZChjcHUs IG1jZV9kZWxheWVkX2FjdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZvcl9lYWNo X29ubGluZV9jcHUod29ya2NwdSkKKyAgICAgICAgICAgICAgICBtY3RlbGVtX3Byb2Nlc3NfZGVm ZXJyZWQod29ya2NwdSwgbWNlX2RlbGF5ZWRfYWN0aW9uKTsKIAogICAgICAgICAvKiBTdGVwMjog U2VuZCBMb2cgdG8gRE9NMCB0aHJvdWdoIHZJUlEgKi8KICAgICAgICAgaWYgKGRvbTBfdm1jZV9l bmFibGVkKCkpIHsKQEAgLTE3NDAsNyArMTc5OSwxNCBAQCBzdGF0aWMgdm9pZCBtY2Vfc29mdGly cSh2b2lkKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX2lu c2lkZV9iYXIpOworICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV9pbnNpZGVfYmFyLCBub3dhaXQp OworCisgICAgLyoKKyAgICAgKiBBdCB0aGlzIHBvaW50LCBlaXRoZXIgdGhlIG9ubHkgTE1DRSBo YXMgYmVlbiBoYW5kbGVkLCBvciBhbGwgTUNFJ3MKKyAgICAgKiBvbiB0aGlzIENQVSB3YWl0aW5n IGZvciBwcm9jZXNzIGhhdmUgYmVlbiBoYW5kbGVkIG9uIHRoaXMgQ1BVIChpZgorICAgICAqIGl0 IHdhcyBjaG9zZSBhcyBzZXZlcml0eV9jcHUpIG9yIGJ5IG1jZV9zb2Z0aXJxKCkgb24gYW5vdGhl ciBDUFUuCisgICAgICovCisgICAgdGhpc19jcHUobm9ubG9jYWxfbWNlX2luX3Byb2dyZXNzKSA9 IGZhbHNlOwogfQogCiAvKiBNYWNoaW5lIENoZWNrIG93bmVyIGp1ZGdlIGFsZ29yaXRobToKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oIGIveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNlLmgKaW5kZXggMTBlNWNlYi4uM2E5MTM0ZSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2NwdS9tY2hlY2svbWNlLmgKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNl LmgKQEAgLTEwOSwxMiArMTA5LDE0IEBAIHN0cnVjdCBtY2Ffc3VtbWFyeSB7CiAgICAgaW50ICAg ICAgICAgZWlwdjsgICAvKiBtZWFuaW5nZnVsIG9uICNNQyAqLwogICAgIGJvb2wgICAgICAgIHVj OyAgICAgLyogVUMgZmxhZyAqLwogICAgIGJvb2wgICAgICAgIHBjYzsgICAgLyogUENDIGZsYWcg Ki8KKyAgICBib29sICAgICAgICBsbWNlOyAgIC8qIExNQ0UgZmxhZyAoSW50ZWwgb25seSkgKi8K ICAgICBib29sICAgICAgICByZWNvdmVyYWJsZTsgLyogc29mdHdhcmUgZXJyb3IgcmVjb3ZlcmFi bGUgZmxhZyAqLwogfTsKIAogREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBtY2FfYmFua3MgKiwgcG9s bF9iYW5rbWFzayk7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IG1jYV9iYW5rcyAqLCBub19jbWNp X2JhbmtzKTsKIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgbWNhX2JhbmtzICosIG1jZV9jbGVhcl9i YW5rcyk7CitERUNMQVJFX1BFUl9DUFUoYm9vbCwgbWNlX2luX3Byb2Nlc3MpOwogCiBleHRlcm4g Ym9vbCBjbWNpX3N1cHBvcnQ7CiBleHRlcm4gYm9vbCBpc19tY19wYW5pYzsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3g4Nl9tY2EuaCBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNo ZWNrL3g4Nl9tY2EuaAppbmRleCAzNGQxOTIxLi5kZTAzZjgyIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvY3B1L21jaGVjay94ODZfbWNhLmgKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2sv eDg2X21jYS5oCkBAIC00Miw3ICs0Miw5IEBACiAjZGVmaW5lIE1DR19TVEFUVVNfUklQViAgICAg ICAgIDB4MDAwMDAwMDAwMDAwMDAwMVVMTAogI2RlZmluZSBNQ0dfU1RBVFVTX0VJUFYgICAgICAg ICAweDAwMDAwMDAwMDAwMDAwMDJVTEwKICNkZWZpbmUgTUNHX1NUQVRVU19NQ0lQICAgICAgICAg MHgwMDAwMDAwMDAwMDAwMDA0VUxMCi0vKiBCaXRzIDMtNjMgYXJlIHJlc2VydmVkICovCisjZGVm aW5lIE1DR19TVEFUVVNfTE1DRSAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwOFVMTCAgLyogSW50 ZWwgc3BlY2lmaWMgKi8KKy8qIEJpdHMgMy02MyBhcmUgcmVzZXJ2ZWQgb24gQ1BVIG5vdCBzdXBw b3J0aW5nIExNQ0UgKi8KKy8qIEJpdHMgNC02MyBhcmUgcmVzZXJ2ZWQgb24gQ1BVIHN1cHBvcnRp bmcgTE1DRSAqLwogCiAvKiBCaXRmaWVsZCBvZiBNU1JfSzhfTUNpX1NUQVRVUyByZWdpc3RlcnMg Ki8KIC8qIE1DQSBlcnJvciBjb2RlICovCi0tIAoyLjEwLjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK