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: [3/3] EDAC, skx_edac: Add address translation for non-volatile DIMMs From: "Luck, Tony" Message-Id: <20181010230457.GA8392@agluck-desk> Date: Wed, 10 Oct 2018 16:04:57 -0700 To: Qiuxu Zhuo Cc: Borislav Petkov , Aristeu Rozanski , Mauro Carvalho Chehab , linux-edac@vger.kernel.org, linux-acpi@vger.kernel.org, "Rafael J. Wysocki" List-ID: UWl1eHUsCgpJIGp1c3QgbWFkZSB0aGUgcXVpY2sgY2hhbmdlIGZyb20gd2hhdCB5b3UgbWFpbGVk IHRvIG1lCmVhcmxpZXIgZm9yIHRoZSAiY29uc3QgY2hhciAqIGNvbnN0IiBiaXRzLiAgSSBkaWQg c29tZQptb3JlIHJldmlldyBhbmQgY2FtZSB1cCB3aXRoIHRoZXNlIGNoYW5nZXM6CgoxKSBKdXN0 IGFsbG9jYXRlIHRoZSBhcnJheSBmb3IgdGhlIHZhbHVlcyBvbmNlIHdoZW4gc2V0dGluZwp1cCwg bm90IG9uIGVhY2ggZGVjb2RlIChpdHMgbm90IHZlcnkgYmlnLCBhbmQgYXZvaWRzIHJpc2sKb2Yg bm90IGhhdmluZyBtZW1vcnkgYXZhaWxhYmxlIGF0IGRlY29kZSB0aW1lKS4KCjIpIEFkZCBhbiBl bnVtIHRvIGRlZmluZSBuYW1lcyBmb3IgdGhlIG9mZnNldHMgaW4gdGhlCiAgIGNvbXBvbmVudF9p bmRpY2VzW10gYXJyYXkKCjMpIElnbm9yZSB1bnVzZWQgZmllbGRzIHJldHVybmVkIGJ5IGFkeGxf ZGVjb2RlKCkgKHRob3NlCiAgIHdpdGggdmFsdWUgMHhmZmZmZmZmZmZmZmZmZmZmLgoKcGF0Y2gg KG9uIHRvcCBvZiB0aGUgb25lIEkgcG9zdGVkKSBiZWxvdy4KCi1Ub255CgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9lZGFjL3NreF9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvc2t4X2VkYWMuYwppbmRleCAy OTg5ZWJhZDg5NzAuLmM0YjNlNWE5MGU4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL3NreF9l ZGFjLmMKKysrIGIvZHJpdmVycy9lZGFjL3NreF9lZGFjLmMKQEAgLTU3LDExICs1NywyMCBAQCBz dGF0aWMgTElTVF9IRUFEKHNreF9lZGFjX2xpc3QpOwogCiBzdGF0aWMgdTY0IHNreF90b2xtLCBz a3hfdG9obTsKIHN0YXRpYyBpbnQgbnZkaW1tX2NvdW50Oworc3RhdGljIHU2NCAqYWR4bF92YWx1 ZXM7CisKK2VudW0geworCUlOREVYX1NPQ0tFVCwKKwlJTkRFWF9NRU1DVFJMLAorCUlOREVYX0NI QU5ORUwsCisJSU5ERVhfRElNTSwKKwlJTkRFWF9NQVgKK307CiBzdGF0aWMgY2hhciBjb21wb25l bnRfbmFtZXNbXVszMl0gPSB7Ci0JIlByb2Nlc3NvclNvY2tldElkIiwKLQkiTWVtb3J5Q29udHJv bGxlcklkIiwKLQkiQ2hhbm5lbElkIiwKLQkiRGltbVNsb3RJZCIsCisJW0lOREVYX1NPQ0tFVF0J PSAiUHJvY2Vzc29yU29ja2V0SWQiLAorCVtJTkRFWF9NRU1DVFJMXQk9ICJNZW1vcnlDb250cm9s bGVySWQiLAorCVtJTkRFWF9DSEFOTkVMXQk9ICJDaGFubmVsSWQiLAorCVtJTkRFWF9ESU1NXQk9 ICJEaW1tU2xvdElkIiwKIH07CiAKIHN0YXRpYyBpbnQgY29tcG9uZW50X2luZGljZXNbQVJSQVlf U0laRShjb21wb25lbnRfbmFtZXMpXTsKQEAgLTkxNCw3ICs5MjMsNiBAQCBzdGF0aWMgYm9vbCBz a3hfZHNtX2RlY29kZSh1NjQgYWRkciwgY2hhciAqbXNnLCBpbnQgbXNnbGVuLAogCQkJICAgdTY0 ICpjaGFuLCB1NjQgKmRpbW0pCiAKIHsKLQl1NjQgKnZhbHVlczsKIAlpbnQgaSwgbGVuID0gMDsK IAogCWlmIChhZGRyID49IHNreF90b2htIHx8IChhZGRyID49IHNreF90b2xtICYmIGFkZHIgPCBC SVRfVUxMKDMyKSkpIHsKQEAgLTkyMiwzMiArOTMwLDI2IEBAIHN0YXRpYyBib29sIHNreF9kc21f ZGVjb2RlKHU2NCBhZGRyLCBjaGFyICptc2csIGludCBtc2dsZW4sCiAJCXJldHVybiBmYWxzZTsK IAl9CiAKLQl2YWx1ZXMgPSBrY2FsbG9jKGFkeGxfY29tcG9uZW50X2NvdW50LCBzaXplb2YoKnZh bHVlcyksIEdGUF9LRVJORUwpOwotCWlmICghdmFsdWVzKSB7Ci0JCWVkYWNfZGJnKDAsICJPdXQg b2YgbWVtb3J5XG4iKTsKLQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCWlmIChhZHhsX2RlY29kZShh ZGRyLCB2YWx1ZXMpKSB7CisJaWYgKGFkeGxfZGVjb2RlKGFkZHIsIGFkeGxfdmFsdWVzKSkgewog CQllZGFjX2RiZygwLCAiRmFpbGVkIHRvIGRlY29kZSAweCVsbHhcbiIsIGFkZHIpOwotCQlrZnJl ZSh2YWx1ZXMpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JKnNvY2sgPSB2YWx1ZXNbY29tcG9u ZW50X2luZGljZXNbMF1dOwotCSppbWMgPSB2YWx1ZXNbY29tcG9uZW50X2luZGljZXNbMV1dOwot CSpjaGFuID0gdmFsdWVzW2NvbXBvbmVudF9pbmRpY2VzWzJdXTsKLQkqZGltbSA9IHZhbHVlc1tj b21wb25lbnRfaW5kaWNlc1szXV07CisJKnNvY2sgPSBhZHhsX3ZhbHVlc1tjb21wb25lbnRfaW5k aWNlc1tJTkRFWF9TT0NLRVRdXTsKKwkqaW1jID0gYWR4bF92YWx1ZXNbY29tcG9uZW50X2luZGlj ZXNbSU5ERVhfTUVNQ1RSTF1dOworCSpjaGFuID0gYWR4bF92YWx1ZXNbY29tcG9uZW50X2luZGlj ZXNbSU5ERVhfQ0hBTk5FTF1dOworCSpkaW1tID0gYWR4bF92YWx1ZXNbY29tcG9uZW50X2luZGlj ZXNbSU5ERVhfRElNTV1dOwogCiAJZm9yIChpID0gMDsgaSA8IGFkeGxfY29tcG9uZW50X2NvdW50 OyBpKyspIHsKKwkJaWYgKGFkeGxfdmFsdWVzW2ldID09IH4weDB1bGwpCisJCQljb250aW51ZTsK IAkJbGVuICs9IHNucHJpbnRmKG1zZyArIGxlbiwgbXNnbGVuLCAiICVzOjB4JWxseCIsCi0JCQkJ YWR4bF9jb21wb25lbnRfbmFtZXNbaV0sIHZhbHVlc1tpXSk7CisJCQkJYWR4bF9jb21wb25lbnRf bmFtZXNbaV0sIGFkeGxfdmFsdWVzW2ldKTsKIAogCQlpZiAobXNnbGVuIC0gbGVuIDw9IDApCiAJ CQlicmVhazsKIAl9CiAKLQlrZnJlZSh2YWx1ZXMpOwogCXJldHVybiB0cnVlOwogfQogCkBAIC0x MTk1LDE3ICsxMTk3LDE2IEBAIHN0YXRpYyB2b2lkIHNreF9yZW1vdmUodm9pZCkKIHN0YXRpYyB2 b2lkIF9faW5pdCBza3hfZHNtX2dldCh2b2lkKQogewogCWNvbnN0IGNoYXIgKiBjb25zdCAqbmFt ZXM7Ci0JaW50IGksIGosIG47CisJaW50IGksIGo7CiAKIAluYW1lcyA9IGFkeGxfZ2V0X2NvbXBv bmVudF9uYW1lcygpOwogCWlmICghbmFtZXMpIHsKLQkJc2t4X3ByaW50ayhLRVJOX05PVElDRSwg Ik5vIGZpcm13YXJlIHN1cHBvcnRzIGZvciBhZGRyZXNzIHRyYW5zbGF0aW9uLiIpOworCQlza3hf cHJpbnRrKEtFUk5fTk9USUNFLCAiTm8gZmlybXdhcmUgc3VwcG9ydCBmb3IgYWRkcmVzcyB0cmFu c2xhdGlvbi4iKTsKIAkJc2t4X3ByaW50ayhLRVJOX0NPTlQsICIgT25seSBkZWNvZGluZyBERFI0 IGFkZHJlc3MhXG4iKTsKIAkJcmV0dXJuOwogCX0KIAotCW4gPSBBUlJBWV9TSVpFKGNvbXBvbmVu dF9uYW1lcyk7Ci0JZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBJ TkRFWF9NQVg7IGkrKykgewogCQlmb3IgKGogPSAwOyBuYW1lc1tqXTsgaisrKSB7CiAJCQlpZiAo IXN0cmNtcChjb21wb25lbnRfbmFtZXNbaV0sIG5hbWVzW2pdKSkgewogCQkJCWNvbXBvbmVudF9p bmRpY2VzW2ldID0gajsKQEAgLTEyMjEsNiArMTIyMiwxMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg c2t4X2RzbV9nZXQodm9pZCkKIAl3aGlsZSAoKm5hbWVzKyspCiAJCWFkeGxfY29tcG9uZW50X2Nv dW50Kys7CiAKKwlhZHhsX3ZhbHVlcyA9IGtjYWxsb2MoYWR4bF9jb21wb25lbnRfY291bnQsIHNp emVvZigqYWR4bF92YWx1ZXMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWFkeGxfdmFsdWVzKSB7CisJ CWFkeGxfY29tcG9uZW50X2NvdW50ID0gMDsKKwkJZWRhY19kYmcoMCwgIk5vIG1lbW9yeSBmb3Ig YWR4bF9kZWNvZGUoKVxuIik7CisJfQorCiAJcmV0dXJuOwogZXJyOgogCXNreF9wcmludGsoS0VS Tl9FUlIsICInJXMnIGlzIG5vdCBtYXRjaGVkIGZyb20gRFNNIHBhcmFtZXRlcnM6ICIsCg==