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: [2/5] EDAC/amd64: Support more than two UMCs From: Yazen Ghannam Message-Id: <20190219202536.15462-2-Yazen.Ghannam@amd.com> Date: Tue, 19 Feb 2019 20:25:53 +0000 To: "linux-edac@vger.kernel.org" Cc: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@alien8.de" List-ID: RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgoKVGhlIGZpcnN0IGZl dyBtb2RlbHMgb2YgRmFtaWx5IDE3aCBhbGwgaGFkIDIgVU1DcyBwZXIgRGllLCBzbyB3ZSB0cmVh dGVkCnRoaXMgYXMgYSBmaXhlZCB2YWx1ZS4gSG93ZXZlciwgZnV0dXJlIHN5c3RlbXMgbWF5IGhh dmUgbW9yZSBVTUNzIHBlcgpEaWUuCgpSZWxhdGVkIHRvIHRoaXMsIHdlIHdlcmUgZmluZGluZyB0 aGUgY2hhbm5lbCBudW1iZXIgYW5kIGJhc2UgYWRkcmVzcyBvZgphIFVNQyBieSBtYXRjaGluZyBv biBmaXhlZCwga25vd24gdmFsdWVzLiBIb3dldmVyLCBhIHBhdHRlcm4gaGFzIGVtZXJnZWQKc28g d2Ugbm8gbG9uZ2VyIG5lZWQgdG8gbWF0Y2ggb24gaGFyZGNvZGVkIHZhbHVlcy4KClNldCB0aGUg bnVtYmVyIG9mIFVNQ3MgYXQgaW5pdCB0aW1lIGJhc2VkIG9uIHRoZSBGYW1pbHkvTW9kZWwuIEFs c28sCnVwZGF0ZSB0aGUgZnVuY3Rpb25zIHRoYXQgZmluZCB0aGUgY2hhbm5lbCBudW1iZXIgYW5k IGJhc2UgYWRkcmVzcyBvZiBhClVNQyBpbiBvcmRlciB0byBzdXBwb3J0IG1vcmUgdGhhbiB0d28g VU1Dcy4KClNpZ25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVuLmdoYW5uYW1AYW1kLmNv bT4KLS0tCiBkcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jIHwgNDIgKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5oIHwgMjAgKysr KysrKysrKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAyNyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jIGIvZHJp dmVycy9lZGFjL2FtZDY0X2VkYWMuYwppbmRleCA5OTQ3NDM3ZDk1NzQuLjUwN2Q4MjRmZTQ1YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuYworKysgYi9kcml2ZXJzL2VkYWMv YW1kNjRfZWRhYy5jCkBAIC00NDksNiArNDQ5LDkgQEAgc3RhdGljIHZvaWQgZ2V0X2NzX2Jhc2Vf YW5kX21hc2soc3RydWN0IGFtZDY0X3B2dCAqcHZ0LCBpbnQgY3Nyb3csIHU4IGRjdCwKICNkZWZp bmUgZm9yX2VhY2hfY2hpcF9zZWxlY3RfbWFzayhpLCBkY3QsIHB2dCkgXAogCWZvciAoaSA9IDA7 IGkgPCBwdnQtPmNzZWxzW2RjdF0ubV9jbnQ7IGkrKykKIAorI2RlZmluZSBmb3JfZWFjaF91bWMo aSkgXAorCWZvciAoaSA9IDA7IGkgPCBudW1fdW1jczsgaSsrKQorCiAvKgogICogQGlucHV0X2Fk ZHIgaXMgYW4gSW5wdXRBZGRyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZSBnaXZlbiBieSBtY2ku IFJldHVybiB0aGUKICAqIGNzcm93IHRoYXQgaW5wdXRfYWRkciBtYXBzIHRvLCBvciAtMSBvbiBm YWlsdXJlIChubyBjc3JvdyBjbGFpbXMgaW5wdXRfYWRkcikuCkBAIC03MjIsNyArNzI1LDcgQEAg c3RhdGljIHVuc2lnbmVkIGxvbmcgZGV0ZXJtaW5lX2VkYWNfY2FwKHN0cnVjdCBhbWQ2NF9wdnQg KnB2dCkKIAlpZiAocHZ0LT51bWMpIHsKIAkJdTggaSwgdW1jX2VuX21hc2sgPSAwLCBkaW1tX2Vj Y19lbl9tYXNrID0gMDsKIAotCQlmb3IgKGkgPSAwOyBpIDwgTlVNX1VNQ1M7IGkrKykgeworCQlm b3JfZWFjaF91bWMoaSkgewogCQkJaWYgKCEocHZ0LT51bWNbaV0uc2RwX2N0cmwgJiBVTUNfU0RQ X0lOSVQpKQogCQkJCWNvbnRpbnVlOwogCkBAIC04MTEsNyArODE0LDcgQEAgc3RhdGljIHZvaWQg X19kdW1wX21pc2NfcmVnc19kZihzdHJ1Y3QgYW1kNjRfcHZ0ICpwdnQpCiAJc3RydWN0IGFtZDY0 X3VtYyAqdW1jOwogCXUzMiBpLCB0bXAsIHVtY19iYXNlOwogCi0JZm9yIChpID0gMDsgaSA8IE5V TV9VTUNTOyBpKyspIHsKKwlmb3JfZWFjaF91bWMoaSkgewogCQl1bWNfYmFzZSA9IGdldF91bWNf YmFzZShpKTsKIAkJdW1jID0gJnB2dC0+dW1jW2ldOwogCkBAIC0xMzg4LDcgKzEzOTEsNyBAQCBz dGF0aWMgaW50IGYxN19lYXJseV9jaGFubmVsX2NvdW50KHN0cnVjdCBhbWQ2NF9wdnQgKnB2dCkK IAlpbnQgaSwgY2hhbm5lbHMgPSAwOwogCiAJLyogU0RQIENvbnRyb2wgYml0IDMxIChTZHBJbml0 KSBpcyBjbGVhciBmb3IgdW51c2VkIFVNQyBjaGFubmVscyAqLwotCWZvciAoaSA9IDA7IGkgPCBO VU1fVU1DUzsgaSsrKQorCWZvcl9lYWNoX3VtYyhpKQogCQljaGFubmVscyArPSAhIShwdnQtPnVt Y1tpXS5zZHBfY3RybCAmIFVNQ19TRFBfSU5JVCk7CiAKIAlhbWQ2NF9pbmZvKCJNQ1QgY2hhbm5l bCBjb3VudDogJWRcbiIsIGNoYW5uZWxzKTsKQEAgLTI0NzMsMTggKzI0NzYsMTQgQEAgc3RhdGlj IGlubGluZSB2b2lkIGRlY29kZV9idXNfZXJyb3IoaW50IG5vZGVfaWQsIHN0cnVjdCBtY2UgKm0p CiAgKiBUbyBmaW5kIHRoZSBVTUMgY2hhbm5lbCByZXByZXNlbnRlZCBieSB0aGlzIGJhbmsgd2Ug bmVlZCB0byBtYXRjaCBvbiBpdHMKICAqIGluc3RhbmNlX2lkLiBUaGUgaW5zdGFuY2VfaWQgb2Yg YSBiYW5rIGlzIGhlbGQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgaXRzCiAgKiBJUElELgorICoK KyAqIEN1cnJlbnRseSwgd2UgY2FuIGRlcml2ZSB0aGUgY2hhbm5lbCBudW1iZXIgYnkgbG9va2lu ZyBhdCB0aGUgNnRoIGJ5dGUgaW4KKyAqIHRoZSBpbnN0YW5jZV9pZC4gRm9yIGV4YW1wbGUsIGlu c3RhbmNlX2lkPTB4WVhYWFhYIHdoZXJlIFkgaXMgdGhlIGNoYW5uZWwKKyAqIG51bWJlci4KICAq Lwotc3RhdGljIGludCBmaW5kX3VtY19jaGFubmVsKHN0cnVjdCBhbWQ2NF9wdnQgKnB2dCwgc3Ry dWN0IG1jZSAqbSkKK3N0YXRpYyBpbnQgZmluZF91bWNfY2hhbm5lbChzdHJ1Y3QgbWNlICptKQog ewotCXUzMiB1bWNfaW5zdGFuY2VfaWRbXSA9IHsweDUwZjAwLCAweDE1MGYwMH07Ci0JdTMyIGlu c3RhbmNlX2lkID0gbS0+aXBpZCAmIEdFTk1BU0soMzEsIDApOwotCWludCBpLCBjaGFubmVsID0g LTE7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh1bWNfaW5zdGFuY2VfaWQpOyBpKysp Ci0JCWlmICh1bWNfaW5zdGFuY2VfaWRbaV0gPT0gaW5zdGFuY2VfaWQpCi0JCQljaGFubmVsID0g aTsKLQotCXJldHVybiBjaGFubmVsOworCXJldHVybiAobS0+aXBpZCAmIEdFTk1BU0soMzEsIDAp KSA+PiAyMDsKIH0KIAogc3RhdGljIHZvaWQgZGVjb2RlX3VtY19lcnJvcihpbnQgbm9kZV9pZCwg c3RydWN0IG1jZSAqbSkKQEAgLTI1MDYsMTEgKzI1MDUsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVf dW1jX2Vycm9yKGludCBub2RlX2lkLCBzdHJ1Y3QgbWNlICptKQogCWlmIChtLT5zdGF0dXMgJiBN Q0lfU1RBVFVTX0RFRkVSUkVEKQogCQllY2NfdHlwZSA9IDM7CiAKLQllcnIuY2hhbm5lbCA9IGZp bmRfdW1jX2NoYW5uZWwocHZ0LCBtKTsKLQlpZiAoZXJyLmNoYW5uZWwgPCAwKSB7Ci0JCWVyci5l cnJfY29kZSA9IEVSUl9DSEFOTkVMOwotCQlnb3RvIGxvZ19lcnJvcjsKLQl9CisJZXJyLmNoYW5u ZWwgPSBmaW5kX3VtY19jaGFubmVsKG0pOwogCiAJaWYgKHVtY19ub3JtYWRkcl90b19zeXNhZGRy KG0tPmFkZHIsIHB2dC0+bWNfbm9kZV9pZCwgZXJyLmNoYW5uZWwsICZzeXNfYWRkcikpIHsKIAkJ ZXJyLmVycl9jb2RlID0gRVJSX05PUk1fQUREUjsKQEAgLTI2MTIsNyArMjYwNyw3IEBAIHN0YXRp YyB2b2lkIGRldGVybWluZV9lY2Nfc3ltX3N6KHN0cnVjdCBhbWQ2NF9wdnQgKnB2dCkKIAlpZiAo cHZ0LT51bWMpIHsKIAkJdTggaTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgTlVNX1VNQ1M7IGkrKykg eworCQlmb3JfZWFjaF91bWMoaSkgewogCQkJLyogQ2hlY2sgZW5hYmxlZCBjaGFubmVscyBvbmx5 OiAqLwogCQkJaWYgKChwdnQtPnVtY1tpXS5zZHBfY3RybCAmIFVNQ19TRFBfSU5JVCkgJiYKIAkJ CSAgICAocHZ0LT51bWNbaV0uZWNjX2N0cmwgJiBCSVQoNykpKSB7CkBAIC0yNjQ4LDcgKzI2NDMs NyBAQCBzdGF0aWMgdm9pZCBfX3JlYWRfbWNfcmVnc19kZihzdHJ1Y3QgYW1kNjRfcHZ0ICpwdnQp CiAJdTMyIGksIHVtY19iYXNlOwogCiAJLyogUmVhZCByZWdpc3RlcnMgZnJvbSBlYWNoIFVNQyAq LwotCWZvciAoaSA9IDA7IGkgPCBOVU1fVU1DUzsgaSsrKSB7CisJZm9yX2VhY2hfdW1jKGkpIHsK IAogCQl1bWNfYmFzZSA9IGdldF91bWNfYmFzZShpKTsKIAkJdW1jID0gJnB2dC0+dW1jW2ldOwpA QCAtMzA2MSw3ICszMDU2LDggQEAgc3RhdGljIGJvb2wgZWNjX2VuYWJsZWQoc3RydWN0IHBjaV9k ZXYgKkYzLCB1MTYgbmlkKQogCWlmIChib290X2NwdV9kYXRhLng4NiA+PSAweDE3KSB7CiAJCXU4 IHVtY19lbl9tYXNrID0gMCwgZWNjX2VuX21hc2sgPSAwOwogCi0JCWZvciAoaSA9IDA7IGkgPCBO VU1fVU1DUzsgaSsrKSB7CisJCXNldF9udW1fdW1jcygpOworCQlmb3JfZWFjaF91bWMoaSkgewog CQkJdTMyIGJhc2UgPSBnZXRfdW1jX2Jhc2UoaSk7CiAKIAkJCS8qIE9ubHkgY2hlY2sgZW5hYmxl ZCBVTUNzLiAqLwpAQCAtMzExNCw3ICszMTEwLDcgQEAgZjE3aF9kZXRlcm1pbmVfZWRhY19jdGxf Y2FwKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwgc3RydWN0IGFtZDY0X3B2dCAqcHZ0KQogewog CXU4IGksIGVjY19lbiA9IDEsIGNwa19lbiA9IDE7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTlVNX1VN Q1M7IGkrKykgeworCWZvcl9lYWNoX3VtYyhpKSB7CiAJCWlmIChwdnQtPnVtY1tpXS5zZHBfY3Ry bCAmIFVNQ19TRFBfSU5JVCkgewogCQkJZWNjX2VuICY9ICEhKHB2dC0+dW1jW2ldLnVtY19jYXBf aGkgJiBVTUNfRUNDX0VOQUJMRUQpOwogCQkJY3BrX2VuICY9ICEhKHB2dC0+dW1jW2ldLnVtY19j YXBfaGkgJiBVTUNfRUNDX0NISVBLSUxMX0NBUCk7CkBAIC0zMjczLDcgKzMyNjksNyBAQCBzdGF0 aWMgaW50IGluaXRfb25lX2luc3RhbmNlKHVuc2lnbmVkIGludCBuaWQpCiAJCWdvdG8gZXJyX2Zy ZWU7CiAKIAlpZiAocHZ0LT5mYW0gPj0gMHgxNykgewotCQlwdnQtPnVtYyA9IGtjYWxsb2MoTlVN X1VNQ1MsIHNpemVvZihzdHJ1Y3QgYW1kNjRfdW1jKSwgR0ZQX0tFUk5FTCk7CisJCXB2dC0+dW1j ID0ga2NhbGxvYyhudW1fdW1jcywgc2l6ZW9mKHN0cnVjdCBhbWQ2NF91bWMpLCBHRlBfS0VSTkVM KTsKIAkJaWYgKCFwdnQtPnVtYykgewogCQkJcmV0ID0gLUVOT01FTTsKIAkJCWdvdG8gZXJyX2Zy ZWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5oIGIvZHJpdmVycy9lZGFj L2FtZDY0X2VkYWMuaAppbmRleCBkZThkYmIwYjQyYjUuLjQzNTQ1MGJmODY4NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuaAorKysgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRh Yy5oCkBAIC0yNzQsOCArMjc0LDYgQEAKIAogI2RlZmluZSBVTUNfU0RQX0lOSVQJCQlCSVQoMzEp CiAKLSNkZWZpbmUgTlVNX1VNQ1MJCQkyCi0KIGVudW0gYW1kX2ZhbWlsaWVzIHsKIAlLOF9DUFVT ID0gMCwKIAlGMTBfQ1BVUywKQEAgLTM5OSw4ICszOTcsMjIgQEAgc3RydWN0IGVycl9pbmZvIHsK IAogc3RhdGljIGlubGluZSB1MzIgZ2V0X3VtY19iYXNlKHU4IGNoYW5uZWwpCiB7Ci0JLyogY2gw OiAweDUwMDAwLCBjaDE6IDB4MTUwMDAwICovCi0JcmV0dXJuIDB4NTAwMDAgKyAoISFjaGFubmVs IDw8IDIwKTsKKwkvKiBjaFk6IDB4WTUwMDAwICovCisJcmV0dXJuIDB4NTAwMDAgKyAoY2hhbm5l bCA8PCAyMCk7Cit9CisKK3N0YXRpYyB1OCBudW1fdW1jczsKKworc3RhdGljIGlubGluZSB2b2lk IHNldF9udW1fdW1jcyh2b2lkKQoreworCXU4IG1vZGVsID0gYm9vdF9jcHVfZGF0YS54ODZfbW9k ZWw7CisKKwlpZiAobW9kZWwgPj0gMHgzMCAmJiBtb2RlbCA8PSAweDNmKQorCQludW1fdW1jcyA9 IDg7CisJZWxzZQorCQludW1fdW1jcyA9IDI7CisKKwllZGFjX2RiZygxLCAiTnVtYmVyIG9mIFVN Q3M6ICV4IiwgbnVtX3VtY3MpOwogfQogCiBzdGF0aWMgaW5saW5lIHU2NCBnZXRfZHJhbV9iYXNl KHN0cnVjdCBhbWQ2NF9wdnQgKnB2dCwgdTggaSkK