From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,2/6] x86/MCE: Handle MCA controls in a per_cpu way From: Yazen Ghannam Message-Id: <20190411201743.43195-3-Yazen.Ghannam@amd.com> Date: Thu, 11 Apr 2019 20:18:01 +0000 To: "linux-edac@vger.kernel.org" Cc: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@suse.de" , "tony.luck@intel.com" , "x86@kernel.org" List-ID: RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpDdXJyZW50IEFN RCBzeXN0ZW1zIGhhdmUgdW5pcXVlIE1DQSBiYW5rcyBwZXIgbG9naWNhbCBDUFUgZXZlbiB0aG91 Z2gNCnRoZSB0eXBlIG9mIHRoZSBiYW5rcyBtYXkgYWxsIGFsaWduIHRvIHRoZSBzYW1lIGJhbmsg bnVtYmVyLiBFYWNoIENQVQ0Kd2lsbCBoYXZlIGNvbnRyb2wgb2YgYSBzZXQgb2YgTUNBIGJhbmtz IGluIHRoZSBoYXJkd2FyZSBhbmQgdGhlc2UgYXJlDQpub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BV cy4NCg0KRm9yIGV4YW1wbGUsIGJhbmsgMCBtYXkgYmUgdGhlIExvYWQtU3RvcmUgVW5pdCBvbiBl dmVyeSBsb2dpY2FsIENQVSwgYnV0DQplYWNoIGJhbmsgMCBpcyBhIHVuaXF1ZSBzdHJ1Y3R1cmUg aW4gdGhlIGhhcmR3YXJlLiBJbiBvdGhlciB3b3JkcywgdGhlcmUNCmlzbid0IGEgKnNpbmdsZSog TG9hZC1TdG9yZSBVbml0IGF0IE1DQSBiYW5rIDAgdGhhdCBhbGwgbG9naWNhbCBDUFVzDQpzaGFy ZS4NCg0KVGhpcyBpZGVhIGV4dGVuZHMgZXZlbiB0byBub24tY29yZSBNQ0EgYmFua3MuIEZvciBl eGFtcGxlLCBDUFUwIGFuZCBDUFU0DQptYXkgc2VlIGEgVW5pZmllZCBNZW1vcnkgQ29udHJvbGxl ciBhdCBiYW5rIDE1LCBidXQgZWFjaCBDUFUgaXMgYWN0dWFsbHkNCnNlZWluZyBhIHVuaXF1ZSBo YXJkd2FyZSBzdHJ1Y3R1cmUgdGhhdCBpcyBub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BVcy4NCg0K QmVjYXVzZSB0aGUgTUNBIGJhbmtzIGFyZSBhbGwgdW5pcXVlIGhhcmR3YXJlIHN0cnVjdHVyZXMs IGl0IHdvdWxkIGJlDQpnb29kIHRvIGNvbnRyb2wgdGhlbSBpbiBhIG1vcmUgZ3JhbnVsYXIgd2F5 LiBGb3IgZXhhbXBsZSwgaWYgdGhlcmUgaXMgYQ0Ka25vd24gaXNzdWUgd2l0aCB0aGUgRmxvYXRp bmcgUG9pbnQgVW5pdCBvbiBDUFU1IGFuZCBhIHVzZXIgd2lzaGVzIHRvDQpkaXNhYmxlIGFuIGVy cm9yIHR5cGUgb24gdGhlIEZsb2F0aW5nIFBvaW50IFVuaXQsIHRoZW4gaXQgd291bGQgYmUgZ29v ZA0KdG8gZG8gdGhpcyBvbmx5IGZvciBDUFU1IHJhdGhlciB0aGFuIGFsbCBDUFVzLg0KDQpBbHNv LCBmdXR1cmUgQU1EIHN5c3RlbXMgbWF5IGhhdmUgaGV0ZXJvZ2VuZW91cyBNQ0EgYmFua3MuIE1l YW5pbmcgdGhlDQpiYW5rIG51bWJlcnMgbWF5IG5vdCBuZWNlc3NhcmlseSByZXByZXNlbnQgdGhl IHNhbWUgdHlwZXMgYmV0d2VlbiBDUFVzLg0KRm9yIGV4YW1wbGUsIGJhbmsgMjAgdmlzaWJsZSB0 byBDUFUwIG1heSBiZSBhIFVuaWZpZWQgTWVtb3J5IENvbnRyb2xsZXINCmFuZCBiYW5rIDIwIHZp c2libGUgdG8gQ1BVNCBtYXkgYmUgYSBDb2hlcmVudCBTbGF2ZS4gU28gZ3JhbnVsYXIgY29udHJv bA0Kd2lsbCBiZSBldmVuIG1vcmUgbmVjZXNzYXJ5IHNob3VsZCB0aGUgdXNlciB3aXNoIHRvIGNv bnRyb2wgc3BlY2lmaWMgTUNBDQpiYW5rcy4NCg0KU3BsaXQgdGhlIGRldmljZSBhdHRyaWJ1dGVz IGZyb20gc3RydWN0IG1jZV9iYW5rIGxlYXZpbmcgb25seSB0aGUgTUNBDQpiYW5rIGNvbnRyb2wg ZmllbGRzLg0KDQpNYWtlIHN0cnVjdCBtY2VfYmFua3NbXSBwZXJfY3B1IGluIG9yZGVyIHRvIGhh dmUgbW9yZSBncmFudWxhciBjb250cm9sDQpvdmVyIGluZGl2aWR1YWwgTUNBIGJhbmtzIGluIHRo ZSBoYXJkd2FyZS4NCg0KQWxsb2NhdGUgdGhlIGRldmljZSBhdHRyaWJ1dGVzIHN0YXRpY2FsbHkg YmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mDQpNQ0EgYmFua3Mgc3VwcG9ydGVkLiBUaGUg c3lzZnMgaW50ZXJmYWNlIHdpbGwgdXNlIGFzIG1hbnkgYXMgbmVlZGVkIHBlcg0KQ1BVLiBDdXJy ZW50bHksIHRoaXMgaXMgc2V0IHRvIG1jYV9jZmcuYmFua3MsIGJ1dCB3aWxsIGJlIGNoYW5nZWQg dG8gYQ0KcGVyX2NwdSBiYW5rIGNvdW50IGluIGEgZnV0dXJlIHBhdGNoLg0KDQpBbGxvY2F0ZSB0 aGUgTUNBIGNvbnRyb2wgYml0cyBkeW5hbWljYWxseS4gVXNlIHRoZSBtYXhpbXVtIG51bWJlciBv ZiBNQ0ENCmJhbmtzIHN1cHBvcnRlZCBmb3Igbm93LiBUaGlzIHdpbGwgYmUgY2hhbmdlZCB0byBh IHBlcl9jcHUgYmFuayBjb3VudCBpbg0KYSBmdXR1cmUgcGF0Y2guDQoNClJlZG8gdGhlIHN5c2Zz IHN0b3JlL3Nob3cgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgcGVyX2NwdSBtY2VfYmFua3NbXS4N Cg0KU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0K LS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8yMDE5MDQwODE0MTIwNS4xMjM3 Ni0zLVlhemVuLkdoYW5uYW1AYW1kLmNvbQ0KDQp2MS0+djI6DQoqIENoYW5nZSAic3RydWN0IG1j ZV9iYW5rKiIgdG8gInN0cnVjdCBtY2VfYmFuayAqIiBpbiBkZWZpbml0aW9uLg0KDQogYXJjaC94 ODYva2VybmVsL2NwdS9tY2UvY29yZS5jIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMo LSkNCg0KLS0gDQoyLjE3LjEKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9j b3JlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCmluZGV4IDhkMGQxZTg0MjVk Yi4uYWE0MWY0MWU1OTMxIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2UvY29y ZS5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCkBAIC02NCwxNiArNjQs MjEgQEAgc3RhdGljIERFRklORV9NVVRFWChtY2Vfc3lzZnNfbXV0ZXgpOw0KIA0KIERFRklORV9Q RVJfQ1BVKHVuc2lnbmVkLCBtY2VfZXhjZXB0aW9uX2NvdW50KTsNCiANCitzdHJ1Y3QgbWNlX2Jh bmsgew0KKwl1NjQJY3RsOwkvKiBzdWJldmVudHMgdG8gZW5hYmxlICovDQorCWJvb2wJaW5pdDsJ LyogaW5pdGlhbGlzZSBiYW5rPyAqLw0KK307DQorc3RhdGljIERFRklORV9QRVJfQ1BVX1JFQURf TU9TVExZKHN0cnVjdCBtY2VfYmFuayAqLCBtY2VfYmFua3MpOw0KKw0KICNkZWZpbmUgQVRUUl9M RU4gICAgICAgICAgICAgICAxNg0KIC8qIE9uZSBvYmplY3QgZm9yIGVhY2ggTUNFIGJhbmssIHNo YXJlZCBieSBhbGwgQ1BVcyAqLw0KLXN0cnVjdCBtY2VfYmFuayB7DQotCXU2NAkJCWN0bDsJCQkv KiBzdWJldmVudHMgdG8gZW5hYmxlICovDQotCWJvb2wJCQlpbml0OwkJCS8qIGluaXRpYWxpc2Ug YmFuaz8gKi8NCitzdHJ1Y3QgbWNlX2JhbmtfZGV2IHsNCiAJc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUJYXR0cjsJCQkvKiBkZXZpY2UgYXR0cmlidXRlICovDQogCWNoYXIJCQlhdHRybmFtZVtBVFRS X0xFTl07CS8qIGF0dHJpYnV0ZSBuYW1lICovDQorCXU4CQkJYmFuazsJCQkvKiBiYW5rIG51bWJl ciAqLw0KIH07DQorc3RhdGljIHN0cnVjdCBtY2VfYmFua19kZXYgbWNlX2JhbmtfZGV2c1tNQVhf TlJfQkFOS1NdOw0KIA0KLXN0YXRpYyBzdHJ1Y3QgbWNlX2JhbmsgKm1jZV9iYW5rcyBfX3JlYWRf bW9zdGx5Ow0KIHN0cnVjdCBtY2VfdmVuZG9yX2ZsYWdzIG1jZV9mbGFncyBfX3JlYWRfbW9zdGx5 Ow0KIA0KIHN0cnVjdCBtY2FfY29uZmlnIG1jYV9jZmcgX19yZWFkX21vc3RseSA9IHsNCkBAIC02 OTUsNyArNzAwLDcgQEAgYm9vbCBtYWNoaW5lX2NoZWNrX3BvbGwoZW51bSBtY3BfZmxhZ3MgZmxh Z3MsIG1jZV9iYW5rc190ICpiKQ0KIAkJbS50c2MgPSByZHRzYygpOw0KIA0KIAlmb3IgKGkgPSAw OyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7DQotCQlpZiAoIW1jZV9iYW5rc1tpXS5jdGwgfHwg IXRlc3RfYml0KGksICpiKSkNCisJCWlmICghdGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldLmN0 bCB8fCAhdGVzdF9iaXQoaSwgKmIpKQ0KIAkJCWNvbnRpbnVlOw0KIA0KIAkJbS5taXNjID0gMDsN CkBAIC0xMTM4LDcgKzExNDMsNyBAQCBzdGF0aWMgdm9pZCBfX21jX3NjYW5fYmFua3Moc3RydWN0 IG1jZSAqbSwgc3RydWN0IG1jZSAqZmluYWwsDQogCQlpZiAoIXRlc3RfYml0KGksIHZhbGlkX2Jh bmtzKSkNCiAJCQljb250aW51ZTsNCiANCi0JCWlmICghbWNlX2JhbmtzW2ldLmN0bCkNCisJCWlm ICghdGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldLmN0bCkNCiAJCQljb250aW51ZTsNCiANCiAJ CW0tPm1pc2MgPSAwOw0KQEAgLTE0NzUsMTYgKzE0ODAsMTkgQEAgc3RhdGljIGludCBfX21jaGVj a19jcHVfbWNlX2JhbmtzX2luaXQodm9pZCkNCiB7DQogCWludCBpOw0KIA0KLQltY2VfYmFua3Mg PSBrY2FsbG9jKE1BWF9OUl9CQU5LUywgc2l6ZW9mKHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJO RUwpOw0KLQlpZiAoIW1jZV9iYW5rcykNCisJcGVyX2NwdShtY2VfYmFua3MsIHNtcF9wcm9jZXNz b3JfaWQoKSkgPQ0KKwkJa2NhbGxvYyhNQVhfTlJfQkFOS1MsIHNpemVvZihzdHJ1Y3QgbWNlX2Jh bmspLCBHRlBfS0VSTkVMKTsNCisNCisJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcykpDQog CQlyZXR1cm4gLUVOT01FTTsNCiANCiAJZm9yIChpID0gMDsgaSA8IE1BWF9OUl9CQU5LUzsgaSsr KSB7DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KKwkJc3RydWN0IG1j ZV9iYW5rICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsNCiANCiAJCWItPmN0bCA9 IC0xVUxMOw0KIAkJYi0+aW5pdCA9IDE7DQogCX0NCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KQEAg LTE1MDQsNyArMTUxMiw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2NhcF9pbml0KHZvaWQp DQogDQogCW1jYV9jZmcuYmFua3MgPSBtYXgobWNhX2NmZy5iYW5rcywgYik7DQogDQotCWlmICgh bWNlX2JhbmtzKSB7DQorCWlmICghdGhpc19jcHVfcmVhZChtY2VfYmFua3MpKSB7DQogCQlpbnQg ZXJyID0gX19tY2hlY2tfY3B1X21jZV9iYW5rc19pbml0KCk7DQogCQlpZiAoZXJyKQ0KIAkJCXJl dHVybiBlcnI7DQpAQCAtMTU0Nyw3ICsxNTU1LDcgQEAgc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1 X2luaXRfY2xlYXJfYmFua3Modm9pZCkNCiAJaW50IGk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBt Y2FfY2ZnLmJhbmtzOyBpKyspIHsNCi0JCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3Nb aV07DQorCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmdGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ld Ow0KIA0KIAkJaWYgKCFiLT5pbml0KQ0KIAkJCWNvbnRpbnVlOw0KQEAgLTE2MDIsNyArMTYxMCw3 IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194 ODYgKmMpDQogCQkJICogdHJpcHMgb2ZmIGluY29ycmVjdGx5IHdpdGggdGhlIElPTU1VICYgM3dh cmUNCiAJCQkgKiAmIENlcmJlcnVzOg0KIAkJCSAqLw0KLQkJCWNsZWFyX2JpdCgxMCwgKHVuc2ln bmVkIGxvbmcgKikmbWNlX2JhbmtzWzRdLmN0bCk7DQorCQkJY2xlYXJfYml0KDEwLCAodW5zaWdu ZWQgbG9uZyAqKSZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbNF0uY3RsKTsNCiAJCX0NCiAJCWlm IChjLT54ODYgPCAweDExICYmIGNmZy0+Ym9vdGxvZyA8IDApIHsNCiAJCQkvKg0KQEAgLTE2MTYs NyArMTYyNCw3IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FwcGx5X3F1aXJrcyhzdHJ1Y3Qg Y3B1aW5mb194ODYgKmMpDQogCQkgKiBieSBkZWZhdWx0Lg0KIAkJICovDQogCQlpZiAoYy0+eDg2 ID09IDYgJiYgY2ZnLT5iYW5rcyA+IDApDQotCQkJbWNlX2JhbmtzWzBdLmN0bCA9IDA7DQorCQkJ dGhpc19jcHVfcmVhZChtY2VfYmFua3MpWzBdLmN0bCA9IDA7DQogDQogCQkvKg0KIAkJICogb3Zl cmZsb3dfcmVjb3YgaXMgc3VwcG9ydGVkIGZvciBGMTVoIE1vZGVscyAwMGgtMGZoDQpAQCAtMTYz OCw3ICsxNjQ2LDcgQEAgc3RhdGljIGludCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0cnVj dCBjcHVpbmZvX3g4NiAqYykNCiAJCSAqLw0KIA0KIAkJaWYgKGMtPng4NiA9PSA2ICYmIGMtPng4 Nl9tb2RlbCA8IDB4MUEgJiYgY2ZnLT5iYW5rcyA+IDApDQotCQkJbWNlX2JhbmtzWzBdLmluaXQg PSAwOw0KKwkJCXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVswXS5pbml0ID0gMDsNCiANCiAJCS8q DQogCQkgKiBBbGwgbmV3ZXIgSW50ZWwgc3lzdGVtcyBzdXBwb3J0IE1DRSBicm9hZGNhc3Rpbmcu IEVuYWJsZQ0KQEAgLTE5NTIsNyArMTk2MCw3IEBAIHN0YXRpYyB2b2lkIG1jZV9kaXNhYmxlX2Vy cm9yX3JlcG9ydGluZyh2b2lkKQ0KIAlpbnQgaTsNCiANCiAJZm9yIChpID0gMDsgaSA8IG1jYV9j ZmcuYmFua3M7IGkrKykgew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsN CisJCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQog DQogCQlpZiAoYi0+aW5pdCkNCiAJCQl3cm1zcmwobXNyX29wcy5jdGwoaSksIDApOw0KQEAgLTIw NTEsMjYgKzIwNTksNDEgQEAgc3RhdGljIHN0cnVjdCBidXNfdHlwZSBtY2Vfc3Vic3lzID0gew0K IA0KIERFRklORV9QRVJfQ1BVKHN0cnVjdCBkZXZpY2UgKiwgbWNlX2RldmljZSk7DQogDQotc3Rh dGljIGlubGluZSBzdHJ1Y3QgbWNlX2JhbmsgKmF0dHJfdG9fYmFuayhzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0cikNCitzdGF0aWMgaW5saW5lIHN0cnVjdCBtY2VfYmFua19kZXYgKmF0dHJf dG9fYmFuayhzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cikNCiB7DQotCXJldHVybiBjb250 YWluZXJfb2YoYXR0ciwgc3RydWN0IG1jZV9iYW5rLCBhdHRyKTsNCisJcmV0dXJuIGNvbnRhaW5l cl9vZihhdHRyLCBzdHJ1Y3QgbWNlX2JhbmtfZGV2LCBhdHRyKTsNCiB9DQogDQogc3RhdGljIHNz aXplX3Qgc2hvd19iYW5rKHN0cnVjdCBkZXZpY2UgKnMsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLA0KIAkJCSBjaGFyICpidWYpDQogew0KLQlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx4 XG4iLCBhdHRyX3RvX2JhbmsoYXR0ciktPmN0bCk7DQorCXN0cnVjdCBtY2VfYmFuayAqYjsNCisJ dTggYmFuayA9IGF0dHJfdG9fYmFuayhhdHRyKS0+YmFuazsNCisNCisJaWYgKGJhbmsgPj0gbWNh X2NmZy5iYW5rcykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwliID0gJnBlcl9jcHUobWNlX2Jh bmtzLCBzLT5pZClbYmFua107DQorDQorCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsbHhcbiIsIGIt PmN0bCk7DQogfQ0KIA0KIHN0YXRpYyBzc2l6ZV90IHNldF9iYW5rKHN0cnVjdCBkZXZpY2UgKnMs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6 ZV90IHNpemUpDQogew0KIAl1NjQgbmV3Ow0KKwlzdHJ1Y3QgbWNlX2JhbmsgKmI7DQorCXU4IGJh bmsgPSBhdHRyX3RvX2JhbmsoYXR0ciktPmJhbms7DQogDQogCWlmIChrc3RydG91NjQoYnVmLCAw LCAmbmV3KSA8IDApDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JYXR0cl90b19iYW5rKGF0dHIp LT5jdGwgPSBuZXc7DQorCWlmIChiYW5rID49IG1jYV9jZmcuYmFua3MpDQorCQlyZXR1cm4gLUVJ TlZBTDsNCisNCisJYiA9ICZwZXJfY3B1KG1jZV9iYW5rcywgcy0+aWQpW2JhbmtdOw0KKw0KKwli LT5jdGwgPSBuZXc7DQogCW1jZV9yZXN0YXJ0KCk7DQogDQogCXJldHVybiBzaXplOw0KQEAgLTIx ODUsNyArMjIwOCw3IEBAIHN0YXRpYyB2b2lkIG1jZV9kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZGV2 aWNlICpkZXYpDQogCWtmcmVlKGRldik7DQogfQ0KIA0KLS8qIFBlciBjcHUgZGV2aWNlIGluaXQu IEFsbCBvZiB0aGUgY3B1cyBzdGlsbCBzaGFyZSB0aGUgc2FtZSBjdHJsIGJhbms6ICovDQorLyog UGVyIGNwdSBkZXZpY2UgaW5pdC4gQWxsIG9mIHRoZSBjcHVzIHN0aWxsIHNoYXJlIHRoZSBzYW1l IGJhbmsgZGV2aWNlOiAqLw0KIHN0YXRpYyBpbnQgbWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQg aW50IGNwdSkNCiB7DQogCXN0cnVjdCBkZXZpY2UgKmRldjsNCkBAIC0yMjE4LDcgKzIyNDEsNyBA QCBzdGF0aWMgaW50IG1jZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUpDQogCQkJZ290 byBlcnJvcjsNCiAJfQ0KIAlmb3IgKGogPSAwOyBqIDwgbWNhX2NmZy5iYW5rczsgaisrKSB7DQot CQllcnIgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGV2LCAmbWNlX2JhbmtzW2pdLmF0dHIpOw0KKwkJ ZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNbal0uYXR0cik7DQog CQlpZiAoZXJyKQ0KIAkJCWdvdG8gZXJyb3IyOw0KIAl9DQpAQCAtMjIyOCw3ICsyMjUxLDcgQEAg c3RhdGljIGludCBtY2VfZGV2aWNlX2NyZWF0ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAlyZXR1cm4g MDsNCiBlcnJvcjI6DQogCXdoaWxlICgtLWogPj0gMCkNCi0JCWRldmljZV9yZW1vdmVfZmlsZShk ZXYsICZtY2VfYmFua3Nbal0uYXR0cik7DQorCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNl X2JhbmtfZGV2c1tqXS5hdHRyKTsNCiBlcnJvcjoNCiAJd2hpbGUgKC0taSA+PSAwKQ0KIAkJZGV2 aWNlX3JlbW92ZV9maWxlKGRldiwgbWNlX2RldmljZV9hdHRyc1tpXSk7DQpAQCAtMjI1MCw3ICsy MjczLDcgQEAgc3RhdGljIHZvaWQgbWNlX2RldmljZV9yZW1vdmUodW5zaWduZWQgaW50IGNwdSkN CiAJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsIG1jZV9kZXZpY2VfYXR0cnNbaV0pOw0KIA0KIAlm b3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKQ0KLQkJZGV2aWNlX3JlbW92ZV9maWxl KGRldiwgJm1jZV9iYW5rc1tpXS5hdHRyKTsNCisJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZt Y2VfYmFua19kZXZzW2ldLmF0dHIpOw0KIA0KIAlkZXZpY2VfdW5yZWdpc3RlcihkZXYpOw0KIAlj cHVtYXNrX2NsZWFyX2NwdShjcHUsIG1jZV9kZXZpY2VfaW5pdGlhbGl6ZWQpOw0KQEAgLTIyNzks NyArMjMwMiw3IEBAIHN0YXRpYyB2b2lkIG1jZV9yZWVuYWJsZV9jcHUodm9pZCkNCiAJaWYgKCFj cHVocF90YXNrc19mcm96ZW4pDQogCQljbWNpX3JlZW5hYmxlKCk7DQogCWZvciAoaSA9IDA7IGkg PCBtY2FfY2ZnLmJhbmtzOyBpKyspIHsNCi0JCXN0cnVjdCBtY2VfYmFuayAqYiA9ICZtY2VfYmFu a3NbaV07DQorCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmdGhpc19jcHVfcmVhZChtY2VfYmFua3Mp W2ldOw0KIA0KIAkJaWYgKGItPmluaXQpDQogCQkJd3Jtc3JsKG1zcl9vcHMuY3RsKGkpLCBiLT5j dGwpOw0KQEAgLTIzMjgsMTAgKzIzNTEsMTIgQEAgc3RhdGljIF9faW5pdCB2b2lkIG1jZV9pbml0 X2JhbmtzKHZvaWQpDQogew0KIAlpbnQgaTsNCiANCi0JZm9yIChpID0gMDsgaSA8IG1jYV9jZmcu YmFua3M7IGkrKykgew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJ Zm9yIChpID0gMDsgaSA8IE1BWF9OUl9CQU5LUzsgaSsrKSB7DQorCQlzdHJ1Y3QgbWNlX2Jhbmtf ZGV2ICpiID0gJm1jZV9iYW5rX2RldnNbaV07DQogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YSA9ICZiLT5hdHRyOw0KIA0KKwkJYi0+YmFuayA9IGk7DQorDQogCQlzeXNmc19hdHRyX2luaXQo JmEtPmF0dHIpOw0KIAkJYS0+YXR0ci5uYW1lCT0gYi0+YXR0cm5hbWU7DQogCQlzbnByaW50Zihi LT5hdHRybmFtZSwgQVRUUl9MRU4sICJiYW5rJWQiLCBpKTsNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 959DAC10F13 for ; Thu, 11 Apr 2019 20:18:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5F44A2184E for ; Thu, 11 Apr 2019 20:18:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="aEN7h8m7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726838AbfDKUSG (ORCPT ); Thu, 11 Apr 2019 16:18:06 -0400 Received: from mail-eopbgr820079.outbound.protection.outlook.com ([40.107.82.79]:50208 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726538AbfDKUSG (ORCPT ); Thu, 11 Apr 2019 16:18:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sZFubW59aSz1GkTGyFC+8fUW4a2Sz/2Ld1arcSQIHdQ=; b=aEN7h8m7lcNFxgBGBPWAxTqulzHMmv8OPnH7wwbV8zPtt91wHSeSXlwkp2BCUn8b8ewOoy5LTbT0RrsvE0P+Kc1wmz34QGj261vjbF1xI1Lr7OeJQZKJ8LQGJLe+UnPEYVP64FRo8EVB2FBjSG8GMu8dFupagrfXaOezfbOHD3U= Received: from SN6PR12MB2639.namprd12.prod.outlook.com (52.135.103.16) by SN6PR12MB2688.namprd12.prod.outlook.com (52.135.103.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1771.16; Thu, 11 Apr 2019 20:18:01 +0000 Received: from SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::9c51:41bf:f88e:f3e8]) by SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::9c51:41bf:f88e:f3e8%2]) with mapi id 15.20.1771.016; Thu, 11 Apr 2019 20:18:01 +0000 From: "Ghannam, Yazen" To: "linux-edac@vger.kernel.org" CC: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@suse.de" , "tony.luck@intel.com" , "x86@kernel.org" Subject: [PATCH v2 2/6] x86/MCE: Handle MCA controls in a per_cpu way Thread-Topic: [PATCH v2 2/6] x86/MCE: Handle MCA controls in a per_cpu way Thread-Index: AQHU8KOpreLY72L5zUCCNBPmUcKxmA== Date: Thu, 11 Apr 2019 20:18:01 +0000 Message-ID: <20190411201743.43195-3-Yazen.Ghannam@amd.com> References: <20190411201743.43195-1-Yazen.Ghannam@amd.com> In-Reply-To: <20190411201743.43195-1-Yazen.Ghannam@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR02CA0014.namprd02.prod.outlook.com (2603:10b6:805:a2::27) To SN6PR12MB2639.namprd12.prod.outlook.com (2603:10b6:805:6f::16) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yazen.Ghannam@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [165.204.78.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: eb3f382b-7554-43f2-6b89-08d6bebacbe9 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:SN6PR12MB2688; x-ms-traffictypediagnostic: SN6PR12MB2688: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-forefront-prvs: 00046D390F x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(979002)(39860400002)(366004)(346002)(136003)(376002)(396003)(199004)(189003)(2616005)(966005)(256004)(14444005)(4326008)(478600001)(66066001)(76176011)(26005)(5660300002)(53936002)(3846002)(6506007)(72206003)(186003)(6116002)(2906002)(386003)(54906003)(2501003)(102836004)(6916009)(2351001)(97736004)(105586002)(99286004)(6436002)(8936002)(52116002)(50226002)(36756003)(14454004)(106356001)(68736007)(81156014)(81166006)(476003)(6486002)(7736002)(11346002)(71200400001)(446003)(486006)(71190400001)(5640700003)(86362001)(6306002)(316002)(8676002)(1076003)(305945005)(6512007)(25786009)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR12MB2688;H:SN6PR12MB2639.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: aPJu4iy0jNfBUKlyD8v/o4YiuaRltfRiDP5FxwjYUK8HD/emWzMRADGhwKgFbhNpOFO1vsJKswnvJ1aBtXRVbRZ7JrBEq1APPVjbBRdBCWZ5RkTt0RLYyEShCuSxkiBNVU9naDdrNRT5yoxTPk08ifoJ4FevuUxJ1KZWW5BReTmHoCFGjz1CYx4MhnUDQhYOK53JBzrvLe0jCunMIOIoJtUHnEuGELPX6gOvfpDjKB0Vl/vgRUQfOOHQcMeJds83y468kEbtNF7aX8TFvUWgBNJzAEEnZ4i06st/Wy9nL/W6Sl3yt5UKCU8LyJTHDhDHcHXpQ9iFUVV5vn3fCMyVEP9PBgkvweNyfzPKwpUSoTBqrhvh/CjYd7x3raOGnO6bZMt5BGq/o/wq/aCN4CSDSfnI82opM7N9gnAHQdIOsgk= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb3f382b-7554-43f2-6b89-08d6bebacbe9 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2019 20:18:01.7483 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2688 Sender: linux-edac-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-edac@vger.kernel.org Message-ID: <20190411201801.zFpXx1jYWVbgIVTDPkJjNSqiFNzfqxnj3Vpk0hjvyI8@z> RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpDdXJyZW50IEFN RCBzeXN0ZW1zIGhhdmUgdW5pcXVlIE1DQSBiYW5rcyBwZXIgbG9naWNhbCBDUFUgZXZlbiB0aG91 Z2gNCnRoZSB0eXBlIG9mIHRoZSBiYW5rcyBtYXkgYWxsIGFsaWduIHRvIHRoZSBzYW1lIGJhbmsg bnVtYmVyLiBFYWNoIENQVQ0Kd2lsbCBoYXZlIGNvbnRyb2wgb2YgYSBzZXQgb2YgTUNBIGJhbmtz IGluIHRoZSBoYXJkd2FyZSBhbmQgdGhlc2UgYXJlDQpub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BV cy4NCg0KRm9yIGV4YW1wbGUsIGJhbmsgMCBtYXkgYmUgdGhlIExvYWQtU3RvcmUgVW5pdCBvbiBl dmVyeSBsb2dpY2FsIENQVSwgYnV0DQplYWNoIGJhbmsgMCBpcyBhIHVuaXF1ZSBzdHJ1Y3R1cmUg aW4gdGhlIGhhcmR3YXJlLiBJbiBvdGhlciB3b3JkcywgdGhlcmUNCmlzbid0IGEgKnNpbmdsZSog TG9hZC1TdG9yZSBVbml0IGF0IE1DQSBiYW5rIDAgdGhhdCBhbGwgbG9naWNhbCBDUFVzDQpzaGFy ZS4NCg0KVGhpcyBpZGVhIGV4dGVuZHMgZXZlbiB0byBub24tY29yZSBNQ0EgYmFua3MuIEZvciBl eGFtcGxlLCBDUFUwIGFuZCBDUFU0DQptYXkgc2VlIGEgVW5pZmllZCBNZW1vcnkgQ29udHJvbGxl ciBhdCBiYW5rIDE1LCBidXQgZWFjaCBDUFUgaXMgYWN0dWFsbHkNCnNlZWluZyBhIHVuaXF1ZSBo YXJkd2FyZSBzdHJ1Y3R1cmUgdGhhdCBpcyBub3Qgc2hhcmVkIHdpdGggb3RoZXIgQ1BVcy4NCg0K QmVjYXVzZSB0aGUgTUNBIGJhbmtzIGFyZSBhbGwgdW5pcXVlIGhhcmR3YXJlIHN0cnVjdHVyZXMs IGl0IHdvdWxkIGJlDQpnb29kIHRvIGNvbnRyb2wgdGhlbSBpbiBhIG1vcmUgZ3JhbnVsYXIgd2F5 LiBGb3IgZXhhbXBsZSwgaWYgdGhlcmUgaXMgYQ0Ka25vd24gaXNzdWUgd2l0aCB0aGUgRmxvYXRp bmcgUG9pbnQgVW5pdCBvbiBDUFU1IGFuZCBhIHVzZXIgd2lzaGVzIHRvDQpkaXNhYmxlIGFuIGVy cm9yIHR5cGUgb24gdGhlIEZsb2F0aW5nIFBvaW50IFVuaXQsIHRoZW4gaXQgd291bGQgYmUgZ29v ZA0KdG8gZG8gdGhpcyBvbmx5IGZvciBDUFU1IHJhdGhlciB0aGFuIGFsbCBDUFVzLg0KDQpBbHNv LCBmdXR1cmUgQU1EIHN5c3RlbXMgbWF5IGhhdmUgaGV0ZXJvZ2VuZW91cyBNQ0EgYmFua3MuIE1l YW5pbmcgdGhlDQpiYW5rIG51bWJlcnMgbWF5IG5vdCBuZWNlc3NhcmlseSByZXByZXNlbnQgdGhl IHNhbWUgdHlwZXMgYmV0d2VlbiBDUFVzLg0KRm9yIGV4YW1wbGUsIGJhbmsgMjAgdmlzaWJsZSB0 byBDUFUwIG1heSBiZSBhIFVuaWZpZWQgTWVtb3J5IENvbnRyb2xsZXINCmFuZCBiYW5rIDIwIHZp c2libGUgdG8gQ1BVNCBtYXkgYmUgYSBDb2hlcmVudCBTbGF2ZS4gU28gZ3JhbnVsYXIgY29udHJv bA0Kd2lsbCBiZSBldmVuIG1vcmUgbmVjZXNzYXJ5IHNob3VsZCB0aGUgdXNlciB3aXNoIHRvIGNv bnRyb2wgc3BlY2lmaWMgTUNBDQpiYW5rcy4NCg0KU3BsaXQgdGhlIGRldmljZSBhdHRyaWJ1dGVz IGZyb20gc3RydWN0IG1jZV9iYW5rIGxlYXZpbmcgb25seSB0aGUgTUNBDQpiYW5rIGNvbnRyb2wg ZmllbGRzLg0KDQpNYWtlIHN0cnVjdCBtY2VfYmFua3NbXSBwZXJfY3B1IGluIG9yZGVyIHRvIGhh dmUgbW9yZSBncmFudWxhciBjb250cm9sDQpvdmVyIGluZGl2aWR1YWwgTUNBIGJhbmtzIGluIHRo ZSBoYXJkd2FyZS4NCg0KQWxsb2NhdGUgdGhlIGRldmljZSBhdHRyaWJ1dGVzIHN0YXRpY2FsbHkg YmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mDQpNQ0EgYmFua3Mgc3VwcG9ydGVkLiBUaGUg c3lzZnMgaW50ZXJmYWNlIHdpbGwgdXNlIGFzIG1hbnkgYXMgbmVlZGVkIHBlcg0KQ1BVLiBDdXJy ZW50bHksIHRoaXMgaXMgc2V0IHRvIG1jYV9jZmcuYmFua3MsIGJ1dCB3aWxsIGJlIGNoYW5nZWQg dG8gYQ0KcGVyX2NwdSBiYW5rIGNvdW50IGluIGEgZnV0dXJlIHBhdGNoLg0KDQpBbGxvY2F0ZSB0 aGUgTUNBIGNvbnRyb2wgYml0cyBkeW5hbWljYWxseS4gVXNlIHRoZSBtYXhpbXVtIG51bWJlciBv ZiBNQ0ENCmJhbmtzIHN1cHBvcnRlZCBmb3Igbm93LiBUaGlzIHdpbGwgYmUgY2hhbmdlZCB0byBh IHBlcl9jcHUgYmFuayBjb3VudCBpbg0KYSBmdXR1cmUgcGF0Y2guDQoNClJlZG8gdGhlIHN5c2Zz IHN0b3JlL3Nob3cgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgcGVyX2NwdSBtY2VfYmFua3NbXS4N Cg0KU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0K LS0tDQpMaW5rOg0KaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8yMDE5MDQwODE0MTIwNS4xMjM3 Ni0zLVlhemVuLkdoYW5uYW1AYW1kLmNvbQ0KDQp2MS0+djI6DQoqIENoYW5nZSAic3RydWN0IG1j ZV9iYW5rKiIgdG8gInN0cnVjdCBtY2VfYmFuayAqIiBpbiBkZWZpbml0aW9uLg0KDQogYXJjaC94 ODYva2VybmVsL2NwdS9tY2UvY29yZS5jIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMo LSkNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYyBiL2FyY2gv eDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KaW5kZXggOGQwZDFlODQyNWRiLi5hYTQxZjQxZTU5 MzEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jZS9jb3JlLmMNCisrKyBiL2Fy Y2gveDg2L2tlcm5lbC9jcHUvbWNlL2NvcmUuYw0KQEAgLTY0LDE2ICs2NCwyMSBAQCBzdGF0aWMg REVGSU5FX01VVEVYKG1jZV9zeXNmc19tdXRleCk7DQogDQogREVGSU5FX1BFUl9DUFUodW5zaWdu ZWQsIG1jZV9leGNlcHRpb25fY291bnQpOw0KIA0KK3N0cnVjdCBtY2VfYmFuayB7DQorCXU2NAlj dGw7CS8qIHN1YmV2ZW50cyB0byBlbmFibGUgKi8NCisJYm9vbAlpbml0OwkvKiBpbml0aWFsaXNl IGJhbms/ICovDQorfTsNCitzdGF0aWMgREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFkoc3RydWN0 IG1jZV9iYW5rICosIG1jZV9iYW5rcyk7DQorDQogI2RlZmluZSBBVFRSX0xFTiAgICAgICAgICAg ICAgIDE2DQogLyogT25lIG9iamVjdCBmb3IgZWFjaCBNQ0UgYmFuaywgc2hhcmVkIGJ5IGFsbCBD UFVzICovDQotc3RydWN0IG1jZV9iYW5rIHsNCi0JdTY0CQkJY3RsOwkJCS8qIHN1YmV2ZW50cyB0 byBlbmFibGUgKi8NCi0JYm9vbAkJCWluaXQ7CQkJLyogaW5pdGlhbGlzZSBiYW5rPyAqLw0KK3N0 cnVjdCBtY2VfYmFua19kZXYgew0KIAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQlhdHRyOwkJCS8q IGRldmljZSBhdHRyaWJ1dGUgKi8NCiAJY2hhcgkJCWF0dHJuYW1lW0FUVFJfTEVOXTsJLyogYXR0 cmlidXRlIG5hbWUgKi8NCisJdTgJCQliYW5rOwkJCS8qIGJhbmsgbnVtYmVyICovDQogfTsNCitz dGF0aWMgc3RydWN0IG1jZV9iYW5rX2RldiBtY2VfYmFua19kZXZzW01BWF9OUl9CQU5LU107DQog DQotc3RhdGljIHN0cnVjdCBtY2VfYmFuayAqbWNlX2JhbmtzIF9fcmVhZF9tb3N0bHk7DQogc3Ry dWN0IG1jZV92ZW5kb3JfZmxhZ3MgbWNlX2ZsYWdzIF9fcmVhZF9tb3N0bHk7DQogDQogc3RydWN0 IG1jYV9jb25maWcgbWNhX2NmZyBfX3JlYWRfbW9zdGx5ID0gew0KQEAgLTY5NSw3ICs3MDAsNyBA QCBib29sIG1hY2hpbmVfY2hlY2tfcG9sbChlbnVtIG1jcF9mbGFncyBmbGFncywgbWNlX2Jhbmtz X3QgKmIpDQogCQltLnRzYyA9IHJkdHNjKCk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBtY2FfY2Zn LmJhbmtzOyBpKyspIHsNCi0JCWlmICghbWNlX2JhbmtzW2ldLmN0bCB8fCAhdGVzdF9iaXQoaSwg KmIpKQ0KKwkJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV0uY3RsIHx8ICF0ZXN0X2Jp dChpLCAqYikpDQogCQkJY29udGludWU7DQogDQogCQltLm1pc2MgPSAwOw0KQEAgLTExMzgsNyAr MTE0Myw3IEBAIHN0YXRpYyB2b2lkIF9fbWNfc2Nhbl9iYW5rcyhzdHJ1Y3QgbWNlICptLCBzdHJ1 Y3QgbWNlICpmaW5hbCwNCiAJCWlmICghdGVzdF9iaXQoaSwgdmFsaWRfYmFua3MpKQ0KIAkJCWNv bnRpbnVlOw0KIA0KLQkJaWYgKCFtY2VfYmFua3NbaV0uY3RsKQ0KKwkJaWYgKCF0aGlzX2NwdV9y ZWFkKG1jZV9iYW5rcylbaV0uY3RsKQ0KIAkJCWNvbnRpbnVlOw0KIA0KIAkJbS0+bWlzYyA9IDA7 DQpAQCAtMTQ3NSwxNiArMTQ4MCwxOSBAQCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9tY2VfYmFu a3NfaW5pdCh2b2lkKQ0KIHsNCiAJaW50IGk7DQogDQotCW1jZV9iYW5rcyA9IGtjYWxsb2MoTUFY X05SX0JBTktTLCBzaXplb2Yoc3RydWN0IG1jZV9iYW5rKSwgR0ZQX0tFUk5FTCk7DQotCWlmICgh bWNlX2JhbmtzKQ0KKwlwZXJfY3B1KG1jZV9iYW5rcywgc21wX3Byb2Nlc3Nvcl9pZCgpKSA9DQor CQlrY2FsbG9jKE1BWF9OUl9CQU5LUywgc2l6ZW9mKHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJO RUwpOw0KKw0KKwlpZiAoIXRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKSkNCiAJCXJldHVybiAtRU5P TUVNOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgTUFYX05SX0JBTktTOyBpKyspIHsNCi0JCXN0cnVj dCBtY2VfYmFuayAqYiA9ICZtY2VfYmFua3NbaV07DQorCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAm dGhpc19jcHVfcmVhZChtY2VfYmFua3MpW2ldOw0KIA0KIAkJYi0+Y3RsID0gLTFVTEw7DQogCQli LT5pbml0ID0gMTsNCiAJfQ0KKw0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtMTUwNCw3ICsxNTEy LDcgQEAgc3RhdGljIGludCBfX21jaGVja19jcHVfY2FwX2luaXQodm9pZCkNCiANCiAJbWNhX2Nm Zy5iYW5rcyA9IG1heChtY2FfY2ZnLmJhbmtzLCBiKTsNCiANCi0JaWYgKCFtY2VfYmFua3MpIHsN CisJaWYgKCF0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcykpIHsNCiAJCWludCBlcnIgPSBfX21jaGVj a19jcHVfbWNlX2JhbmtzX2luaXQoKTsNCiAJCWlmIChlcnIpDQogCQkJcmV0dXJuIGVycjsNCkBA IC0xNTQ3LDcgKzE1NTUsNyBAQCBzdGF0aWMgdm9pZCBfX21jaGVja19jcHVfaW5pdF9jbGVhcl9i YW5rcyh2b2lkKQ0KIAlpbnQgaTsNCiANCiAJZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFua3M7 IGkrKykgew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJCXN0cnVj dCBtY2VfYmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQogDQogCQlpZiAo IWItPmluaXQpDQogCQkJY29udGludWU7DQpAQCAtMTYwMiw3ICsxNjEwLDcgQEAgc3RhdGljIGlu dCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykNCiAJCQkg KiB0cmlwcyBvZmYgaW5jb3JyZWN0bHkgd2l0aCB0aGUgSU9NTVUgJiAzd2FyZQ0KIAkJCSAqICYg Q2VyYmVydXM6DQogCQkJICovDQotCQkJY2xlYXJfYml0KDEwLCAodW5zaWduZWQgbG9uZyAqKSZt Y2VfYmFua3NbNF0uY3RsKTsNCisJCQljbGVhcl9iaXQoMTAsICh1bnNpZ25lZCBsb25nICopJnRo aXNfY3B1X3JlYWQobWNlX2JhbmtzKVs0XS5jdGwpOw0KIAkJfQ0KIAkJaWYgKGMtPng4NiA8IDB4 MTEgJiYgY2ZnLT5ib290bG9nIDwgMCkgew0KIAkJCS8qDQpAQCAtMTYxNiw3ICsxNjI0LDcgQEAg c3RhdGljIGludCBfX21jaGVja19jcHVfYXBwbHlfcXVpcmtzKHN0cnVjdCBjcHVpbmZvX3g4NiAq YykNCiAJCSAqIGJ5IGRlZmF1bHQuDQogCQkgKi8NCiAJCWlmIChjLT54ODYgPT0gNiAmJiBjZmct PmJhbmtzID4gMCkNCi0JCQltY2VfYmFua3NbMF0uY3RsID0gMDsNCisJCQl0aGlzX2NwdV9yZWFk KG1jZV9iYW5rcylbMF0uY3RsID0gMDsNCiANCiAJCS8qDQogCQkgKiBvdmVyZmxvd19yZWNvdiBp cyBzdXBwb3J0ZWQgZm9yIEYxNWggTW9kZWxzIDAwaC0wZmgNCkBAIC0xNjM4LDcgKzE2NDYsNyBA QCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9hcHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2 ICpjKQ0KIAkJICovDQogDQogCQlpZiAoYy0+eDg2ID09IDYgJiYgYy0+eDg2X21vZGVsIDwgMHgx QSAmJiBjZmctPmJhbmtzID4gMCkNCi0JCQltY2VfYmFua3NbMF0uaW5pdCA9IDA7DQorCQkJdGhp c19jcHVfcmVhZChtY2VfYmFua3MpWzBdLmluaXQgPSAwOw0KIA0KIAkJLyoNCiAJCSAqIEFsbCBu ZXdlciBJbnRlbCBzeXN0ZW1zIHN1cHBvcnQgTUNFIGJyb2FkY2FzdGluZy4gRW5hYmxlDQpAQCAt MTk1Miw3ICsxOTYwLDcgQEAgc3RhdGljIHZvaWQgbWNlX2Rpc2FibGVfZXJyb3JfcmVwb3J0aW5n KHZvaWQpDQogCWludCBpOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsr KSB7DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KKwkJc3RydWN0IG1j ZV9iYW5rICpiID0gJnRoaXNfY3B1X3JlYWQobWNlX2JhbmtzKVtpXTsNCiANCiAJCWlmIChiLT5p bml0KQ0KIAkJCXdybXNybChtc3Jfb3BzLmN0bChpKSwgMCk7DQpAQCAtMjA1MSwyNiArMjA1OSw0 MSBAQCBzdGF0aWMgc3RydWN0IGJ1c190eXBlIG1jZV9zdWJzeXMgPSB7DQogDQogREVGSU5FX1BF Ul9DUFUoc3RydWN0IGRldmljZSAqLCBtY2VfZGV2aWNlKTsNCiANCi1zdGF0aWMgaW5saW5lIHN0 cnVjdCBtY2VfYmFuayAqYXR0cl90b19iYW5rKHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy KQ0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IG1jZV9iYW5rX2RldiAqYXR0cl90b19iYW5rKHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyKQ0KIHsNCi0JcmV0dXJuIGNvbnRhaW5lcl9vZihhdHRy LCBzdHJ1Y3QgbWNlX2JhbmssIGF0dHIpOw0KKwlyZXR1cm4gY29udGFpbmVyX29mKGF0dHIsIHN0 cnVjdCBtY2VfYmFua19kZXYsIGF0dHIpOw0KIH0NCiANCiBzdGF0aWMgc3NpemVfdCBzaG93X2Jh bmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCQkJ IGNoYXIgKmJ1ZikNCiB7DQotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsbHhcbiIsIGF0dHJfdG9f YmFuayhhdHRyKS0+Y3RsKTsNCisJc3RydWN0IG1jZV9iYW5rICpiOw0KKwl1OCBiYW5rID0gYXR0 cl90b19iYW5rKGF0dHIpLT5iYW5rOw0KKw0KKwlpZiAoYmFuayA+PSBtY2FfY2ZnLmJhbmtzKQ0K KwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWIgPSAmcGVyX2NwdShtY2VfYmFua3MsIHMtPmlkKVti YW5rXTsNCisNCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWxseFxuIiwgYi0+Y3RsKTsNCiB9DQog DQogc3RhdGljIHNzaXplX3Qgc2V0X2Jhbmsoc3RydWN0IGRldmljZSAqcywgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsDQogCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSkNCiB7 DQogCXU2NCBuZXc7DQorCXN0cnVjdCBtY2VfYmFuayAqYjsNCisJdTggYmFuayA9IGF0dHJfdG9f YmFuayhhdHRyKS0+YmFuazsNCiANCiAJaWYgKGtzdHJ0b3U2NChidWYsIDAsICZuZXcpIDwgMCkN CiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQlhdHRyX3RvX2JhbmsoYXR0ciktPmN0bCA9IG5ldzsN CisJaWYgKGJhbmsgPj0gbWNhX2NmZy5iYW5rcykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwli ID0gJnBlcl9jcHUobWNlX2JhbmtzLCBzLT5pZClbYmFua107DQorDQorCWItPmN0bCA9IG5ldzsN CiAJbWNlX3Jlc3RhcnQoKTsNCiANCiAJcmV0dXJuIHNpemU7DQpAQCAtMjE4NSw3ICsyMjA4LDcg QEAgc3RhdGljIHZvaWQgbWNlX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikNCiAJ a2ZyZWUoZGV2KTsNCiB9DQogDQotLyogUGVyIGNwdSBkZXZpY2UgaW5pdC4gQWxsIG9mIHRoZSBj cHVzIHN0aWxsIHNoYXJlIHRoZSBzYW1lIGN0cmwgYmFuazogKi8NCisvKiBQZXIgY3B1IGRldmlj ZSBpbml0LiBBbGwgb2YgdGhlIGNwdXMgc3RpbGwgc2hhcmUgdGhlIHNhbWUgYmFuayBkZXZpY2U6 ICovDQogc3RhdGljIGludCBtY2VfZGV2aWNlX2NyZWF0ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIHsN CiAJc3RydWN0IGRldmljZSAqZGV2Ow0KQEAgLTIyMTgsNyArMjI0MSw3IEBAIHN0YXRpYyBpbnQg bWNlX2RldmljZV9jcmVhdGUodW5zaWduZWQgaW50IGNwdSkNCiAJCQlnb3RvIGVycm9yOw0KIAl9 DQogCWZvciAoaiA9IDA7IGogPCBtY2FfY2ZnLmJhbmtzOyBqKyspIHsNCi0JCWVyciA9IGRldmlj ZV9jcmVhdGVfZmlsZShkZXYsICZtY2VfYmFua3Nbal0uYXR0cik7DQorCQllcnIgPSBkZXZpY2Vf Y3JlYXRlX2ZpbGUoZGV2LCAmbWNlX2JhbmtfZGV2c1tqXS5hdHRyKTsNCiAJCWlmIChlcnIpDQog CQkJZ290byBlcnJvcjI7DQogCX0NCkBAIC0yMjI4LDcgKzIyNTEsNyBAQCBzdGF0aWMgaW50IG1j ZV9kZXZpY2VfY3JlYXRlKHVuc2lnbmVkIGludCBjcHUpDQogCXJldHVybiAwOw0KIGVycm9yMjoN CiAJd2hpbGUgKC0taiA+PSAwKQ0KLQkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5r c1tqXS5hdHRyKTsNCisJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZtY2VfYmFua19kZXZzW2pd LmF0dHIpOw0KIGVycm9yOg0KIAl3aGlsZSAoLS1pID49IDApDQogCQlkZXZpY2VfcmVtb3ZlX2Zp bGUoZGV2LCBtY2VfZGV2aWNlX2F0dHJzW2ldKTsNCkBAIC0yMjUwLDcgKzIyNzMsNyBAQCBzdGF0 aWMgdm9pZCBtY2VfZGV2aWNlX3JlbW92ZSh1bnNpZ25lZCBpbnQgY3B1KQ0KIAkJZGV2aWNlX3Jl bW92ZV9maWxlKGRldiwgbWNlX2RldmljZV9hdHRyc1tpXSk7DQogDQogCWZvciAoaSA9IDA7IGkg PCBtY2FfY2ZnLmJhbmtzOyBpKyspDQotCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmbWNlX2Jh bmtzW2ldLmF0dHIpOw0KKwkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJm1jZV9iYW5rX2RldnNb aV0uYXR0cik7DQogDQogCWRldmljZV91bnJlZ2lzdGVyKGRldik7DQogCWNwdW1hc2tfY2xlYXJf Y3B1KGNwdSwgbWNlX2RldmljZV9pbml0aWFsaXplZCk7DQpAQCAtMjI3OSw3ICsyMzAyLDcgQEAg c3RhdGljIHZvaWQgbWNlX3JlZW5hYmxlX2NwdSh2b2lkKQ0KIAlpZiAoIWNwdWhwX3Rhc2tzX2Zy b3plbikNCiAJCWNtY2lfcmVlbmFibGUoKTsNCiAJZm9yIChpID0gMDsgaSA8IG1jYV9jZmcuYmFu a3M7IGkrKykgew0KLQkJc3RydWN0IG1jZV9iYW5rICpiID0gJm1jZV9iYW5rc1tpXTsNCisJCXN0 cnVjdCBtY2VfYmFuayAqYiA9ICZ0aGlzX2NwdV9yZWFkKG1jZV9iYW5rcylbaV07DQogDQogCQlp ZiAoYi0+aW5pdCkNCiAJCQl3cm1zcmwobXNyX29wcy5jdGwoaSksIGItPmN0bCk7DQpAQCAtMjMy OCwxMCArMjM1MSwxMiBAQCBzdGF0aWMgX19pbml0IHZvaWQgbWNlX2luaXRfYmFua3Modm9pZCkN CiB7DQogCWludCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWNhX2NmZy5iYW5rczsgaSsrKSB7 DQotCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAmbWNlX2JhbmtzW2ldOw0KKwlmb3IgKGkgPSAwOyBp IDwgTUFYX05SX0JBTktTOyBpKyspIHsNCisJCXN0cnVjdCBtY2VfYmFua19kZXYgKmIgPSAmbWNl X2JhbmtfZGV2c1tpXTsNCiAJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphID0gJmItPmF0dHI7 DQogDQorCQliLT5iYW5rID0gaTsNCisNCiAJCXN5c2ZzX2F0dHJfaW5pdCgmYS0+YXR0cik7DQog CQlhLT5hdHRyLm5hbWUJPSBiLT5hdHRybmFtZTsNCiAJCXNucHJpbnRmKGItPmF0dHJuYW1lLCBB VFRSX0xFTiwgImJhbmslZCIsIGkpOw0KLS0gDQoyLjE3LjENCg0K