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: <20170816174028.dqfvubjigvwtcbcy@pd.tnic> Date: Wed, 16 Aug 2017 19:40:28 +0200 To: "Kani, Toshimitsu" Cc: "linux-kernel@vger.kernel.org" , "rostedt@goodmis.org" , "mchehab@kernel.org" , "rjw@rjwysocki.net" , "tony.luck@intel.com" , "lenb@kernel.org" , "linux-acpi@vger.kernel.org" , "linux-edac@vger.kernel.org" List-ID: T24gV2VkLCBBdWcgMTYsIDIwMTcgYXQgMDU6Mjg6NTBQTSArMDAwMCwgS2FuaSwgVG9zaGltaXRz dSB3cm90ZToKPiBBc3N1bWluZyB0aGlzIGJpZyBzcGlubG9jayB3b3JrcywgeWVzLCB0aGlzIGFk ZHJlc3NlcyBteSBjb25jZXJuIHRoYXQKCllvdSBtZWFuLCBsZW5ndGh5IGxvY2tlZCBzZWN0aW9u LiBXZSBjYW4gYWx3YXlzIHN3aXRjaCB0byBvbi1zdGFjawpidWZmZXJzIGlmIHRoZXJlIGFyZSBp c3N1ZXMgb3IgZXZlbiB0byBzb21ldGhpbmcgbW9yZSBmYW5jeSBsaWtlCmdlbnBvb2wuCgo+IEkg d2lsbCB0ZXN0IHRoZSBwYXRjaCB3aXRoIGFuIFNDSSB3aGVuIEkgZ290IGEgY2hhbmNlLiAgSSB3 b24ndCBiZSBhYmxlCj4gdG8gdGVzdCBvdGhlciBub3RpZmljYXRpb24gdHlwZXMgb3IgcmFjZSBj b25kaXRpb25zLCB0aG91Z2guCgpUaGFua3MsIGhlcmUncyB0aGUgbGF0ZXN0IHZlcnNpb24gd2l0 aCB0aGUgYXRvbWljIHJlZ2lzdHJhdGlvbiB0b28uCi0tLQogZHJpdmVycy9lZGFjL2doZXNfZWRh Yy5jIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2doZXNfZWRh Yy5jCmluZGV4IDZmODBlYjY1YzI2Yy4uMzg2ZTA0YTdiZGEwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2VkYWMvZ2hlc19lZGFjLmMKKysrIGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jCkBAIC0yOCwx MCArMjgsMTUgQEAgc3RydWN0IGdoZXNfZWRhY19wdnQgewogCWNoYXIgbXNnWzgwXTsKIH07CiAK LXN0YXRpYyBMSVNUX0hFQUQoZ2hlc19yZWdsaXN0KTsKLXN0YXRpYyBERUZJTkVfTVVURVgoZ2hl c19lZGFjX2xvY2spOwotc3RhdGljIGludCBnaGVzX2VkYWNfbWNfbnVtOworc3RhdGljIGF0b21p Y190IGdoZXNfaW5pdCA9IEFUT01JQ19JTklUKDApOworc3RhdGljIHN0cnVjdCBnaGVzX2VkYWNf cHZ0ICpnaGVzX3B2dDsKIAorLyoKKyAqIFN5bmMgd2l0aCBvdGhlciwgcG90ZW50aWFsbHkgY29u Y3VycmVudCBjYWxsZXJzIG9mCisgKiBnaGVzX2VkYWNfcmVwb3J0X21lbV9lcnJvcigpLiBXZSBk b24ndCBrbm93IHdoYXQgdGhlCisgKiAiaW52ZW50aXZlIiBmaXJtd2FyZSB3b3VsZCBkby4KKyAq Lworc3RhdGljIERFRklORV9TUElOTE9DSyhnaGVzX2xvY2spOwogCiAvKiBNZW1vcnkgRGV2aWNl IC0gVHlwZSAxNyBvZiBTTUJJT1Mgc3BlYyAqLwogc3RydWN0IG1lbWRldl9kbWlfZW50cnkgewpA QCAtMTY5LDE4ICsxNzQsMjYgQEAgdm9pZCBnaGVzX2VkYWNfcmVwb3J0X21lbV9lcnJvcihzdHJ1 Y3QgZ2hlcyAqZ2hlcywgaW50IHNldiwKIAllbnVtIGh3X2V2ZW50X21jX2Vycl90eXBlIHR5cGU7 CiAJc3RydWN0IGVkYWNfcmF3X2Vycm9yX2Rlc2MgKmU7CiAJc3RydWN0IG1lbV9jdGxfaW5mbyAq bWNpOwotCXN0cnVjdCBnaGVzX2VkYWNfcHZ0ICpwdnQgPSBOVUxMOworCXN0cnVjdCBnaGVzX2Vk YWNfcHZ0ICpwdnQgPSBnaGVzX3B2dDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWNoYXIgKnA7 CiAJdTggZ3JhaW5fYml0czsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkocHZ0LCAmZ2hlc19yZWds aXN0LCBsaXN0KSB7Ci0JCWlmIChnaGVzID09IHB2dC0+Z2hlcykKLQkJCWJyZWFrOwotCX0KIAlp ZiAoIXB2dCkgewogCQlwcl9lcnIoIkludGVybmFsIGVycm9yOiBDYW4ndCBmaW5kIEVEQUMgc3Ry dWN0dXJlXG4iKTsKIAkJcmV0dXJuOwogCX0KKworCS8qCisJICogV2UgY2FuIGRvIHRoZSBsb2Nr aW5nIGJlbG93IGJlY2F1c2UgR0hFUyBkZWZlcnMgZXJyb3IgcHJvY2Vzc2luZworCSAqIGZyb20g Tk1JIHRvIElSUSBjb250ZXh0LiBXaGVuZXZlciB0aGF0IGNoYW5nZXMsIHdlJ2QgYXQgbGVhc3QK KwkgKiBrbm93LgorCSAqLworCWlmIChXQVJOX09OX09OQ0UoaW5fbm1pKCkpKQorCQlyZXR1cm47 CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZ2hlc19sb2NrLCBmbGFncyk7CisKIAltY2kgPSBwdnQt Pm1jaTsKIAllID0gJm1jaS0+ZXJyb3JfZGVzYzsKIApAQCAtMzk4LDggKzQxMSw4IEBAIHZvaWQg Z2hlc19lZGFjX3JlcG9ydF9tZW1fZXJyb3Ioc3RydWN0IGdoZXMgKmdoZXMsIGludCBzZXYsCiAJ CSAgICAgICAoZS0+cGFnZV9mcmFtZV9udW1iZXIgPDwgUEFHRV9TSElGVCkgfCBlLT5vZmZzZXRf aW5fcGFnZSwKIAkJICAgICAgIGdyYWluX2JpdHMsIGUtPnN5bmRyb21lLCBwdnQtPmRldGFpbF9s b2NhdGlvbik7CiAKLQkvKiBSZXBvcnQgdGhlIGVycm9yIHZpYSBFREFDIEFQSSAqLwogCWVkYWNf cmF3X21jX2hhbmRsZV9lcnJvcih0eXBlLCBtY2ksIGUpOworCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmdoZXNfbG9jaywgZmxhZ3MpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19lZGFjX3Jl cG9ydF9tZW1fZXJyb3IpOwogCkBAIC00MDksOSArNDIyLDE0IEBAIGludCBnaGVzX2VkYWNfcmVn aXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZpY2UgKmRldikKIAlpbnQgcmMsIG51 bV9kaW1tID0gMDsKIAlzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2k7CiAJc3RydWN0IGVkYWNfbWNf bGF5ZXIgbGF5ZXJzWzFdOwotCXN0cnVjdCBnaGVzX2VkYWNfcHZ0ICpwdnQ7CiAJc3RydWN0IGdo ZXNfZWRhY19kaW1tX2ZpbGwgZGltbV9maWxsOwogCisJLyoKKwkgKiBXZSBoYXZlIG9ubHkgb25l IGxvZ2ljYWwgbWVtb3J5IGNvbnRyb2xsZXIgdG8gd2hpY2ggYWxsIERJTU1zIGJlbG9uZy4KKwkg Ki8KKwlpZiAoYXRvbWljX2luY19yZXR1cm4oJmdoZXNfaW5pdCkgPiAxKQorCQlyZXR1cm4gMDsK KwogCS8qIEdldCB0aGUgbnVtYmVyIG9mIERJTU1zICovCiAJZG1pX3dhbGsoZ2hlc19lZGFjX2Nv dW50X2RpbW1zLCAmbnVtX2RpbW0pOwogCkBAIC00MjUsMjYgKzQ0MywxNyBAQCBpbnQgZ2hlc19l ZGFjX3JlZ2lzdGVyKHN0cnVjdCBnaGVzICpnaGVzLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJbGF5 ZXJzWzBdLnNpemUgPSBudW1fZGltbTsKIAlsYXllcnNbMF0uaXNfdmlydF9jc3JvdyA9IHRydWU7 CiAKLQkvKgotCSAqIFdlIG5lZWQgdG8gc2VyaWFsaXplIGVkYWNfbWNfYWxsb2MoKSBhbmQgZWRh Y19tY19hZGRfbWMoKSwKLQkgKiB0byBhdm9pZCBkdXBsaWNhdGVkIG1lbW9yeSBjb250cm9sbGVy IG51bWJlcnMKLQkgKi8KLQltdXRleF9sb2NrKCZnaGVzX2VkYWNfbG9jayk7Ci0JbWNpID0gZWRh Y19tY19hbGxvYyhnaGVzX2VkYWNfbWNfbnVtLCBBUlJBWV9TSVpFKGxheWVycyksIGxheWVycywK LQkJCSAgICBzaXplb2YoKnB2dCkpOworCW1jaSA9IGVkYWNfbWNfYWxsb2MoMSwgQVJSQVlfU0la RShsYXllcnMpLCBsYXllcnMsIHNpemVvZihzdHJ1Y3QgZ2hlc19lZGFjX3B2dCkpOwogCWlmICgh bWNpKSB7CiAJCXByX2luZm8oIkNhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgRURBQyBkYXRhXG4i KTsKLQkJbXV0ZXhfdW5sb2NrKCZnaGVzX2VkYWNfbG9jayk7CiAJCXJldHVybiAtRU5PTUVNOwog CX0KIAotCXB2dCA9IG1jaS0+cHZ0X2luZm87Ci0JbWVtc2V0KHB2dCwgMCwgc2l6ZW9mKCpwdnQp KTsKLQlsaXN0X2FkZF90YWlsKCZwdnQtPmxpc3QsICZnaGVzX3JlZ2xpc3QpOwotCXB2dC0+Z2hl cyA9IGdoZXM7Ci0JcHZ0LT5tY2kgID0gbWNpOwotCW1jaS0+cGRldiA9IGRldjsKKwlnaGVzX3B2 dAk9IG1jaS0+cHZ0X2luZm87CisJZ2hlc19wdnQtPmdoZXMJPSBnaGVzOworCWdoZXNfcHZ0LT5t Y2kJPSBtY2k7CiAKKwltY2ktPnBkZXYgPSBkZXY7CiAJbWNpLT5tdHlwZV9jYXAgPSBNRU1fRkxB R19FTVBUWTsKIAltY2ktPmVkYWNfY3RsX2NhcCA9IEVEQUNfRkxBR19OT05FOwogCW1jaS0+ZWRh Y19jYXAgPSBFREFDX0ZMQUdfTk9ORTsKQEAgLTQ1MiwzNiArNDYxLDIzIEBAIGludCBnaGVzX2Vk YWNfcmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZpY2UgKmRldikKIAltY2kt PmN0bF9uYW1lID0gImdoZXNfZWRhYyI7CiAJbWNpLT5kZXZfbmFtZSA9ICJnaGVzIjsKIAotCWlm ICghZ2hlc19lZGFjX21jX251bSkgewotCQlpZiAoIWZha2UpIHsKLQkJCXByX2luZm8oIlRoaXMg RURBQyBkcml2ZXIgcmVsaWVzIG9uIEJJT1MgdG8gZW51bWVyYXRlIG1lbW9yeSBhbmQgZ2V0IGVy cm9yIHJlcG9ydHMuXG4iKTsKLQkJCXByX2luZm8oIlVuZm9ydHVuYXRlbHksIG5vdCBhbGwgQklP U2VzIHJlZmxlY3QgdGhlIG1lbW9yeSBsYXlvdXQgY29ycmVjdGx5LlxuIik7Ci0JCQlwcl9pbmZv KCJTbywgdGhlIGVuZCByZXN1bHQgb2YgdXNpbmcgdGhpcyBkcml2ZXIgdmFyaWVzIGZyb20gdmVu ZG9yIHRvIHZlbmRvci5cbiIpOwotCQkJcHJfaW5mbygiSWYgeW91IGZpbmQgaW5jb3JyZWN0IHJl cG9ydHMsIHBsZWFzZSBjb250YWN0IHlvdXIgaGFyZHdhcmUgdmVuZG9yXG4iKTsKLQkJCXByX2lu Zm8oInRvIGNvcnJlY3QgaXRzIEJJT1MuXG4iKTsKLQkJCXByX2luZm8oIlRoaXMgc3lzdGVtIGhh cyAlZCBESU1NIHNvY2tldHMuXG4iLAotCQkJCW51bV9kaW1tKTsKLQkJfSBlbHNlIHsKLQkJCXBy X2luZm8oIlRoaXMgc3lzdGVtIGhhcyBhIHZlcnkgY3JhcHB5IEJJT1M6IEl0IGRvZXNuJ3QgZXZl biBsaXN0IHRoZSBESU1NUy5cbiIpOwotCQkJcHJfaW5mbygiSXRzIFNNQklPUyBpbmZvIGlzIHdy b25nLiBJdCBpcyBkb3VidGZ1bCB0aGF0IHRoZSBlcnJvciByZXBvcnQgd291bGRcbiIpOwotCQkJ cHJfaW5mbygid29yayBvbiBzdWNoIHN5c3RlbS4gVXNlIHRoaXMgZHJpdmVyIHdpdGggY2F1dGlv blxuIik7Ci0JCX0KKwlpZiAoIWZha2UpIHsKKwkJcHJfaW5mbygiVGhpcyBFREFDIGRyaXZlciBy ZWxpZXMgb24gQklPUyB0byBlbnVtZXJhdGUgbWVtb3J5IGFuZCBnZXQgZXJyb3IgcmVwb3J0cy5c biIpOworCQlwcl9pbmZvKCJVbmZvcnR1bmF0ZWx5LCBub3QgYWxsIEJJT1NlcyByZWZsZWN0IHRo ZSBtZW1vcnkgbGF5b3V0IGNvcnJlY3RseS5cbiIpOworCQlwcl9pbmZvKCJTbywgdGhlIGVuZCBy ZXN1bHQgb2YgdXNpbmcgdGhpcyBkcml2ZXIgdmFyaWVzIGZyb20gdmVuZG9yIHRvIHZlbmRvci5c biIpOworCQlwcl9pbmZvKCJJZiB5b3UgZmluZCBpbmNvcnJlY3QgcmVwb3J0cywgcGxlYXNlIGNv bnRhY3QgeW91ciBoYXJkd2FyZSB2ZW5kb3JcbiIpOworCQlwcl9pbmZvKCJ0byBjb3JyZWN0IGl0 cyBCSU9TLlxuIik7CisJCXByX2luZm8oIlRoaXMgc3lzdGVtIGhhcyAlZCBESU1NIHNvY2tldHMu XG4iLCBudW1fZGltbSk7CisJfSBlbHNlIHsKKwkJcHJfaW5mbygiVGhpcyBzeXN0ZW0gaGFzIGEg dmVyeSBjcmFwcHkgQklPUzogSXQgZG9lc24ndCBldmVuIGxpc3QgdGhlIERJTU1TLlxuIik7CisJ CXByX2luZm8oIkl0cyBTTUJJT1MgaW5mbyBpcyB3cm9uZy4gSXQgaXMgZG91YnRmdWwgdGhhdCB0 aGUgZXJyb3IgcmVwb3J0IHdvdWxkXG4iKTsKKwkJcHJfaW5mbygid29yayBvbiBzdWNoIHN5c3Rl bS4gVXNlIHRoaXMgZHJpdmVyIHdpdGggY2F1dGlvblxuIik7CiAJfQogCiAJaWYgKCFmYWtlKSB7 Ci0JCS8qCi0JCSAqIEZpbGwgRElNTSBpbmZvIGZyb20gRE1JIGZvciB0aGUgbWVtb3J5IGNvbnRy b2xsZXIgIzAKLQkJICoKLQkJICogS2VlcCBpdCBpbiBibGFuayBmb3IgdGhlIG90aGVyIG1lbW9y eSBjb250cm9sbGVycywgYXMKLQkJICogdGhlcmUncyBubyByZWxpYWJsZSB3YXkgdG8gcHJvcGVy bHkgY3JlZGl0IGVhY2ggRElNTSB0bwotCQkgKiB0aGUgbWVtb3J5IGNvbnRyb2xsZXIsIGFzIGRp ZmZlcmVudCBCSU9TZXMgZmlsbCB0aGUKLQkJICogRE1JIGJhbmsgbG9jYXRpb24gZmllbGRzIG9u IGRpZmZlcmVudCB3YXlzCi0JCSAqLwotCQlpZiAoIWdoZXNfZWRhY19tY19udW0pIHsKLQkJCWRp bW1fZmlsbC5jb3VudCA9IDA7Ci0JCQlkaW1tX2ZpbGwubWNpID0gbWNpOwotCQkJZG1pX3dhbGso Z2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1fZmlsbCk7Ci0JCX0KKwkJZGltbV9maWxsLmNvdW50 ID0gMDsKKwkJZGltbV9maWxsLm1jaSA9IG1jaTsKKwkJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRl Y29kZSwgJmRpbW1fZmlsbCk7CiAJfSBlbHNlIHsKIAkJc3RydWN0IGRpbW1faW5mbyAqZGltbSA9 IEVEQUNfRElNTV9QVFIobWNpLT5sYXllcnMsIG1jaS0+ZGltbXMsCiAJCQkJCQkgICAgICAgbWNp LT5uX2xheWVycywgMCwgMCwgMCk7CkBAIC00OTcsMTIgKzQ5Myw4IEBAIGludCBnaGVzX2VkYWNf cmVnaXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZpY2UgKmRldikKIAlpZiAocmMg PCAwKSB7CiAJCXByX2luZm8oIkNhbid0IHJlZ2lzdGVyIGF0IEVEQUMgY29yZVxuIik7CiAJCWVk YWNfbWNfZnJlZShtY2kpOwotCQltdXRleF91bmxvY2soJmdoZXNfZWRhY19sb2NrKTsKIAkJcmV0 dXJuIC1FTk9ERVY7CiAJfQotCi0JZ2hlc19lZGFjX21jX251bSsrOwotCW11dGV4X3VubG9jaygm Z2hlc19lZGFjX2xvY2spOwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19l ZGFjX3JlZ2lzdGVyKTsKQEAgLTUxMCwxNSArNTAyLDkgQEAgRVhQT1JUX1NZTUJPTF9HUEwoZ2hl c19lZGFjX3JlZ2lzdGVyKTsKIHZvaWQgZ2hlc19lZGFjX3VucmVnaXN0ZXIoc3RydWN0IGdoZXMg KmdoZXMpCiB7CiAJc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpOwotCXN0cnVjdCBnaGVzX2VkYWNf cHZ0ICpwdnQsICp0bXA7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHZ0LCB0bXAsICZn aGVzX3JlZ2xpc3QsIGxpc3QpIHsKLQkJaWYgKGdoZXMgPT0gcHZ0LT5naGVzKSB7Ci0JCQltY2kg PSBwdnQtPm1jaTsKLQkJCWVkYWNfbWNfZGVsX21jKG1jaS0+cGRldik7Ci0JCQllZGFjX21jX2Zy ZWUobWNpKTsKLQkJCWxpc3RfZGVsKCZwdnQtPmxpc3QpOwotCQl9Ci0JfQorCisJbWNpID0gZ2hl c19wdnQtPm1jaTsKKwllZGFjX21jX2RlbF9tYyhtY2ktPnBkZXYpOworCWVkYWNfbWNfZnJlZSht Y2kpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19lZGFjX3VucmVnaXN0ZXIpOwo=