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: [v2,4/7] ghes_edac: avoid multiple calls to dmi_walk() From: Borislav Petkov Message-Id: <20170816164234.mgwapenb7fpym6nk@pd.tnic> Date: Wed, 16 Aug 2017 18:42:34 +0200 To: "Kani, Toshimitsu" Cc: "tony.luck@intel.com" , "rostedt@goodmis.org" , "linux-edac@vger.kernel.org" , "lenb@kernel.org" , "mchehab@kernel.org" , "linux-kernel@vger.kernel.org" , "rjw@rjwysocki.net" , "linux-acpi@vger.kernel.org" List-ID: T24gV2VkLCBBdWcgMTYsIDIwMTcgYXQgMDM6MjY6MDRQTSArMDAwMCwgS2FuaSwgVG9zaGltaXRz dSB3cm90ZToKPiBJIGJlbGlldmUgeW91IG5vdyBuZWVkIHRvIHByb3RlY3QgZnJvbSBhIHJhY2Ug Y29uZGl0aW9uIHRoYXQgYSBzaW5nbGUKPiBtY2kgYW5kIHB2dCBjYW4gYmUgaW5pdGlhbGl6ZWQg LyBjb25zdW1lZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuICBUaGlzCj4gcHJvdGVjdGlvbiBpcyBt aXNzaW5nIGluIHlvdXIgcGF0Y2guCgpFYXN5LiBEb25lLgoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZWRhYy9naGVzX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMuYwppbmRleCA2ZjgwZWI2 NWMyNmMuLmQ0MDg5YzI5ODBlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5j CisrKyBiL2RyaXZlcnMvZWRhYy9naGVzX2VkYWMuYwpAQCAtMjgsMTAgKzI4LDE0IEBAIHN0cnVj dCBnaGVzX2VkYWNfcHZ0IHsKIAljaGFyIG1zZ1s4MF07CiB9OwogCi1zdGF0aWMgTElTVF9IRUFE KGdoZXNfcmVnbGlzdCk7Ci1zdGF0aWMgREVGSU5FX01VVEVYKGdoZXNfZWRhY19sb2NrKTsKLXN0 YXRpYyBpbnQgZ2hlc19lZGFjX21jX251bTsKK3N0YXRpYyBzdHJ1Y3QgZ2hlc19lZGFjX3B2dCAq Z2hlc19wdnQ7CiAKKy8qCisgKiBTeW5jIHdpdGggb3RoZXIsIHBvdGVudGlhbGx5IGNvbmN1cnJl bnQgY2FsbGVycyBvZgorICogZ2hlc19lZGFjX3JlcG9ydF9tZW1fZXJyb3IoKS4gV2UgZG9uJ3Qg a25vdyB3aGF0IHRoZQorICogImludmVudGl2ZSIgZmlybXdhcmUgd291bGQgZG8uCisgKi8KK3N0 YXRpYyBERUZJTkVfU1BJTkxPQ0soZ2hlc19sb2NrKTsKIAogLyogTWVtb3J5IERldmljZSAtIFR5 cGUgMTcgb2YgU01CSU9TIHNwZWMgKi8KIHN0cnVjdCBtZW1kZXZfZG1pX2VudHJ5IHsKQEAgLTE2 OSwxOCArMTczLDI2IEBAIHZvaWQgZ2hlc19lZGFjX3JlcG9ydF9tZW1fZXJyb3Ioc3RydWN0IGdo ZXMgKmdoZXMsIGludCBzZXYsCiAJZW51bSBod19ldmVudF9tY19lcnJfdHlwZSB0eXBlOwogCXN0 cnVjdCBlZGFjX3Jhd19lcnJvcl9kZXNjICplOwogCXN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaTsK LQlzdHJ1Y3QgZ2hlc19lZGFjX3B2dCAqcHZ0ID0gTlVMTDsKKwlzdHJ1Y3QgZ2hlc19lZGFjX3B2 dCAqcHZ0ID0gZ2hlc19wdnQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAljaGFyICpwOwogCXU4 IGdyYWluX2JpdHM7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHB2dCwgJmdoZXNfcmVnbGlzdCwg bGlzdCkgewotCQlpZiAoZ2hlcyA9PSBwdnQtPmdoZXMpCi0JCQlicmVhazsKLQl9CiAJaWYgKCFw dnQpIHsKIAkJcHJfZXJyKCJJbnRlcm5hbCBlcnJvcjogQ2FuJ3QgZmluZCBFREFDIHN0cnVjdHVy ZVxuIik7CiAJCXJldHVybjsKIAl9CisKKwkvKgorCSAqIFdlIGNhbiBkbyB0aGUgbG9ja2luZyBi ZWxvdyBiZWNhdXNlIEdIRVMgZGVmZXJzIGVycm9yIHByb2Nlc3NpbmcKKwkgKiBmcm9tIE5NSSB0 byBJUlEgY29udGV4dC4gV2hlbmV2ZXIgdGhhdCBjaGFuZ2VzLCB3ZSdkIGF0IGxlYXN0CisJICog a25vdy4KKwkgKi8KKwlpZiAoV0FSTl9PTl9PTkNFKGluX25taSgpKSkKKwkJcmV0dXJuOworCisJ c3Bpbl9sb2NrX2lycXNhdmUoJmdoZXNfbG9jaywgZmxhZ3MpOworCiAJbWNpID0gcHZ0LT5tY2k7 CiAJZSA9ICZtY2ktPmVycm9yX2Rlc2M7CiAKQEAgLTM5OCw4ICs0MTAsOCBAQCB2b2lkIGdoZXNf ZWRhY19yZXBvcnRfbWVtX2Vycm9yKHN0cnVjdCBnaGVzICpnaGVzLCBpbnQgc2V2LAogCQkgICAg ICAgKGUtPnBhZ2VfZnJhbWVfbnVtYmVyIDw8IFBBR0VfU0hJRlQpIHwgZS0+b2Zmc2V0X2luX3Bh Z2UsCiAJCSAgICAgICBncmFpbl9iaXRzLCBlLT5zeW5kcm9tZSwgcHZ0LT5kZXRhaWxfbG9jYXRp b24pOwogCi0JLyogUmVwb3J0IHRoZSBlcnJvciB2aWEgRURBQyBBUEkgKi8KIAllZGFjX3Jhd19t Y19oYW5kbGVfZXJyb3IodHlwZSwgbWNpLCBlKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZn aGVzX2xvY2ssIGZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGdoZXNfZWRhY19yZXBvcnRf bWVtX2Vycm9yKTsKIApAQCAtNDA5LDkgKzQyMSwxNCBAQCBpbnQgZ2hlc19lZGFjX3JlZ2lzdGVy KHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaW50IHJjLCBudW1fZGlt bSA9IDA7CiAJc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpOwogCXN0cnVjdCBlZGFjX21jX2xheWVy IGxheWVyc1sxXTsKLQlzdHJ1Y3QgZ2hlc19lZGFjX3B2dCAqcHZ0OwogCXN0cnVjdCBnaGVzX2Vk YWNfZGltbV9maWxsIGRpbW1fZmlsbDsKIAorCS8qCisJICogV2UgaGF2ZSBvbmx5IG9uZSBsb2dp Y2FsIG1lbW9yeSBjb250cm9sbGVyIHRvIHdoaWNoIGFsbCBESU1NcyBiZWxvbmcuCisJICovCisJ aWYgKGdoZXNfcHZ0KQorCQlyZXR1cm4gMDsKKwogCS8qIEdldCB0aGUgbnVtYmVyIG9mIERJTU1z ICovCiAJZG1pX3dhbGsoZ2hlc19lZGFjX2NvdW50X2RpbW1zLCAmbnVtX2RpbW0pOwogCkBAIC00 MjUsMjYgKzQ0MiwxNyBAQCBpbnQgZ2hlc19lZGFjX3JlZ2lzdGVyKHN0cnVjdCBnaGVzICpnaGVz LCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJbGF5ZXJzWzBdLnNpemUgPSBudW1fZGltbTsKIAlsYXll cnNbMF0uaXNfdmlydF9jc3JvdyA9IHRydWU7CiAKLQkvKgotCSAqIFdlIG5lZWQgdG8gc2VyaWFs aXplIGVkYWNfbWNfYWxsb2MoKSBhbmQgZWRhY19tY19hZGRfbWMoKSwKLQkgKiB0byBhdm9pZCBk dXBsaWNhdGVkIG1lbW9yeSBjb250cm9sbGVyIG51bWJlcnMKLQkgKi8KLQltdXRleF9sb2NrKCZn aGVzX2VkYWNfbG9jayk7Ci0JbWNpID0gZWRhY19tY19hbGxvYyhnaGVzX2VkYWNfbWNfbnVtLCBB UlJBWV9TSVpFKGxheWVycyksIGxheWVycywKLQkJCSAgICBzaXplb2YoKnB2dCkpOworCW1jaSA9 IGVkYWNfbWNfYWxsb2MoMSwgQVJSQVlfU0laRShsYXllcnMpLCBsYXllcnMsIHNpemVvZihzdHJ1 Y3QgZ2hlc19lZGFjX3B2dCkpOwogCWlmICghbWNpKSB7CiAJCXByX2luZm8oIkNhbid0IGFsbG9j YXRlIG1lbW9yeSBmb3IgRURBQyBkYXRhXG4iKTsKLQkJbXV0ZXhfdW5sb2NrKCZnaGVzX2VkYWNf bG9jayk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCXB2dCA9IG1jaS0+cHZ0X2luZm87Ci0J bWVtc2V0KHB2dCwgMCwgc2l6ZW9mKCpwdnQpKTsKLQlsaXN0X2FkZF90YWlsKCZwdnQtPmxpc3Qs ICZnaGVzX3JlZ2xpc3QpOwotCXB2dC0+Z2hlcyA9IGdoZXM7Ci0JcHZ0LT5tY2kgID0gbWNpOwot CW1jaS0+cGRldiA9IGRldjsKKwlnaGVzX3B2dAk9IG1jaS0+cHZ0X2luZm87CisJZ2hlc19wdnQt PmdoZXMJPSBnaGVzOworCWdoZXNfcHZ0LT5tY2kJPSBtY2k7CiAKKwltY2ktPnBkZXYgPSBkZXY7 CiAJbWNpLT5tdHlwZV9jYXAgPSBNRU1fRkxBR19FTVBUWTsKIAltY2ktPmVkYWNfY3RsX2NhcCA9 IEVEQUNfRkxBR19OT05FOwogCW1jaS0+ZWRhY19jYXAgPSBFREFDX0ZMQUdfTk9ORTsKQEAgLTQ1 MiwzNiArNDYwLDIzIEBAIGludCBnaGVzX2VkYWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMs IHN0cnVjdCBkZXZpY2UgKmRldikKIAltY2ktPmN0bF9uYW1lID0gImdoZXNfZWRhYyI7CiAJbWNp LT5kZXZfbmFtZSA9ICJnaGVzIjsKIAotCWlmICghZ2hlc19lZGFjX21jX251bSkgewotCQlpZiAo IWZha2UpIHsKLQkJCXByX2luZm8oIlRoaXMgRURBQyBkcml2ZXIgcmVsaWVzIG9uIEJJT1MgdG8g ZW51bWVyYXRlIG1lbW9yeSBhbmQgZ2V0IGVycm9yIHJlcG9ydHMuXG4iKTsKLQkJCXByX2luZm8o IlVuZm9ydHVuYXRlbHksIG5vdCBhbGwgQklPU2VzIHJlZmxlY3QgdGhlIG1lbW9yeSBsYXlvdXQg Y29ycmVjdGx5LlxuIik7Ci0JCQlwcl9pbmZvKCJTbywgdGhlIGVuZCByZXN1bHQgb2YgdXNpbmcg dGhpcyBkcml2ZXIgdmFyaWVzIGZyb20gdmVuZG9yIHRvIHZlbmRvci5cbiIpOwotCQkJcHJfaW5m bygiSWYgeW91IGZpbmQgaW5jb3JyZWN0IHJlcG9ydHMsIHBsZWFzZSBjb250YWN0IHlvdXIgaGFy ZHdhcmUgdmVuZG9yXG4iKTsKLQkJCXByX2luZm8oInRvIGNvcnJlY3QgaXRzIEJJT1MuXG4iKTsK LQkJCXByX2luZm8oIlRoaXMgc3lzdGVtIGhhcyAlZCBESU1NIHNvY2tldHMuXG4iLAotCQkJCW51 bV9kaW1tKTsKLQkJfSBlbHNlIHsKLQkJCXByX2luZm8oIlRoaXMgc3lzdGVtIGhhcyBhIHZlcnkg Y3JhcHB5IEJJT1M6IEl0IGRvZXNuJ3QgZXZlbiBsaXN0IHRoZSBESU1NUy5cbiIpOwotCQkJcHJf aW5mbygiSXRzIFNNQklPUyBpbmZvIGlzIHdyb25nLiBJdCBpcyBkb3VidGZ1bCB0aGF0IHRoZSBl cnJvciByZXBvcnQgd291bGRcbiIpOwotCQkJcHJfaW5mbygid29yayBvbiBzdWNoIHN5c3RlbS4g VXNlIHRoaXMgZHJpdmVyIHdpdGggY2F1dGlvblxuIik7Ci0JCX0KKwlpZiAoIWZha2UpIHsKKwkJ cHJfaW5mbygiVGhpcyBFREFDIGRyaXZlciByZWxpZXMgb24gQklPUyB0byBlbnVtZXJhdGUgbWVt b3J5IGFuZCBnZXQgZXJyb3IgcmVwb3J0cy5cbiIpOworCQlwcl9pbmZvKCJVbmZvcnR1bmF0ZWx5 LCBub3QgYWxsIEJJT1NlcyByZWZsZWN0IHRoZSBtZW1vcnkgbGF5b3V0IGNvcnJlY3RseS5cbiIp OworCQlwcl9pbmZvKCJTbywgdGhlIGVuZCByZXN1bHQgb2YgdXNpbmcgdGhpcyBkcml2ZXIgdmFy aWVzIGZyb20gdmVuZG9yIHRvIHZlbmRvci5cbiIpOworCQlwcl9pbmZvKCJJZiB5b3UgZmluZCBp bmNvcnJlY3QgcmVwb3J0cywgcGxlYXNlIGNvbnRhY3QgeW91ciBoYXJkd2FyZSB2ZW5kb3JcbiIp OworCQlwcl9pbmZvKCJ0byBjb3JyZWN0IGl0cyBCSU9TLlxuIik7CisJCXByX2luZm8oIlRoaXMg c3lzdGVtIGhhcyAlZCBESU1NIHNvY2tldHMuXG4iLCBudW1fZGltbSk7CisJfSBlbHNlIHsKKwkJ cHJfaW5mbygiVGhpcyBzeXN0ZW0gaGFzIGEgdmVyeSBjcmFwcHkgQklPUzogSXQgZG9lc24ndCBl dmVuIGxpc3QgdGhlIERJTU1TLlxuIik7CisJCXByX2luZm8oIkl0cyBTTUJJT1MgaW5mbyBpcyB3 cm9uZy4gSXQgaXMgZG91YnRmdWwgdGhhdCB0aGUgZXJyb3IgcmVwb3J0IHdvdWxkXG4iKTsKKwkJ cHJfaW5mbygid29yayBvbiBzdWNoIHN5c3RlbS4gVXNlIHRoaXMgZHJpdmVyIHdpdGggY2F1dGlv blxuIik7CiAJfQogCiAJaWYgKCFmYWtlKSB7Ci0JCS8qCi0JCSAqIEZpbGwgRElNTSBpbmZvIGZy b20gRE1JIGZvciB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgIzAKLQkJICoKLQkJICogS2VlcCBpdCBp biBibGFuayBmb3IgdGhlIG90aGVyIG1lbW9yeSBjb250cm9sbGVycywgYXMKLQkJICogdGhlcmUn cyBubyByZWxpYWJsZSB3YXkgdG8gcHJvcGVybHkgY3JlZGl0IGVhY2ggRElNTSB0bwotCQkgKiB0 aGUgbWVtb3J5IGNvbnRyb2xsZXIsIGFzIGRpZmZlcmVudCBCSU9TZXMgZmlsbCB0aGUKLQkJICog RE1JIGJhbmsgbG9jYXRpb24gZmllbGRzIG9uIGRpZmZlcmVudCB3YXlzCi0JCSAqLwotCQlpZiAo IWdoZXNfZWRhY19tY19udW0pIHsKLQkJCWRpbW1fZmlsbC5jb3VudCA9IDA7Ci0JCQlkaW1tX2Zp bGwubWNpID0gbWNpOwotCQkJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1fZmls bCk7Ci0JCX0KKwkJZGltbV9maWxsLmNvdW50ID0gMDsKKwkJZGltbV9maWxsLm1jaSA9IG1jaTsK KwkJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1fZmlsbCk7CiAJfSBlbHNlIHsK IAkJc3RydWN0IGRpbW1faW5mbyAqZGltbSA9IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1j aS0+ZGltbXMsCiAJCQkJCQkgICAgICAgbWNpLT5uX2xheWVycywgMCwgMCwgMCk7CkBAIC00OTcs MTIgKzQ5Miw4IEBAIGludCBnaGVzX2VkYWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0 cnVjdCBkZXZpY2UgKmRldikKIAlpZiAocmMgPCAwKSB7CiAJCXByX2luZm8oIkNhbid0IHJlZ2lz dGVyIGF0IEVEQUMgY29yZVxuIik7CiAJCWVkYWNfbWNfZnJlZShtY2kpOwotCQltdXRleF91bmxv Y2soJmdoZXNfZWRhY19sb2NrKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQotCi0JZ2hlc19lZGFj X21jX251bSsrOwotCW11dGV4X3VubG9jaygmZ2hlc19lZGFjX2xvY2spOwogCXJldHVybiAwOwog fQogRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19lZGFjX3JlZ2lzdGVyKTsKQEAgLTUxMCwxNSArNTAx LDkgQEAgRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19lZGFjX3JlZ2lzdGVyKTsKIHZvaWQgZ2hlc19l ZGFjX3VucmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMpCiB7CiAJc3RydWN0IG1lbV9jdGxfaW5m byAqbWNpOwotCXN0cnVjdCBnaGVzX2VkYWNfcHZ0ICpwdnQsICp0bXA7Ci0KLQlsaXN0X2Zvcl9l YWNoX2VudHJ5X3NhZmUocHZ0LCB0bXAsICZnaGVzX3JlZ2xpc3QsIGxpc3QpIHsKLQkJaWYgKGdo ZXMgPT0gcHZ0LT5naGVzKSB7Ci0JCQltY2kgPSBwdnQtPm1jaTsKLQkJCWVkYWNfbWNfZGVsX21j KG1jaS0+cGRldik7Ci0JCQllZGFjX21jX2ZyZWUobWNpKTsKLQkJCWxpc3RfZGVsKCZwdnQtPmxp c3QpOwotCQl9Ci0JfQorCisJbWNpID0gZ2hlc19wdnQtPm1jaTsKKwllZGFjX21jX2RlbF9tYyht Y2ktPnBkZXYpOworCWVkYWNfbWNfZnJlZShtY2kpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ2hl c19lZGFjX3VucmVnaXN0ZXIpOwo=