From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v2 04/12] x86/mce: handle LMCE locally Date: Fri, 17 Mar 2017 14:46:06 +0800 Message-ID: <20170317064614.23539-5-haozhong.zhang@intel.com> References: <20170317064614.23539-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: <20170317064614.23539-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 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCkNoYW5nZXMgaW4gdjI6CiAqIFVzZSB0aGlzX2Nw dSgpIHJhdGhlciB0aGFuIF9fZ2V0X2NwdV92YXIoKS4KICogRHJvcCB0aGUgcGVyLWNwdSBmbGFn IGxtY2VfaW5fcHJvY2Vzcy4KICogQWRkIHBhcmFtZXRlciAiYm9vbCBub3dhaXQiIHRvIG1jZV9i YXJyaWVyX2VudGVyL2V4aXQgdG8gbGV0IGNhbGxlcnMKICAgY29udHJvbCBtY2VfYmFycmllcl9l bnRlci9leGl0IG5lZWRzIHRvIHdhaXQgZm9yIGJhcnJpZXIgb3BlcmF0aW9ucwogICBvbiBvdGhl ciBDUFUncy4KICogSW50cm9kdWNlIGEgbmV3IHBlci1jcHUgZmxhZyBtY2VfaW5fcHJvY2VzcyB0 byBpbmRpY2F0ZSB3aGV0aGVyIGEKICAgbm9uLWxvY2FsIE1DRSBoYXZlIG5vdCBiZWVuIHByb2Nl c3NlZCBjb21wbGV0ZWx5LiBtY2Vfc29mdGlycSgpIHVzZXMKICAgdGhpcyBmbGFnIHRvIGRlY2lk ZSB3aGV0aGVyIGl0IG5lZWRzIHRvIHN5bmNocm9uaXplIHdpdGggbWNlX3NvZnRpcnEoKQogICBv biBvdGhlciBDUFUncy4KLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9iYXJyaWVyLmMgIHwg MTQgKysrKysrLS0tLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9iYXJyaWVyLmggIHwgMTQg KysrKysrKysrLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jIHwgIDQgKysr LQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMgICAgICB8IDQ0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuaCAg ICAgIHwgIDIgKysKIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3g4Nl9tY2EuaCAgfCAgNCArKyst CiA2IGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL2JhcnJpZXIuYyBiL3hlbi9hcmNoL3g4 Ni9jcHUvbWNoZWNrL2JhcnJpZXIuYwppbmRleCA1ZGNlMWZiLi5lNmY5ZWEyIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9iYXJyaWVyLmMKKysrIGIveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svYmFycmllci5jCkBAIC0xNiwxMSArMTYsMTEgQEAgdm9pZCBtY2VfYmFycmllcl9k ZWMoc3RydWN0IG1jZV9zb2Z0aXJxX2JhcnJpZXIgKmJhcikKICAgICBhdG9taWNfZGVjKCZiYXIt PnZhbCk7CiB9CiAKLXZvaWQgbWNlX2JhcnJpZXJfZW50ZXIoc3RydWN0IG1jZV9zb2Z0aXJxX2Jh cnJpZXIgKmJhcikKK3ZvaWQgbWNlX2JhcnJpZXJfZW50ZXIoc3RydWN0IG1jZV9zb2Z0aXJxX2Jh cnJpZXIgKmJhciwgYm9vbCBub3dhaXQpCiB7CiAgICAgaW50IGdlbjsKIAotICAgIGlmICghbWNl X2Jyb2FkY2FzdCkKKyAgICBpZiAoICFtY2VfYnJvYWRjYXN0IHx8IG5vd2FpdCApCiAgICAgICAg IHJldHVybjsKICAgICBhdG9taWNfaW5jKCZiYXItPmluZ2VuKTsKICAgICBnZW4gPSBhdG9taWNf cmVhZCgmYmFyLT5vdXRnZW4pOwpAQCAtMzQsMTEgKzM0LDExIEBAIHZvaWQgbWNlX2JhcnJpZXJf ZW50ZXIoc3RydWN0IG1jZV9zb2Z0aXJxX2JhcnJpZXIgKmJhcikKICAgICB9CiB9CiAKLXZvaWQg bWNlX2JhcnJpZXJfZXhpdChzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciAqYmFyKQordm9pZCBt Y2VfYmFycmllcl9leGl0KHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICpiYXIsIGJvb2wgbm93 YWl0KQogewogICAgIGludCBnZW47CiAKLSAgICBpZiAoICFtY2VfYnJvYWRjYXN0ICkKKyAgICBp ZiAoICFtY2VfYnJvYWRjYXN0IHx8IG5vd2FpdCApCiAgICAgICAgIHJldHVybjsKICAgICBhdG9t aWNfaW5jKCZiYXItPm91dGdlbik7CiAgICAgZ2VuID0gYXRvbWljX3JlYWQoJmJhci0+aW5nZW4p OwpAQCAtNTIsOCArNTIsOCBAQCB2b2lkIG1jZV9iYXJyaWVyX2V4aXQoc3RydWN0IG1jZV9zb2Z0 aXJxX2JhcnJpZXIgKmJhcikKICAgICB9CiB9CiAKLXZvaWQgbWNlX2JhcnJpZXIoc3RydWN0IG1j ZV9zb2Z0aXJxX2JhcnJpZXIgKmJhcikKK3ZvaWQgbWNlX2JhcnJpZXIoc3RydWN0IG1jZV9zb2Z0 aXJxX2JhcnJpZXIgKmJhciwgYm9vbCBub3dhaXQpCiB7Ci0gICAgbWNlX2JhcnJpZXJfZW50ZXIo YmFyKTsKLSAgICBtY2VfYmFycmllcl9leGl0KGJhcik7CisgICAgbWNlX2JhcnJpZXJfZW50ZXIo YmFyLCBub3dhaXQpOworICAgIG1jZV9iYXJyaWVyX2V4aXQoYmFyLCBub3dhaXQpOwogfQpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svYmFycmllci5oIGIveGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svYmFycmllci5oCmluZGV4IDg3Zjc1NTAuLjkzNGI2MjcgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL2JhcnJpZXIuaAorKysgYi94ZW4vYXJjaC94ODYvY3B1 L21jaGVjay9iYXJyaWVyLmgKQEAgLTI1LDYgKzI1LDE0IEBAIHZvaWQgbWNlX2JhcnJpZXJfaW5p dChzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciAqKTsKIHZvaWQgbWNlX2JhcnJpZXJfZGVjKHN0 cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICopOwogCiAvKgorICogSWYgbm93YWl0IGlzIHRydWUs IG1jZV9iYXJyaWVyX2VudGVyL2V4aXQoKSB3aWxsIHJldHVybiBpbW1lZGlhdGVseQorICogd2l0 aG91dCB0b3VjaGluZyB0aGUgYmFycmllci4gSXQncyB1c2VkIHdoZW4gaGFuZGxpbmcgYSBMTUNF IHdoaWNoCisgKiBpcyByZWNlaXZlZCBvbiBvbmx5IG9uZSBDUFUgYW5kIHRodXMgZG9lcyBub3Qg aW52b2tlCisgKiBtY2VfYmFycmllcl9lbnRlci9leGl0KCkgY2FsbHMgb24gYWxsIENQVXMuCisg KgorICogSWYgbm93YWl0IGlzIGZhbHNlLCBtY2VfYmFycmllcl9lbnRlci9leGl0KCkgd2lsbCBo YW5kbGUgdGhlIGdpdmVuCisgKiBiYXJyaWVyIGFzIGJlbG93LgorICoKICAqIEluY3JlbWVudCB0 aGUgZ2VuZXJhdGlvbiBudW1iZXIgYW5kIHRoZSB2YWx1ZS4gVGhlIGdlbmVyYXRpb24gbnVtYmVy CiAgKiBpcyBpbmNyZW1lbnRlZCB3aGVuIGVudGVyaW5nIGEgYmFycmllci4gVGhpcyB3YXksIGl0 IGNhbiBiZSBjaGVja2VkCiAgKiBvbiBleGl0IGlmIGEgQ1BVIGlzIHRyeWluZyB0byByZS1lbnRl ciB0aGUgYmFycmllci4gVGhpcyBjYW4gaGFwcGVuCkBAIC0zNiw5ICs0NCw5IEBAIHZvaWQgbWNl X2JhcnJpZXJfZGVjKHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICopOwogICogVGhlc2UgYmFy cmllciBmdW5jdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBwYWlyZWQsIHNvIHRoYXQgdGhlCiAgKiBj b3VudGVyIHZhbHVlIHdpbGwgcmVhY2ggMCBhZ2FpbiBhZnRlciBhbGwgQ1BVcyBoYXZlIGV4aXRl ZC4KICAqLwotdm9pZCBtY2VfYmFycmllcl9lbnRlcihzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmll ciAqKTsKLXZvaWQgbWNlX2JhcnJpZXJfZXhpdChzdHJ1Y3QgbWNlX3NvZnRpcnFfYmFycmllciAq KTsKK3ZvaWQgbWNlX2JhcnJpZXJfZW50ZXIoc3RydWN0IG1jZV9zb2Z0aXJxX2JhcnJpZXIgKiwg Ym9vbCBub3dhaXQpOwordm9pZCBtY2VfYmFycmllcl9leGl0KHN0cnVjdCBtY2Vfc29mdGlycV9i YXJyaWVyICosIGJvb2wgbm93YWl0KTsKIAotdm9pZCBtY2VfYmFycmllcihzdHJ1Y3QgbWNlX3Nv ZnRpcnFfYmFycmllciAqKTsKK3ZvaWQgbWNlX2JhcnJpZXIoc3RydWN0IG1jZV9zb2Z0aXJxX2Jh cnJpZXIgKiwgYm9vbCBub3dhaXQpOwogCiAjZW5kaWYgLyogX01DSEVDS19CQVJSSUVSX0ggKi8K ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMgYi94ZW4vYXJj aC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jCmluZGV4IGRhYjllYWMuLmNhMTdkMjIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMKKysrIGIveGVuL2FyY2gv eDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYwpAQCAtOTYsNyArOTYsOSBAQCBtY19tZW1lcnJfZGhh bmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmluZm8sCiAKICAgICAgICAgICAgICAgICBiYW5rLT5t Y19hZGRyID0gZ2ZuIDw8IFBBR0VfU0hJRlQgfAogICAgICAgICAgICAgICAgICAgKGJhbmstPm1j X2FkZHIgJiAoUEFHRV9TSVpFIC0xICkpOwotICAgICAgICAgICAgICAgIGlmIChmaWxsX3Ztc3Jf ZGF0YShiYW5rLCBkLCBnbG9iYWwtPm1jX2dzdGF0dXMsCisgICAgICAgICAgICAgICAgLyogVE9E Tzogc3VwcG9ydCBpbmplY3RpbmcgTE1DRSAqLworICAgICAgICAgICAgICAgIGlmIChmaWxsX3Zt c3JfZGF0YShiYW5rLCBkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9i YWwtPm1jX2dzdGF0dXMgJiB+TUNHX1NUQVRVU19MTUNFLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2bWNlX3ZjcHVpZCA9PSBWTUNFX0lOSkVDVF9CUk9BRENBU1QpKQogICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgbWNlX3ByaW50ayhNQ0VfUVVJRVQs ICJGaWxsIHZNQ0UjIGRhdGEgZm9yIERPTSVkICIKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL21jZS5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKaW5kZXggNTJi NWUyOS4uMjBhYjY3OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMK KysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKQEAgLTQyLDYgKzQyLDEzIEBAIERF RklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHN0cnVjdCBtY2FfYmFua3MgKiwgcG9sbF9iYW5rbWFz ayk7CiBERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWShzdHJ1Y3QgbWNhX2JhbmtzICosIG5vX2Nt Y2lfYmFua3MpOwogREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFkoc3RydWN0IG1jYV9iYW5rcyAq LCBtY2VfY2xlYXJfYmFua3MpOwogCisvKgorICogRmxhZyB0byBpbmRpY2F0ZSB0aGF0IGF0IGxl YXN0IG9uZSBub24tbG9jYWwgTUNFJ3Mgb24gdGhpcyBDUFUgaGF2ZQorICogbm90IGJlZW4gY29t cGxldGVkIGhhbmRsZWQuIEl0J3Mgc2V0IGJ5IG1jaGVja19jbW5faGFuZGxlcigpIGFuZAorICog Y2xlYXJlZCBieSBtY2Vfc29mdGlycSgpLgorICovCitERUZJTkVfUEVSX0NQVShib29sLCBtY2Vf aW5fcHJvY2Vzcyk7CisKIHN0YXRpYyB2b2lkIGludHBvc2VfaW5pdCh2b2lkKTsKIHN0YXRpYyB2 b2lkIG1jaW5mb19jbGVhcihzdHJ1Y3QgbWNfaW5mbyAqKTsKIHN0cnVjdCBtY2FfYmFua3MgKm1j YV9hbGxiYW5rczsKQEAgLTM5Niw2ICs0MDMsNyBAQCBtY2hlY2tfbWNhX2xvZ291dChlbnVtIG1j YV9zb3VyY2Ugd2hvLCBzdHJ1Y3QgbWNhX2JhbmtzICpiYW5rbWFzaywKICAgICAgICAgc3AtPmVy cmNudCA9IGVycmNudDsKICAgICAgICAgc3AtPnJpcHYgPSAoZ3N0YXR1cyAmIE1DR19TVEFUVVNf UklQVikgIT0gMDsKICAgICAgICAgc3AtPmVpcHYgPSAoZ3N0YXR1cyAmIE1DR19TVEFUVVNfRUlQ VikgIT0gMDsKKyAgICAgICAgc3AtPmxtY2UgPSAoZ3N0YXR1cyAmIE1DR19TVEFUVVNfTE1DRSkg IT0gMDsKICAgICAgICAgc3AtPnVjID0gdWM7CiAgICAgICAgIHNwLT5wY2MgPSBwY2M7CiAgICAg ICAgIHNwLT5yZWNvdmVyYWJsZSA9IHJlY292ZXI7CkBAIC00NTksNiArNDY3LDcgQEAgdm9pZCBt Y2hlY2tfY21uX2hhbmRsZXIoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAg dWludDY0X3QgZ3N0YXR1czsKICAgICBtY3RlbGVtX2Nvb2tpZV90IG1jdGMgPSBOVUxMOwogICAg IHN0cnVjdCBtY2Ffc3VtbWFyeSBiczsKKyAgICBib29sIGxtY2U7CiAKICAgICBtY2Vfc3Bpbl9s b2NrKCZtY2VfbG9nb3V0X2xvY2spOwogCkBAIC01MDIsMTUgKzUxMSwxOSBAQCB2b2lkIG1jaGVj a19jbW5faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICB9CiAg ICAgbWNlX3NwaW5fdW5sb2NrKCZtY2VfbG9nb3V0X2xvY2spOwogCi0gICAgbWNlX2JhcnJpZXJf ZW50ZXIoJm1jZV90cmFwX2Jhcik7CisgICAgbG1jZSA9IGJzLmxtY2U7CisgICAgaWYgKCAhbG1j ZSApCisgICAgICAgIHRoaXNfY3B1KG1jZV9pbl9wcm9jZXNzKSA9IHRydWU7CisKKyAgICBtY2Vf YmFycmllcl9lbnRlcigmbWNlX3RyYXBfYmFyLCBsbWNlKTsKICAgICBpZiAoIG1jdGMgIT0gTlVM TCAmJiBtY2VfdXJnZW50X2FjdGlvbihyZWdzLCBtY3RjKSkKICAgICAgICAgY3B1bWFza19zZXRf Y3B1KHNtcF9wcm9jZXNzb3JfaWQoKSwgJm1jZV9mYXRhbF9jcHVzKTsKLSAgICBtY2VfYmFycmll cl9leGl0KCZtY2VfdHJhcF9iYXIpOworICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV90cmFwX2Jh ciwgbG1jZSk7CiAKICAgICAvKgogICAgICAqIFdhaXQgdW50aWwgZXZlcnlib2R5IGhhcyBwcm9j ZXNzZWQgdGhlIHRyYXAuCiAgICAgICovCi0gICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV90cmFw X2Jhcik7CisgICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV90cmFwX2JhciwgbG1jZSk7CiAgICAg aWYgKGF0b21pY19yZWFkKCZzZXZlcml0eV9jcHUpID09IHNtcF9wcm9jZXNzb3JfaWQoKSkKICAg ICB7CiAgICAgICAgIC8qIEFjY29yZGluZyB0byBTRE0sIGlmIG5vIGVycm9yIGJhbmsgZm91bmQg b24gYW55IGNwdXMsCkBAIC01MjgsMTYgKzU0MSwxNiBAQCB2b2lkIG1jaGVja19jbW5faGFuZGxl cihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgfQogICAgICAgICBh dG9taWNfc2V0KCZmb3VuZF9lcnJvciwgMCk7CiAgICAgfQotICAgIG1jZV9iYXJyaWVyX2V4aXQo Jm1jZV90cmFwX2Jhcik7CisgICAgbWNlX2JhcnJpZXJfZXhpdCgmbWNlX3RyYXBfYmFyLCBsbWNl KTsKIAogICAgIC8qIENsZWFyIGZsYWdzIGFmdGVyIGFib3ZlIGZhdGFsIGNoZWNrICovCi0gICAg bWNlX2JhcnJpZXJfZW50ZXIoJm1jZV90cmFwX2Jhcik7CisgICAgbWNlX2JhcnJpZXJfZW50ZXIo Jm1jZV90cmFwX2JhciwgbG1jZSk7CiAgICAgZ3N0YXR1cyA9IG1jYV9yZG1zcihNU1JfSUEzMl9N Q0dfU1RBVFVTKTsKICAgICBpZiAoKGdzdGF0dXMgJiBNQ0dfU1RBVFVTX01DSVApICE9IDApIHsK ICAgICAgICAgbWNlX3ByaW50ayhNQ0VfQ1JJVElDQUwsICJNQ0U6IENsZWFyIE1DSVBAIGxhc3Qg c3RlcCIpOwogICAgICAgICBtY2Ffd3Jtc3IoTVNSX0lBMzJfTUNHX1NUQVRVUywgMCk7CiAgICAg fQotICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1jZV90cmFwX2Jhcik7CisgICAgbWNlX2JhcnJpZXJf ZXhpdCgmbWNlX3RyYXBfYmFyLCBsbWNlKTsKIAogICAgIHJhaXNlX3NvZnRpcnEoTUFDSElORV9D SEVDS19TT0ZUSVJRKTsKIH0KQEAgLTE3MDQsMTAgKzE3MTcsMTEgQEAgc3RhdGljIHZvaWQgbWNl X3NvZnRpcnEodm9pZCkKIHsKICAgICBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogICAg IHVuc2lnbmVkIGludCB3b3JrY3B1OworICAgIGJvb2wgbm93YWl0ID0gIXRoaXNfY3B1KG1jZV9p bl9wcm9jZXNzKTsKIAogICAgIG1jZV9wcmludGsoTUNFX1ZFUkJPU0UsICJDUFUlZCBlbnRlciBz b2Z0aXJxXG4iLCBjcHUpOwogCi0gICAgbWNlX2JhcnJpZXJfZW50ZXIoJm1jZV9pbnNpZGVfYmFy KTsKKyAgICBtY2VfYmFycmllcl9lbnRlcigmbWNlX2luc2lkZV9iYXIsIG5vd2FpdCk7CiAKICAg ICAvKgogICAgICAqIEV2ZXJ5Ym9keSBpcyBoZXJlLiBOb3cgbGV0J3Mgc2VlIHdobyBnZXRzIHRv IGRvIHRoZQpAQCAtMTcyMCwxMCArMTczNCwxMCBAQCBzdGF0aWMgdm9pZCBtY2Vfc29mdGlycSh2 b2lkKQogCiAgICAgYXRvbWljX3NldCgmc2V2ZXJpdHlfY3B1LCBjcHUpOwogCi0gICAgbWNlX2Jh cnJpZXJfZW50ZXIoJm1jZV9zZXZlcml0eV9iYXIpOworICAgIG1jZV9iYXJyaWVyX2VudGVyKCZt Y2Vfc2V2ZXJpdHlfYmFyLCBub3dhaXQpOwogICAgIGlmICghbWN0ZWxlbV9oYXNfZGVmZXJyZWQo Y3B1KSkKICAgICAgICAgYXRvbWljX3NldCgmc2V2ZXJpdHlfY3B1LCBjcHUpOwotICAgIG1jZV9i YXJyaWVyX2V4aXQoJm1jZV9zZXZlcml0eV9iYXIpOworICAgIG1jZV9iYXJyaWVyX2V4aXQoJm1j ZV9zZXZlcml0eV9iYXIsIG5vd2FpdCk7CiAKICAgICAvKiBXZSBjaG9vc2Ugc2V2ZXJpdHlfY3B1 IGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcgKi8KICAgICBpZiAoYXRvbWljX3JlYWQoJnNldmVyaXR5 X2NwdSkgPT0gY3B1KSB7CkBAIC0xNzMzLDkgKzE3NDcsMTEgQEAgc3RhdGljIHZvaWQgbWNlX3Nv ZnRpcnEodm9pZCkKICAgICAgICAgLyogU3RlcDE6IEZpbGwgRE9NMCBMT0cgYnVmZmVyLCB2TUNF IGluamVjdGlvbiBidWZmZXIgYW5kCiAgICAgICAgICAqIHZNQ0UgTVNScyB2aXJ0dWFsaXphdGlv biBidWZmZXIKICAgICAgICAgICovCi0gICAgICAgIGZvcl9lYWNoX29ubGluZV9jcHUod29ya2Nw dSkgewotICAgICAgICAgICAgbWN0ZWxlbV9wcm9jZXNzX2RlZmVycmVkKHdvcmtjcHUsIG1jZV9k ZWxheWVkX2FjdGlvbik7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKG5vd2FpdCkKKyAgICAgICAg ICAgIG1jdGVsZW1fcHJvY2Vzc19kZWZlcnJlZChjcHUsIG1jZV9kZWxheWVkX2FjdGlvbik7Cisg ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZvcl9lYWNoX29ubGluZV9jcHUod29ya2NwdSkKKyAg ICAgICAgICAgICAgICBtY3RlbGVtX3Byb2Nlc3NfZGVmZXJyZWQod29ya2NwdSwgbWNlX2RlbGF5 ZWRfYWN0aW9uKTsKIAogICAgICAgICAvKiBTdGVwMjogU2VuZCBMb2cgdG8gRE9NMCB0aHJvdWdo IHZJUlEgKi8KICAgICAgICAgaWYgKGRvbTBfdm1jZV9lbmFibGVkKCkpIHsKQEAgLTE3NDQsNyAr MTc2MCw5IEBAIHN0YXRpYyB2b2lkIG1jZV9zb2Z0aXJxKHZvaWQpCiAgICAgICAgIH0KICAgICB9 CiAKLSAgICBtY2VfYmFycmllcl9leGl0KCZtY2VfaW5zaWRlX2Jhcik7CisgICAgbWNlX2JhcnJp ZXJfZXhpdCgmbWNlX2luc2lkZV9iYXIsIG5vd2FpdCk7CisKKyAgICB0aGlzX2NwdShtY2VfaW5f cHJvY2VzcykgPSBmYWxzZTsKIH0KIAogLyogTWFjaGluZSBDaGVjayBvd25lciBqdWRnZSBhbGdv cml0aG06CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuaCBiL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCmluZGV4IDMyZjg1YzcuLjkzNDdlYjkgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUv bWNoZWNrL21jZS5oCkBAIC0xMDksMTIgKzEwOSwxNCBAQCBzdHJ1Y3QgbWNhX3N1bW1hcnkgewog ICAgIGludCAgICAgICAgIGVpcHY7ICAgLyogbWVhbmluZ2Z1bCBvbiAjTUMgKi8KICAgICBib29s ICAgICAgICB1YzsgICAgIC8qIFVDIGZsYWcgKi8KICAgICBib29sICAgICAgICBwY2M7ICAgIC8q IFBDQyBmbGFnICovCisgICAgYm9vbCAgICAgICAgbG1jZTsgICAvKiBMTUNFIGZsYWcgKEludGVs IG9ubHkpICovCiAgICAgYm9vbCAgICAgICAgcmVjb3ZlcmFibGU7IC8qIHNvZnR3YXJlIGVycm9y IHJlY292ZXJhYmxlIGZsYWcgKi8KIH07CiAKIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgbWNhX2Jh bmtzICosIHBvbGxfYmFua21hc2spOwogREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBtY2FfYmFua3Mg Kiwgbm9fY21jaV9iYW5rcyk7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IG1jYV9iYW5rcyAqLCBt Y2VfY2xlYXJfYmFua3MpOworREVDTEFSRV9QRVJfQ1BVKGJvb2wsIG1jZV9pbl9wcm9jZXNzKTsK IAogZXh0ZXJuIGJvb2wgY21jaV9zdXBwb3J0OwogZXh0ZXJuIGJvb2wgaXNfbWNfcGFuaWM7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay94ODZfbWNhLmggYi94ZW4vYXJjaC94 ODYvY3B1L21jaGVjay94ODZfbWNhLmgKaW5kZXggMzRkMTkyMS4uZGUwM2Y4MiAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2sveDg2X21jYS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL3g4Nl9tY2EuaApAQCAtNDIsNyArNDIsOSBAQAogI2RlZmluZSBNQ0dfU1RBVFVT X1JJUFYgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDFVTEwKICNkZWZpbmUgTUNHX1NUQVRVU19F SVBWICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAyVUxMCiAjZGVmaW5lIE1DR19TVEFUVVNfTUNJ UCAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwNFVMTAotLyogQml0cyAzLTYzIGFyZSByZXNlcnZl ZCAqLworI2RlZmluZSBNQ0dfU1RBVFVTX0xNQ0UgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDhV TEwgIC8qIEludGVsIHNwZWNpZmljICovCisvKiBCaXRzIDMtNjMgYXJlIHJlc2VydmVkIG9uIENQ VSBub3Qgc3VwcG9ydGluZyBMTUNFICovCisvKiBCaXRzIDQtNjMgYXJlIHJlc2VydmVkIG9uIENQ VSBzdXBwb3J0aW5nIExNQ0UgKi8KIAogLyogQml0ZmllbGQgb2YgTVNSX0s4X01DaV9TVEFUVVMg cmVnaXN0ZXJzICovCiAvKiBNQ0EgZXJyb3IgY29kZSAqLwotLSAKMi4xMC4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==