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: x86/mce: Handle varying MCA bank counts From: Yazen Ghannam Message-Id: <20180727214009.78289-1-Yazen.Ghannam@amd.com> Date: Fri, 27 Jul 2018 16:40:09 -0500 To: linux-edac@vger.kernel.org Cc: Yazen Ghannam , linux-kernel@vger.kernel.org, bp@suse.de, tony.luck@intel.com, x86@kernel.org List-ID: RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgoKTGludXggcmVhZHMg TUNHX0NBUFtDb3VudF0gdG8gZmluZCB0aGUgbnVtYmVyIG9mIE1DQSBiYW5rcyB2aXNpYmxlIHRv IGEKQ1BVLiBDdXJyZW50bHksIHRoaXMgaXMgYXNzdW1lZCB0byBiZSB0aGUgc2FtZSBmb3IgYWxs IENQVXMgYW5kIGEKd2FybmluZyBpcyBzaG93biBpZiB0aGVyZSBpcyBhIGRpZmZlcmVuY2UuIFRo ZSBudW1iZXIgb2YgYmFua3MgaXMKb3ZlcndyaXR0ZW4gd2l0aCB0aGUgTUNHX0NBUFtDb3VudF0g dmFsdWUgb2YgZWFjaCBmb2xsb3dpbmcgQ1BVIHRoYXQKYm9vdHMuCgpBY2NvcmRpbmcgdG8gdGhl IEludGVsIFNETSBhbmQgQU1EIEFQTSwgdGhlIE1DR19DQVBbQ291bnRdIHZhbHVlIGdpdmVzCnRo ZSBudW1iZXIgb2YgYmFua3MgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIGEgInByb2Nlc3NvciBpbXBs ZW1lbnRhdGlvbiIuClRoZSBBTUQgQktER3MvUFBScyBmdXJ0aGVyIGNsYXJpZnkgdGhhdCB0aGlz IHZhbHVlIGlzIHBlciBjb3JlLiBUaGlzCnZhbHVlIGhhcyBoaXN0b3JpY2FsbHkgYmVlbiB0aGUg c2FtZSBmb3IgZXZlcnkgY29yZSBpbiB0aGUgc3lzdGVtLCBidXQKdGhhdCBpcyBub3QgYW4gYXJj aGl0ZWN0dXJhbCByZXF1aXJlbWVudC4KCkZ1dHVyZSBBTUQgc3lzdGVtcyBtYXkgaGF2ZSBkaWZm ZXJlbnQgTUNHX0NBUFtDb3VudF0gdmFsdWVzIHBlciBjb3JlLApzbyB0aGUgYXNzdW1wdGlvbiB0 aGF0IGFsbCBDUFVzIHdpbGwgaGF2ZSB0aGUgc2FtZSBNQ0dfQ0FQW0NvdW50XSB2YWx1ZQp3aWxs IG5vIGxvbmdlciBiZSB2YWxpZC4KCkFsc28sIHRoZSBmaXJzdCBDUFUgdG8gYm9vdCB3aWxsIGFs bG9jYXRlIHRoZSBzdHJ1Y3QgbWNlX2JhbmtzW10gYXJyYXkKdXNpbmcgdGhlIG51bWJlciBvZiBi YW5rcyBiYXNlZCBvbiBpdHMgTUNHX0NBUFtDb3VudF0gdmFsdWUuIFRoZSBtYWNoaW5lCmNoZWNr IGhhbmRsZXIgYW5kIG90aGVyIGZ1bmN0aW9ucyB1c2UgdGhlIGdsb2JhbCBudW1iZXIgb2YgYmFu a3MgdG8KaXRlcmF0ZSBhbmQgaW5kZXggaW50byB0aGUgbWNlX2JhbmtzW10gYXJyYXkuIFNvIGl0 J3MgcG9zc2libGUgdG8gdXNlIGFuCm91dC1vZi1ib3VuZHMgaW5kZXggb24gYW4gYXN5bW1ldHJp YyBzeXN0ZW0gd2hlcmUgYSBmb2xsb3dpbmcgQ1BVIHNlZXMgYQpNQ0dfQ0FQW0NvdW50XSB2YWx1 ZSBncmVhdGVyIHRoYW4gaXRzIHByZWRlY2Vzc29ycy4KCkZvciBleGFtcGxlLCBDUFUwIHNlZXMg TUNHX0NBUFtDb3VudF09Mi4gSXQgc2V0cyBtY2FfY2ZnLmJhbmtzPTIgYW5kCmFsbG9jYXRlcyBt Y2VfYmFua3NbXSB3aXRoIDIgZWxlbWVudHMuIENQVTEgc2VlcyBNQ0dfQ0FQW0NvdW50XT0zIGFu ZApzZXRzIG1jYV9jZmcuYmFua3M9MywgYnV0IG1jZV9iYW5rc1tdIGlzIGFscmVhZHkgYWxsb2Nh dGVkIGFuZCByZW1haW5zCmhhdmluZyAyIGVsZW1lbnRzLgoKQWxsb2NhdGUgdGhlIG1jZV9iYW5r c1tdIGFycmF5IHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBiYW5rcy4gVGhpcyB3aWxsCmF2b2lk IHRoZSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBpbmRleCBzaW5jZSB3ZSBjYXAgdGhlIHZhbHVl IG9mCm1jYV9jZmcuYmFua3MgdG8gTUFYX05SX0JBTktTLgoKU2V0IHRoZSB2YWx1ZSBvZiBtY2Ff Y2ZnLmJhbmtzIGVxdWFsIHRvIHRoZSBtYXggb2YgdGhlIHByZXZpb3VzIHZhbHVlCmFuZCB0aGUg dmFsdWUgZm9yIHRoZSBjdXJyZW50IENQVS4gVGhpcyB3YXkgbWNhX2NmZy5iYW5rcyB3aWxsIGFs d2F5cwpyZXByZXNlbnQgdGhlIG1heCBudW1iZXIgb2YgYmFua3MgZGV0ZWN0ZWQgb24gYW55IENQ VSBpbiB0aGUgc3lzdGVtLgpUaGlzIHdpbGwgZW5zdXJlIHRoYXQgYWxsIENQVXMgd2lsbCBhY2Nl c3MgYWxsIHRoZSBiYW5rcyB0aGF0IGFyZQp2aXNpYmxlIHRvIHRoZW0uIEEgQ1BVIHRoYXQgY2Fu IGFjY2VzcyBmZXdlciB0aGFuIHRoZSBtYXggbnVtYmVyIG9mCmJhbmtzIHdpbGwgZmluZCB0aGUg cmVnaXN0ZXJzIG9mIHRoZSBleHRyYSBiYW5rcyB0byBiZSByZWFkLWFzLXplcm8uCgpQcmludCB0 aGUgbnVtYmVyIG9mIE1DQSBiYW5rcyB0aGF0IHdlJ3JlIHVzaW5nLiBEbyB0aGlzIGluCm1jaGVj a19sYXRlX2luaXQoKSBzbyB0aGF0IHdlIHByaW50IHRoZSBmaW5hbCB2YWx1ZSBhZnRlciBhbGwg Q1BVcyBoYXZlCmJlZW4gaW5pdGlhbGl6ZWQuCgpHZXQgYmFuayBjb3VudCBmcm9tIHRhcmdldCBD UFUgd2hlbiBkb2luZyBpbmplY3Rpb24gd2l0aCBtY2UtaW5qZWN0Cm1vZHVsZS4KClNpZ25lZC1v ZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVuLmdoYW5uYW1AYW1kLmNvbT4KLS0tCiBhcmNoL3g4 Ni9rZXJuZWwvY3B1L21jaGVjay9tY2UtaW5qZWN0LmMgfCAxNCArKysrKysrLS0tLS0tLQogYXJj aC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLmMgICAgICAgIHwgMjEgKysrKysrKy0tLS0tLS0t LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS1pbmplY3QuYyBi L2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS1pbmplY3QuYwppbmRleCBjODA1YTA2ZTE0 YzMuLjVkZGE1NmQ1NmRkMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2sv bWNlLWluamVjdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS1pbmplY3Qu YwpAQCAtNDYsOCArNDYsNiBAQAogc3RhdGljIHN0cnVjdCBtY2UgaV9tY2U7CiBzdGF0aWMgc3Ry dWN0IGRlbnRyeSAqZGZzX2luajsKIAotc3RhdGljIHU4IG5fYmFua3M7Ci0KICNkZWZpbmUgTUFY X0ZMQUdfT1BUX1NJWkUJNAogI2RlZmluZSBOQkNGRwkJCTB4NDQKIApAQCAtNTY3LDkgKzU2NSwx NSBAQCBzdGF0aWMgdm9pZCBkb19pbmplY3Qodm9pZCkKIHN0YXRpYyBpbnQgaW5qX2Jhbmtfc2V0 KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiB7CiAJc3RydWN0IG1jZSAqbSA9IChzdHJ1Y3QgbWNlICop ZGF0YTsKKwl1NjQgY2FwOworCXU4IG5fYmFua3M7CisKKwkvKiBHZXQgYmFuayBjb3VudCBvbiB0 YXJnZXQgQ1BVIHNvIHdlIGNhbiBoYW5kbGUgbm9uLXVuaWZvcm0gdmFsdWVzLiAqLworCXJkbXNy bF9vbl9jcHUobS0+ZXh0Y3B1LCBNU1JfSUEzMl9NQ0dfQ0FQLCAmY2FwKTsKKwluX2JhbmtzID0g Y2FwICYgTUNHX0JBTktDTlRfTUFTSzsKIAogCWlmICh2YWwgPj0gbl9iYW5rcykgewotCQlwcl9l cnIoIk5vbi1leGlzdGVudCBNQ0UgYmFuazogJWxsdVxuIiwgdmFsKTsKKwkJcHJfZXJyKCJNQ0Eg YmFuayAlbGx1IG5vbi1leGlzdGVudCBvbiBDUFUlZFxuIiwgdmFsLCBtLT5leHRjcHUpOwogCQly ZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTY1OSwxMCArNjYzLDYgQEAgc3RhdGljIHN0cnVjdCBk ZnNfbm9kZSB7CiBzdGF0aWMgaW50IF9faW5pdCBkZWJ1Z2ZzX2luaXQodm9pZCkKIHsKIAl1bnNp Z25lZCBpbnQgaTsKLQl1NjQgY2FwOwotCi0JcmRtc3JsKE1TUl9JQTMyX01DR19DQVAsIGNhcCk7 Ci0Jbl9iYW5rcyA9IGNhcCAmIE1DR19CQU5LQ05UX01BU0s7CiAKIAlkZnNfaW5qID0gZGVidWdm c19jcmVhdGVfZGlyKCJtY2UtaW5qZWN0IiwgTlVMTCk7CiAJaWYgKCFkZnNfaW5qKQpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLmMgYi9hcmNoL3g4Ni9rZXJuZWwv Y3B1L21jaGVjay9tY2UuYwppbmRleCA0Yjc2NzI4NGI3ZjUuLjQyMzhjNjVhMGNjZSAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLmMKKysrIGIvYXJjaC94ODYva2Vy bmVsL2NwdS9tY2hlY2svbWNlLmMKQEAgLTE0NzksMTMgKzE0NzksMTIgQEAgRVhQT1JUX1NZTUJP TF9HUEwobWNlX25vdGlmeV9pcnEpOwogc3RhdGljIGludCBfX21jaGVja19jcHVfbWNlX2Jhbmtz X2luaXQodm9pZCkKIHsKIAlpbnQgaTsKLQl1OCBudW1fYmFua3MgPSBtY2FfY2ZnLmJhbmtzOwog Ci0JbWNlX2JhbmtzID0ga2NhbGxvYyhudW1fYmFua3MsIHNpemVvZihzdHJ1Y3QgbWNlX2Jhbmsp LCBHRlBfS0VSTkVMKTsKKwltY2VfYmFua3MgPSBrY2FsbG9jKE1BWF9OUl9CQU5LUywgc2l6ZW9m KHN0cnVjdCBtY2VfYmFuayksIEdGUF9LRVJORUwpOwogCWlmICghbWNlX2JhbmtzKQogCQlyZXR1 cm4gLUVOT01FTTsKIAotCWZvciAoaSA9IDA7IGkgPCBudW1fYmFua3M7IGkrKykgeworCWZvciAo aSA9IDA7IGkgPCBNQVhfTlJfQkFOS1M7IGkrKykgewogCQlzdHJ1Y3QgbWNlX2JhbmsgKmIgPSAm bWNlX2JhbmtzW2ldOwogCiAJCWItPmN0bCA9IC0xVUxMOwpAQCAtMTQ5OSwyNCArMTQ5OCwxNiBA QCBzdGF0aWMgaW50IF9fbWNoZWNrX2NwdV9tY2VfYmFua3NfaW5pdCh2b2lkKQogICovCiBzdGF0 aWMgaW50IF9fbWNoZWNrX2NwdV9jYXBfaW5pdCh2b2lkKQogewotCXVuc2lnbmVkIGI7CisJdTgg YjsKIAl1NjQgY2FwOwogCiAJcmRtc3JsKE1TUl9JQTMyX01DR19DQVAsIGNhcCk7CiAKIAliID0g Y2FwICYgTUNHX0JBTktDTlRfTUFTSzsKLQlpZiAoIW1jYV9jZmcuYmFua3MpCi0JCXByX2luZm8o IkNQVSBzdXBwb3J0cyAlZCBNQ0UgYmFua3NcbiIsIGIpOwotCi0JaWYgKGIgPiBNQVhfTlJfQkFO S1MpIHsKLQkJcHJfd2FybigiVXNpbmcgb25seSAldSBtYWNoaW5lIGNoZWNrIGJhbmtzIG91dCBv ZiAldVxuIiwKLQkJCU1BWF9OUl9CQU5LUywgYik7CisJaWYgKFdBUk5fT05fT05DRShiID4gTUFY X05SX0JBTktTKSkKIAkJYiA9IE1BWF9OUl9CQU5LUzsKLQl9CiAKLQkvKiBEb24ndCBzdXBwb3J0 IGFzeW1tZXRyaWMgY29uZmlndXJhdGlvbnMgdG9kYXkgKi8KLQlXQVJOX09OKG1jYV9jZmcuYmFu a3MgIT0gMCAmJiBiICE9IG1jYV9jZmcuYmFua3MpOwotCW1jYV9jZmcuYmFua3MgPSBiOworCW1j YV9jZmcuYmFua3MgPSBtYXgobWNhX2NmZy5iYW5rcywgYik7CiAKIAlpZiAoIW1jZV9iYW5rcykg ewogCQlpbnQgZXJyID0gX19tY2hlY2tfY3B1X21jZV9iYW5rc19pbml0KCk7CkBAIC0yNTAyLDYg KzI0OTMsOCBAQCBFWFBPUlRfU1lNQk9MX0dQTChtY3NhZmVfa2V5KTsKIAogc3RhdGljIGludCBf X2luaXQgbWNoZWNrX2xhdGVfaW5pdCh2b2lkKQogeworCXByX2luZm8oIlVzaW5nICVkIE1DRSBi YW5rc1xuIiwgbWNhX2NmZy5iYW5rcyk7CisKIAlpZiAobWNhX2NmZy5yZWNvdmVyeSkKIAkJc3Rh dGljX2JyYW5jaF9pbmMoJm1jc2FmZV9rZXkpOwogCg==