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: Borislav Petkov Message-Id: <20190226110716.GC14836@zn.tnic> Date: Tue, 26 Feb 2019 12:07:16 +0100 To: "Ghannam, Yazen" Cc: "linux-edac@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-ID: T24gVHVlLCBGZWIgMTksIDIwMTkgYXQgMDg6MjU6NTNQTSArMDAwMCwgR2hhbm5hbSwgWWF6ZW4g d3JvdGU6Cj4gRnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgo+IAo+ IFRoZSBmaXJzdCBmZXcgbW9kZWxzIG9mIEZhbWlseSAxN2ggYWxsIGhhZCAyIFVNQ3MgcGVyIERp ZSwgc28gd2UgdHJlYXRlZAoKV3JpdGUgb3V0IHdoYXQgdGhhdCBhYmJyZXZpYXRpb24gVU1DIGlz LgoKPiB0aGlzIGFzIGEgZml4ZWQgdmFsdWUuIEhvd2V2ZXIsIGZ1dHVyZSBzeXN0ZW1zIG1heSBo YXZlIG1vcmUgVU1DcyBwZXIKPiBEaWUuCj4gCj4gUmVsYXRlZCB0byB0aGlzLCB3ZSB3ZXJlIGZp bmRpbmcgdGhlIGNoYW5uZWwgbnVtYmVyIGFuZCBiYXNlIGFkZHJlc3Mgb2YKClBhc3NpdmUgdG9u ZSBwbHMsIG5vICJ3ZSIuIEZyb20gRG9jdW1lbnRhdGlvbi9wcm9jZXNzL3N1Ym1pdHRpbmctcGF0 Y2hlcy5yc3Q6CgogIkRlc2NyaWJlIHlvdXIgY2hhbmdlcyBpbiBpbXBlcmF0aXZlIG1vb2QsIGUu Zy4gIm1ha2UgeHl6enkgZG8gZnJvdHoiCiAgaW5zdGVhZCBvZiAiW1RoaXMgcGF0Y2hdIG1ha2Vz IHh5enp5IGRvIGZyb3R6IiBvciAiW0ldIGNoYW5nZWQgeHl6enkKICB0byBkbyBmcm90eiIsIGFz IGlmIHlvdSBhcmUgZ2l2aW5nIG9yZGVycyB0byB0aGUgY29kZWJhc2UgdG8gY2hhbmdlCiAgaXRz IGJlaGF2aW91ci4iCgo+IGEgVU1DIGJ5IG1hdGNoaW5nIG9uIGZpeGVkLCBrbm93biB2YWx1ZXMu IEhvd2V2ZXIsIGEgcGF0dGVybiBoYXMgZW1lcmdlZAo+IHNvIHdlIG5vIGxvbmdlciBuZWVkIHRv IG1hdGNoIG9uIGhhcmRjb2RlZCB2YWx1ZXMuCgphIHBhdHRlcm4gaGFzIGVtZXJnZWQ/IQoKPiBT ZXQgdGhlIG51bWJlciBvZiBVTUNzIGF0IGluaXQgdGltZSBiYXNlZCBvbiB0aGUgRmFtaWx5L01v ZGVsLiBBbHNvLAo+IHVwZGF0ZSB0aGUgZnVuY3Rpb25zIHRoYXQgZmluZCB0aGUgY2hhbm5lbCBu dW1iZXIgYW5kIGJhc2UgYWRkcmVzcyBvZiBhCj4gVU1DIGluIG9yZGVyIHRvIHN1cHBvcnQgbW9y ZSB0aGFuIHR3byBVTUNzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVu LmdoYW5uYW1AYW1kLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuYyB8IDQy ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2VkYWMv YW1kNjRfZWRhYy5oIHwgMjAgKysrKysrKysrKysrKysrLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQs IDM1IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2VkYWMvYW1kNjRfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuYwo+IGluZGV4 IDk5NDc0MzdkOTU3NC4uNTA3ZDgyNGZlNDVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZWRhYy9h bWQ2NF9lZGFjLmMKPiArKysgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jCj4gQEAgLTQ0OSw2 ICs0NDksOSBAQCBzdGF0aWMgdm9pZCBnZXRfY3NfYmFzZV9hbmRfbWFzayhzdHJ1Y3QgYW1kNjRf cHZ0ICpwdnQsIGludCBjc3JvdywgdTggZGN0LAo+ICAjZGVmaW5lIGZvcl9lYWNoX2NoaXBfc2Vs ZWN0X21hc2soaSwgZGN0LCBwdnQpIFwKPiAgCWZvciAoaSA9IDA7IGkgPCBwdnQtPmNzZWxzW2Rj dF0ubV9jbnQ7IGkrKykKPiAgCj4gKyNkZWZpbmUgZm9yX2VhY2hfdW1jKGkpIFwKPiArCWZvciAo aSA9IDA7IGkgPCBudW1fdW1jczsgaSsrKQoKVGhhdCBjaGFuZ2UgYW5kIHRoZSByZXN1bHRpbmcg Y29udmVyc2lvbiBuZWVkcyB0byBiZSBhIHNlcGFyYXRlIHBhdGNoIHNvCnRoYXQgdGhlIGRpZmYg ZG9lc24ndCBkaXN0cmFjdCBmcm9tIHRoZSBVTUMgY291bnQgZmlndXJpbmcgb3V0IGFkZGl0aW9u LgoKPiAgLyoKPiAgICogQGlucHV0X2FkZHIgaXMgYW4gSW5wdXRBZGRyIGFzc29jaWF0ZWQgd2l0 aCB0aGUgbm9kZSBnaXZlbiBieSBtY2kuIFJldHVybiB0aGUKPiAgICogY3Nyb3cgdGhhdCBpbnB1 dF9hZGRyIG1hcHMgdG8sIG9yIC0xIG9uIGZhaWx1cmUgKG5vIGNzcm93IGNsYWltcyBpbnB1dF9h ZGRyKS4KPiBAQCAtNzIyLDcgKzcyNSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGRldGVybWlu ZV9lZGFjX2NhcChzdHJ1Y3QgYW1kNjRfcHZ0ICpwdnQpCj4gIAlpZiAocHZ0LT51bWMpIHsKPiAg CQl1OCBpLCB1bWNfZW5fbWFzayA9IDAsIGRpbW1fZWNjX2VuX21hc2sgPSAwOwo+ICAKPiAtCQlm b3IgKGkgPSAwOyBpIDwgTlVNX1VNQ1M7IGkrKykgewo+ICsJCWZvcl9lYWNoX3VtYyhpKSB7Cj4g IAkJCWlmICghKHB2dC0+dW1jW2ldLnNkcF9jdHJsICYgVU1DX1NEUF9JTklUKSkKPiAgCQkJCWNv bnRpbnVlOwo+ICAKPiBAQCAtODExLDcgKzgxNCw3IEBAIHN0YXRpYyB2b2lkIF9fZHVtcF9taXNj X3JlZ3NfZGYoc3RydWN0IGFtZDY0X3B2dCAqcHZ0KQo+ICAJc3RydWN0IGFtZDY0X3VtYyAqdW1j Owo+ICAJdTMyIGksIHRtcCwgdW1jX2Jhc2U7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IE5VTV9V TUNTOyBpKyspIHsKPiArCWZvcl9lYWNoX3VtYyhpKSB7Cj4gIAkJdW1jX2Jhc2UgPSBnZXRfdW1j X2Jhc2UoaSk7Cj4gIAkJdW1jID0gJnB2dC0+dW1jW2ldOwo+ICAKPiBAQCAtMTM4OCw3ICsxMzkx LDcgQEAgc3RhdGljIGludCBmMTdfZWFybHlfY2hhbm5lbF9jb3VudChzdHJ1Y3QgYW1kNjRfcHZ0 ICpwdnQpCj4gIAlpbnQgaSwgY2hhbm5lbHMgPSAwOwo+ICAKPiAgCS8qIFNEUCBDb250cm9sIGJp dCAzMSAoU2RwSW5pdCkgaXMgY2xlYXIgZm9yIHVudXNlZCBVTUMgY2hhbm5lbHMgKi8KPiAtCWZv ciAoaSA9IDA7IGkgPCBOVU1fVU1DUzsgaSsrKQo+ICsJZm9yX2VhY2hfdW1jKGkpCj4gIAkJY2hh bm5lbHMgKz0gISEocHZ0LT51bWNbaV0uc2RwX2N0cmwgJiBVTUNfU0RQX0lOSVQpOwo+ICAKPiAg CWFtZDY0X2luZm8oIk1DVCBjaGFubmVsIGNvdW50OiAlZFxuIiwgY2hhbm5lbHMpOwo+IEBAIC0y NDczLDE4ICsyNDc2LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkZWNvZGVfYnVzX2Vycm9yKGlu dCBub2RlX2lkLCBzdHJ1Y3QgbWNlICptKQo+ICAgKiBUbyBmaW5kIHRoZSBVTUMgY2hhbm5lbCBy ZXByZXNlbnRlZCBieSB0aGlzIGJhbmsgd2UgbmVlZCB0byBtYXRjaCBvbiBpdHMKPiAgICogaW5z dGFuY2VfaWQuIFRoZSBpbnN0YW5jZV9pZCBvZiBhIGJhbmsgaXMgaGVsZCBpbiB0aGUgbG93ZXIg MzIgYml0cyBvZiBpdHMKPiAgICogSVBJRC4KPiArICoKPiArICogQ3VycmVudGx5LCB3ZSBjYW4g ZGVyaXZlIHRoZSBjaGFubmVsIG51bWJlciBieSBsb29raW5nIGF0IHRoZSA2dGggYnl0ZSBpbgo+ ICsgKiB0aGUgaW5zdGFuY2VfaWQuIEZvciBleGFtcGxlLCBpbnN0YW5jZV9pZD0weFlYWFhYWCB3 aGVyZSBZIGlzIHRoZSBjaGFubmVsCj4gKyAqIG51bWJlci4KPiAgICovCj4gLXN0YXRpYyBpbnQg ZmluZF91bWNfY2hhbm5lbChzdHJ1Y3QgYW1kNjRfcHZ0ICpwdnQsIHN0cnVjdCBtY2UgKm0pCj4g K3N0YXRpYyBpbnQgZmluZF91bWNfY2hhbm5lbChzdHJ1Y3QgbWNlICptKQo+ICB7Cj4gLQl1MzIg dW1jX2luc3RhbmNlX2lkW10gPSB7MHg1MGYwMCwgMHgxNTBmMDB9Owo+IC0JdTMyIGluc3RhbmNl X2lkID0gbS0+aXBpZCAmIEdFTk1BU0soMzEsIDApOwo+IC0JaW50IGksIGNoYW5uZWwgPSAtMTsK PiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh1bWNfaW5zdGFuY2VfaWQpOyBpKysp Cj4gLQkJaWYgKHVtY19pbnN0YW5jZV9pZFtpXSA9PSBpbnN0YW5jZV9pZCkKPiAtCQkJY2hhbm5l bCA9IGk7Cj4gLQo+IC0JcmV0dXJuIGNoYW5uZWw7Cj4gKwlyZXR1cm4gKG0tPmlwaWQgJiBHRU5N QVNLKDMxLCAwKSkgPj4gMjA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGRlY29kZV91bWNfZXJy b3IoaW50IG5vZGVfaWQsIHN0cnVjdCBtY2UgKm0pCj4gQEAgLTI1MDYsMTEgKzI1MDUsNyBAQCBz dGF0aWMgdm9pZCBkZWNvZGVfdW1jX2Vycm9yKGludCBub2RlX2lkLCBzdHJ1Y3QgbWNlICptKQo+ ICAJaWYgKG0tPnN0YXR1cyAmIE1DSV9TVEFUVVNfREVGRVJSRUQpCj4gIAkJZWNjX3R5cGUgPSAz Owo+ICAKPiAtCWVyci5jaGFubmVsID0gZmluZF91bWNfY2hhbm5lbChwdnQsIG0pOwo+IC0JaWYg KGVyci5jaGFubmVsIDwgMCkgewo+IC0JCWVyci5lcnJfY29kZSA9IEVSUl9DSEFOTkVMOwo+IC0J CWdvdG8gbG9nX2Vycm9yOwo+IC0JfQo+ICsJZXJyLmNoYW5uZWwgPSBmaW5kX3VtY19jaGFubmVs KG0pOwo+ICAKPiAgCWlmICh1bWNfbm9ybWFkZHJfdG9fc3lzYWRkcihtLT5hZGRyLCBwdnQtPm1j X25vZGVfaWQsIGVyci5jaGFubmVsLCAmc3lzX2FkZHIpKSB7Cj4gIAkJZXJyLmVycl9jb2RlID0g RVJSX05PUk1fQUREUjsKPiBAQCAtMjYxMiw3ICsyNjA3LDcgQEAgc3RhdGljIHZvaWQgZGV0ZXJt aW5lX2VjY19zeW1fc3ooc3RydWN0IGFtZDY0X3B2dCAqcHZ0KQo+ICAJaWYgKHB2dC0+dW1jKSB7 Cj4gIAkJdTggaTsKPiAgCj4gLQkJZm9yIChpID0gMDsgaSA8IE5VTV9VTUNTOyBpKyspIHsKPiAr CQlmb3JfZWFjaF91bWMoaSkgewo+ICAJCQkvKiBDaGVjayBlbmFibGVkIGNoYW5uZWxzIG9ubHk6 ICovCj4gIAkJCWlmICgocHZ0LT51bWNbaV0uc2RwX2N0cmwgJiBVTUNfU0RQX0lOSVQpICYmCj4g IAkJCSAgICAocHZ0LT51bWNbaV0uZWNjX2N0cmwgJiBCSVQoNykpKSB7Cj4gQEAgLTI2NDgsNyAr MjY0Myw3IEBAIHN0YXRpYyB2b2lkIF9fcmVhZF9tY19yZWdzX2RmKHN0cnVjdCBhbWQ2NF9wdnQg KnB2dCkKPiAgCXUzMiBpLCB1bWNfYmFzZTsKPiAgCj4gIAkvKiBSZWFkIHJlZ2lzdGVycyBmcm9t IGVhY2ggVU1DICovCj4gLQlmb3IgKGkgPSAwOyBpIDwgTlVNX1VNQ1M7IGkrKykgewo+ICsJZm9y X2VhY2hfdW1jKGkpIHsKPiAgCj4gIAkJdW1jX2Jhc2UgPSBnZXRfdW1jX2Jhc2UoaSk7Cj4gIAkJ dW1jID0gJnB2dC0+dW1jW2ldOwo+IEBAIC0zMDYxLDcgKzMwNTYsOCBAQCBzdGF0aWMgYm9vbCBl Y2NfZW5hYmxlZChzdHJ1Y3QgcGNpX2RldiAqRjMsIHUxNiBuaWQpCj4gIAlpZiAoYm9vdF9jcHVf ZGF0YS54ODYgPj0gMHgxNykgewo+ICAJCXU4IHVtY19lbl9tYXNrID0gMCwgZWNjX2VuX21hc2sg PSAwOwo+ICAKPiAtCQlmb3IgKGkgPSAwOyBpIDwgTlVNX1VNQ1M7IGkrKykgewo+ICsJCXNldF9u dW1fdW1jcygpOwoKRG8geW91IHRoaW5rIHRoaXMgY2FsbCBiZWxvbmdzIGhlcmUgY29uY2VwdHVh bGx5PwoKSXQgaXMgY2FsbGVkIG9uY2UgcGVyIGVhY2ggZHJpdmVyIGluc3RhbmNlIGV2ZW4gdGhv dWdoIHRoZSBudW1iZXIgaXMKc3RhdGljIGFuZCBuZWVkcyB0byBiZSBjb21wdXRlZCBvbmx5IG9u Y2UsIGF0IGRyaXZlciBpbml0LgoKQWxzbywgdGhlIGZ1bmN0aW9uIG5hbWUgc2hvdWxkIGJlIHNv bWV0aGluZyBsaWtlICJjb21wdXRlX251bV91bWNzIiBvcgpzby4KCj4gKwkJZm9yX2VhY2hfdW1j KGkpIHsKPiAgCQkJdTMyIGJhc2UgPSBnZXRfdW1jX2Jhc2UoaSk7Cj4gIAo+ICAJCQkvKiBPbmx5 IGNoZWNrIGVuYWJsZWQgVU1Dcy4gKi8KPiBAQCAtMzExNCw3ICszMTEwLDcgQEAgZjE3aF9kZXRl cm1pbmVfZWRhY19jdGxfY2FwKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwgc3RydWN0IGFtZDY0 X3B2dCAqcHZ0KQo+ICB7Cj4gIAl1OCBpLCBlY2NfZW4gPSAxLCBjcGtfZW4gPSAxOwo+ICAKPiAt CWZvciAoaSA9IDA7IGkgPCBOVU1fVU1DUzsgaSsrKSB7Cj4gKwlmb3JfZWFjaF91bWMoaSkgewo+ ICAJCWlmIChwdnQtPnVtY1tpXS5zZHBfY3RybCAmIFVNQ19TRFBfSU5JVCkgewo+ICAJCQllY2Nf ZW4gJj0gISEocHZ0LT51bWNbaV0udW1jX2NhcF9oaSAmIFVNQ19FQ0NfRU5BQkxFRCk7Cj4gIAkJ CWNwa19lbiAmPSAhIShwdnQtPnVtY1tpXS51bWNfY2FwX2hpICYgVU1DX0VDQ19DSElQS0lMTF9D QVApOwo+IEBAIC0zMjczLDcgKzMyNjksNyBAQCBzdGF0aWMgaW50IGluaXRfb25lX2luc3RhbmNl KHVuc2lnbmVkIGludCBuaWQpCj4gIAkJZ290byBlcnJfZnJlZTsKPiAgCj4gIAlpZiAocHZ0LT5m YW0gPj0gMHgxNykgewo+IC0JCXB2dC0+dW1jID0ga2NhbGxvYyhOVU1fVU1DUywgc2l6ZW9mKHN0 cnVjdCBhbWQ2NF91bWMpLCBHRlBfS0VSTkVMKTsKPiArCQlwdnQtPnVtYyA9IGtjYWxsb2MobnVt X3VtY3MsIHNpemVvZihzdHJ1Y3QgYW1kNjRfdW1jKSwgR0ZQX0tFUk5FTCk7Cj4gIAkJaWYgKCFw dnQtPnVtYykgewo+ICAJCQlyZXQgPSAtRU5PTUVNOwo+ICAJCQlnb3RvIGVycl9mcmVlOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5oIGIvZHJpdmVycy9lZGFjL2FtZDY0 X2VkYWMuaAo+IGluZGV4IGRlOGRiYjBiNDJiNS4uNDM1NDUwYmY4Njg0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZWRhYy9hbWQ2NF9lZGFjLmgKPiArKysgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRh Yy5oCj4gQEAgLTI3NCw4ICsyNzQsNiBAQAo+ICAKPiAgI2RlZmluZSBVTUNfU0RQX0lOSVQJCQlC SVQoMzEpCj4gIAo+IC0jZGVmaW5lIE5VTV9VTUNTCQkJMgo+IC0KPiAgZW51bSBhbWRfZmFtaWxp ZXMgewo+ICAJSzhfQ1BVUyA9IDAsCj4gIAlGMTBfQ1BVUywKPiBAQCAtMzk5LDggKzM5NywyMiBA QCBzdHJ1Y3QgZXJyX2luZm8gewo+ICAKPiAgc3RhdGljIGlubGluZSB1MzIgZ2V0X3VtY19iYXNl KHU4IGNoYW5uZWwpCj4gIHsKPiAtCS8qIGNoMDogMHg1MDAwMCwgY2gxOiAweDE1MDAwMCAqLwo+ IC0JcmV0dXJuIDB4NTAwMDAgKyAoISFjaGFubmVsIDw8IDIwKTsKPiArCS8qIGNoWTogMHhZNTAw MDAgKi8KPiArCXJldHVybiAweDUwMDAwICsgKGNoYW5uZWwgPDwgMjApOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdTggbnVtX3VtY3M7Cj4gKwoKWW91IGFuZCBJIGtub3cgd2hhdCAiVU1DIiBtZWFucyBi dXQgSSBkb3VidCB0aGUgcmVhZGVyIGRvZXMuIFBsZWFzZSBhZGQKc29tZSBibHVyYiBoZXJlIHNv IHRoYXQgaXQgaXMgY2xlYXIgd2hhdCBpdCBpcy4KCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRf bnVtX3VtY3Modm9pZCkKPiArewo+ICsJdTggbW9kZWwgPSBib290X2NwdV9kYXRhLng4Nl9tb2Rl bDsKPiArCj4gKwlpZiAobW9kZWwgPj0gMHgzMCAmJiBtb2RlbCA8PSAweDNmKQo+ICsJCW51bV91 bWNzID0gODsKPiArCWVsc2UKPiArCQludW1fdW1jcyA9IDI7Cj4gKwo+ICsJZWRhY19kYmcoMSwg Ik51bWJlciBvZiBVTUNzOiAleCIsIG51bV91bWNzKTsKPiAgfQoKV2h5IGlzIHRoaXMgZnVuY3Rp b24gaW5saW5lIGFuZCBpbiB0aGUgaGVhZGVyPyBJIGRvbid0IHNlZSBhbnl0aGluZwpzcGVjaWFs IGFib3V0IGl0IGFuZCBzaG91bGQgYmUgaW4gYW1kNjRfZWRhYy5jIGluc3RlYWQsIEFGQUlDVC4K ClRoeC4K