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: [v6,3/7] EDAC, sb_edac: Assign EDAC memory controller per h/w controller From: Borislav Petkov Message-Id: <20170525112449.GD16296@nazgul.tnic> Date: Thu, 25 May 2017 13:24:49 +0200 To: Qiuxu Zhuo Cc: mchehab@osg.samsung.com, tony.luck@intel.com, arozansk@redhat.com, patrickg@supermicro.com, linux-edac@vger.kernel.org List-ID: T24gVHVlLCBNYXkgMjMsIDIwMTcgYXQgMDg6MDc6MzFBTSArMDgwMCwgUWl1eHUgWmh1byB3cm90 ZToKPiBUb255IHBvaW50ZWQgb3V0IHRoYXQgImN1cnJlbnRseSB0aGUgZHJpdmVyIHByZXRlbmRz IHRoZXJlIGlzCj4gb25lIGJpZyA4LWNoYW5uZWwgbWVtb3J5IGNvbnRyb2xsZXIgcGVyIHNvY2tl dCBpbnN0ZWFkIG9mIDIKPiA0LWNoYW5uZWwgY29udHJvbGxlcnMuIFRoaXMgaXMgZmluZSB3aXRo IGFsbCBtZW1vcnkgY29udHJvbGxlcgo+IHBvcHVsYXRlZCB3aXRoIHN5bW1ldHJpY2FsIERJTU0g Y29uZmlndXJhdGlvbnMsIGJ1dCBydW5zIGludG8KPiBkaWZmaWN1bHRpZXMgb24gYXN5bW1ldHJp Y2FsIHNldHVwcyIuCj4gCj4gUmVzdHJ1Y3R1cmUgdGhlIGRyaXZlciB0byBhc3NpZ24gYW4gRURB QyBtZW1vcnkgY29udHJvbGxlciB0bwo+IGVhY2ggcmVhbCBoL3cgbWVtb3J5IGNvbnRyb2xsZXIg dG8gcmVzb2x2ZSB0aGUgaXNzdWUuCj4gCj4gU2lnbmVkLW9mZi1ieTogUWl1eHUgWmh1byA8cWl1 eHUuemh1b0BpbnRlbC5jb20+Cj4gLS0tCgpPbnRvcDoKCihJJ2xsIHB1c2ggb3V0IGEgYnJhbmNo IGZvciB5b3UgdG8gcmV0ZXN0IG9uY2UgSSd2ZSBhcHBsaWVkIHRoZSB3aG9sZSBzZXQuKQoKVGhh bmtzLgotLS0KRnJvbTogQm9yaXNsYXYgUGV0a292IDxicEBzdXNlLmRlPgpEYXRlOiBUaHUsIDI1 IE1heSAyMDE3IDEzOjIwOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIEVEQUMsIHNiX2Vk YWM6IENhcnZlIG91dCBkaW1tLXBvcHVsYXRpbmcgbG9vcAoKLi4uIHRvIHNsaW0gZG93biBnZXRf ZGltbV9jb25maWcoKS4KCk5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTog Qm9yaXNsYXYgUGV0a292IDxicEBzdXNlLmRlPgotLS0KIGRyaXZlcnMvZWRhYy9zYl9lZGFjLmMg fCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZWRhYy9zYl9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvc2JfZWRhYy5jCmlu ZGV4IGYyNWEwNDg1NDlhYy4uZjY3NWRkZGI1OGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMv c2JfZWRhYy5jCisrKyBiL2RyaXZlcnMvZWRhYy9zYl9lZGFjLmMKQEAgLTE2MjAsNjYgKzE2MjAs MTcgQEAgc3RhdGljIHZvaWQgZ2V0X3NvdXJjZV9pZChzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kp CiAJCXB2dC0+c2JyaWRnZV9kZXYtPnNvdXJjZV9pZCA9IFNPVVJDRV9JRChyZWcpOwogfQogCi1z dGF0aWMgaW50IGdldF9kaW1tX2NvbmZpZyhzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpCitzdGF0 aWMgdm9pZCBfX3BvcHVsYXRlX2RpbW1zKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwKKwkJCSAg ICAgdTY0IGtubF9tY19zaXplc1tLTkxfTUFYX0NIQU5ORUxTXSwKKwkJCSAgICAgZW51bSBlZGFj X3R5cGUgbW9kZSkKIHsKIAlzdHJ1Y3Qgc2JyaWRnZV9wdnQgKnB2dCA9IG1jaS0+cHZ0X2luZm87 CisJaW50IGNoYW5uZWxzID0gcHZ0LT5pbmZvLnR5cGUgPT0gS05JR0hUU19MQU5ESU5HID8gS05M X01BWF9DSEFOTkVMUworCQkJCQkJCSA6IE5VTV9DSEFOTkVMUzsKKwl1bnNpZ25lZCBpbnQgaSwg aiwgYmFua3MsIHJhbmtzLCByb3dzLCBjb2xzLCBucGFnZXM7CiAJc3RydWN0IGRpbW1faW5mbyAq ZGltbTsKLQl1bnNpZ25lZCBpLCBqLCBiYW5rcywgcmFua3MsIHJvd3MsIGNvbHMsIG5wYWdlczsK LQl1NjQgc2l6ZTsKLQl1MzIgcmVnOwotCWVudW0gZWRhY190eXBlIG1vZGU7CiAJZW51bSBtZW1f dHlwZSBtdHlwZTsKLQlpbnQgY2hhbm5lbHMgPSBwdnQtPmluZm8udHlwZSA9PSBLTklHSFRTX0xB TkRJTkcgPwotCQlLTkxfTUFYX0NIQU5ORUxTIDogTlVNX0NIQU5ORUxTOwotCXU2NCBrbmxfbWNf c2l6ZXNbS05MX01BWF9DSEFOTkVMU107Ci0KLQlpZiAocHZ0LT5pbmZvLnR5cGUgPT0gSEFTV0VM TCB8fCBwdnQtPmluZm8udHlwZSA9PSBCUk9BRFdFTEwpIHsKLQkJcGNpX3JlYWRfY29uZmlnX2R3 b3JkKHB2dC0+cGNpX2hhLCBIQVNXRUxMX0hBU1lTREVGRUFUVVJFMiwgJnJlZyk7Ci0JCXB2dC0+ aXNfY2hhbl9oYXNoID0gR0VUX0JJVEZJRUxEKHJlZywgMjEsIDIxKTsKLQl9Ci0JcHZ0LT5zYnJp ZGdlX2Rldi0+bm9kZV9pZCA9IHB2dC0+aW5mby5nZXRfbm9kZV9pZChwdnQpOwotCWVkYWNfZGJn KDAsICJtYyMlZDogTm9kZSBJRDogJWQsIHNvdXJjZSBJRDogJWRcbiIsCi0JCSBwdnQtPnNicmlk Z2VfZGV2LT5tYywKLQkJIHB2dC0+c2JyaWRnZV9kZXYtPm5vZGVfaWQsCi0JCSBwdnQtPnNicmlk Z2VfZGV2LT5zb3VyY2VfaWQpOwotCi0JLyogS05MIGRvZXNuJ3Qgc3VwcG9ydCBtaXJyb3Jpbmcg b3IgbG9ja3N0ZXAsCi0JICogYW5kIGlzIGFsd2F5cyBjbG9zZWQgcGFnZQotCSAqLwotCWlmIChw dnQtPmluZm8udHlwZSA9PSBLTklHSFRTX0xBTkRJTkcpIHsKLQkJbW9kZSA9IEVEQUNfUzRFQ0Q0 RUQ7Ci0JCXB2dC0+aXNfbWlycm9yZWQgPSBmYWxzZTsKLQotCQlpZiAoa25sX2dldF9kaW1tX2Nh cGFjaXR5KHB2dCwga25sX21jX3NpemVzKSAhPSAwKQotCQkJcmV0dXJuIC0xOwotCX0gZWxzZSB7 Ci0JCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwdnQtPnBjaV9yYXMsIFJBU0VOQUJMRVMsICZyZWcp OwotCQlpZiAoSVNfTUlSUk9SX0VOQUJMRUQocmVnKSkgewotCQkJZWRhY19kYmcoMCwgIk1lbW9y eSBtaXJyb3IgaXMgZW5hYmxlZFxuIik7Ci0JCQlwdnQtPmlzX21pcnJvcmVkID0gdHJ1ZTsKLQkJ fSBlbHNlIHsKLQkJCWVkYWNfZGJnKDAsICJNZW1vcnkgbWlycm9yIGlzIGRpc2FibGVkXG4iKTsK LQkJCXB2dC0+aXNfbWlycm9yZWQgPSBmYWxzZTsKLQkJfQotCi0JCXBjaV9yZWFkX2NvbmZpZ19k d29yZChwdnQtPnBjaV90YSwgTUNNVFIsICZwdnQtPmluZm8ubWNtdHIpOwotCQlpZiAoSVNfTE9D S1NURVBfRU5BQkxFRChwdnQtPmluZm8ubWNtdHIpKSB7Ci0JCQllZGFjX2RiZygwLCAiTG9ja3N0 ZXAgaXMgZW5hYmxlZFxuIik7Ci0JCQltb2RlID0gRURBQ19TOEVDRDhFRDsKLQkJCXB2dC0+aXNf bG9ja3N0ZXAgPSB0cnVlOwotCQl9IGVsc2UgewotCQkJZWRhY19kYmcoMCwgIkxvY2tzdGVwIGlz IGRpc2FibGVkXG4iKTsKLQkJCW1vZGUgPSBFREFDX1M0RUNENEVEOwotCQkJcHZ0LT5pc19sb2Nr c3RlcCA9IGZhbHNlOwotCQl9Ci0JCWlmIChJU19DTE9TRV9QRyhwdnQtPmluZm8ubWNtdHIpKSB7 Ci0JCQllZGFjX2RiZygwLCAiYWRkcmVzcyBtYXAgaXMgb24gY2xvc2VkIHBhZ2UgbW9kZVxuIik7 Ci0JCQlwdnQtPmlzX2Nsb3NlX3BnID0gdHJ1ZTsKLQkJfSBlbHNlIHsKLQkJCWVkYWNfZGJnKDAs ICJhZGRyZXNzIG1hcCBpcyBvbiBvcGVuIHBhZ2UgbW9kZVxuIik7Ci0JCQlwdnQtPmlzX2Nsb3Nl X3BnID0gZmFsc2U7Ci0JCX0KLQl9CisJdTY0IHNpemU7CiAKIAltdHlwZSA9IHB2dC0+aW5mby5n ZXRfbWVtb3J5X3R5cGUocHZ0KTsKIAlpZiAobXR5cGUgPT0gTUVNX1JERFIzIHx8IG10eXBlID09 IE1FTV9SRERSNCkKQEAgLTE3MTAsOCArMTY2MSw3IEBAIHN0YXRpYyBpbnQgZ2V0X2RpbW1fY29u ZmlnKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkKIAkJfQogCiAJCWZvciAoaiA9IDA7IGogPCBt YXhfZGltbXNfcGVyX2NoYW5uZWw7IGorKykgewotCQkJZGltbSA9IEVEQUNfRElNTV9QVFIobWNp LT5sYXllcnMsIG1jaS0+ZGltbXMsIG1jaS0+bl9sYXllcnMsCi0JCQkJICAgICAgIGksIGosIDAp OworCQkJZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ZGltbXMsIG1jaS0+ bl9sYXllcnMsIGksIGosIDApOwogCQkJaWYgKHB2dC0+aW5mby50eXBlID09IEtOSUdIVFNfTEFO RElORykgewogCQkJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwdnQtPmtubC5wY2lfY2hhbm5lbFtp XSwKIAkJCQkJa25sX210cl9yZWcsICZtdHIpOwpAQCAtMTc1NCw2ICsxNzA0LDY0IEBAIHN0YXRp YyBpbnQgZ2V0X2RpbW1fY29uZmlnKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkKIAkJCX0KIAkJ fQogCX0KK30KKworc3RhdGljIGludCBnZXRfZGltbV9jb25maWcoc3RydWN0IG1lbV9jdGxfaW5m byAqbWNpKQoreworCXN0cnVjdCBzYnJpZGdlX3B2dCAqcHZ0ID0gbWNpLT5wdnRfaW5mbzsKKwl1 NjQga25sX21jX3NpemVzW0tOTF9NQVhfQ0hBTk5FTFNdOworCWVudW0gZWRhY190eXBlIG1vZGU7 CisJdTMyIHJlZzsKKworCWlmIChwdnQtPmluZm8udHlwZSA9PSBIQVNXRUxMIHx8IHB2dC0+aW5m by50eXBlID09IEJST0FEV0VMTCkgeworCQlwY2lfcmVhZF9jb25maWdfZHdvcmQocHZ0LT5wY2lf aGEsIEhBU1dFTExfSEFTWVNERUZFQVRVUkUyLCAmcmVnKTsKKwkJcHZ0LT5pc19jaGFuX2hhc2gg PSBHRVRfQklURklFTEQocmVnLCAyMSwgMjEpOworCX0KKwlwdnQtPnNicmlkZ2VfZGV2LT5ub2Rl X2lkID0gcHZ0LT5pbmZvLmdldF9ub2RlX2lkKHB2dCk7CisJZWRhY19kYmcoMCwgIm1jIyVkOiBO b2RlIElEOiAlZCwgc291cmNlIElEOiAlZFxuIiwKKwkJIHB2dC0+c2JyaWRnZV9kZXYtPm1jLAor CQkgcHZ0LT5zYnJpZGdlX2Rldi0+bm9kZV9pZCwKKwkJIHB2dC0+c2JyaWRnZV9kZXYtPnNvdXJj ZV9pZCk7CisKKwkvKiBLTkwgZG9lc24ndCBzdXBwb3J0IG1pcnJvcmluZyBvciBsb2Nrc3RlcCwK KwkgKiBhbmQgaXMgYWx3YXlzIGNsb3NlZCBwYWdlCisJICovCisJaWYgKHB2dC0+aW5mby50eXBl ID09IEtOSUdIVFNfTEFORElORykgeworCQltb2RlID0gRURBQ19TNEVDRDRFRDsKKwkJcHZ0LT5p c19taXJyb3JlZCA9IGZhbHNlOworCisJCWlmIChrbmxfZ2V0X2RpbW1fY2FwYWNpdHkocHZ0LCBr bmxfbWNfc2l6ZXMpICE9IDApCisJCQlyZXR1cm4gLTE7CisJfSBlbHNlIHsKKwkJcGNpX3JlYWRf Y29uZmlnX2R3b3JkKHB2dC0+cGNpX3JhcywgUkFTRU5BQkxFUywgJnJlZyk7CisJCWlmIChJU19N SVJST1JfRU5BQkxFRChyZWcpKSB7CisJCQllZGFjX2RiZygwLCAiTWVtb3J5IG1pcnJvciBpcyBl bmFibGVkXG4iKTsKKwkJCXB2dC0+aXNfbWlycm9yZWQgPSB0cnVlOworCQl9IGVsc2UgeworCQkJ ZWRhY19kYmcoMCwgIk1lbW9yeSBtaXJyb3IgaXMgZGlzYWJsZWRcbiIpOworCQkJcHZ0LT5pc19t aXJyb3JlZCA9IGZhbHNlOworCQl9CisKKwkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKHB2dC0+cGNp X3RhLCBNQ01UUiwgJnB2dC0+aW5mby5tY210cik7CisJCWlmIChJU19MT0NLU1RFUF9FTkFCTEVE KHB2dC0+aW5mby5tY210cikpIHsKKwkJCWVkYWNfZGJnKDAsICJMb2Nrc3RlcCBpcyBlbmFibGVk XG4iKTsKKwkJCW1vZGUgPSBFREFDX1M4RUNEOEVEOworCQkJcHZ0LT5pc19sb2Nrc3RlcCA9IHRy dWU7CisJCX0gZWxzZSB7CisJCQllZGFjX2RiZygwLCAiTG9ja3N0ZXAgaXMgZGlzYWJsZWRcbiIp OworCQkJbW9kZSA9IEVEQUNfUzRFQ0Q0RUQ7CisJCQlwdnQtPmlzX2xvY2tzdGVwID0gZmFsc2U7 CisJCX0KKwkJaWYgKElTX0NMT1NFX1BHKHB2dC0+aW5mby5tY210cikpIHsKKwkJCWVkYWNfZGJn KDAsICJhZGRyZXNzIG1hcCBpcyBvbiBjbG9zZWQgcGFnZSBtb2RlXG4iKTsKKwkJCXB2dC0+aXNf Y2xvc2VfcGcgPSB0cnVlOworCQl9IGVsc2UgeworCQkJZWRhY19kYmcoMCwgImFkZHJlc3MgbWFw IGlzIG9uIG9wZW4gcGFnZSBtb2RlXG4iKTsKKwkJCXB2dC0+aXNfY2xvc2VfcGcgPSBmYWxzZTsK KwkJfQorCX0KKworCV9fcG9wdWxhdGVfZGltbXMobWNpLCBrbmxfbWNfc2l6ZXMsIG1vZGUpOwog CiAJcmV0dXJuIDA7CiB9Cg==