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: Steven Rostedt Message-Id: <20170816095901.33b0d4c2@gandalf.local.home> Date: Wed, 16 Aug 2017 09:59:01 -0400 To: Borislav Petkov Cc: "Luck, Tony" , "Kani, Toshimitsu" , "rjw@rjwysocki.net" , "lenb@kernel.org" , "mchehab@kernel.org" , "linux-kernel@vger.kernel.org" , "linux-acpi@vger.kernel.org" , "linux-edac@vger.kernel.org" List-ID: T24gV2VkLCAxNiBBdWcgMjAxNyAxMDoyOTozMSArMDIwMApCb3Jpc2xhdiBQZXRrb3YgPGJwQGFs aWVuOC5kZT4gd3JvdGU6CgoKPiAtLS0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL2doZXNf ZWRhYy5jIGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jCj4gaW5kZXggNmY4MGViNjVjMjZjLi5h MjJmYWJlZjQ3OTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jCj4gKysr IGIvZHJpdmVycy9lZGFjL2doZXNfZWRhYy5jCj4gQEAgLTI4LDEwICsyOCwxNCBAQCBzdHJ1Y3Qg Z2hlc19lZGFjX3B2dCB7Cj4gIAljaGFyIG1zZ1s4MF07Cj4gIH07Cj4gIAo+IC1zdGF0aWMgTElT VF9IRUFEKGdoZXNfcmVnbGlzdCk7Cj4gLXN0YXRpYyBERUZJTkVfTVVURVgoZ2hlc19lZGFjX2xv Y2spOwo+IC1zdGF0aWMgaW50IGdoZXNfZWRhY19tY19udW07Cj4gK3N0YXRpYyBzdHJ1Y3QgZ2hl c19lZGFjX3B2dCAqZ2hlc19wdnQ7Cj4gIAo+ICsvKgo+ICsgKiBTeW5jIHdpdGggb3RoZXIsIHBv dGVudGlhbGx5IGNvbmN1cnJlbnQgY2FsbGVycyBvZgo+ICsgKiBnaGVzX2VkYWNfcmVwb3J0X21l bV9lcnJvcigpLiBXZSBkb24ndCBrbm93IHdoYXQgdGhlCj4gKyAqICJpbnZlbnRpdmUiIGZpcm13 YXJlIHdvdWxkIGRvLgo+ICsgKi8KPiArc3RhdGljIERFRklORV9TUElOTE9DSyhnaGVzX2xvY2sp Owo+ICAKPiAgLyogTWVtb3J5IERldmljZSAtIFR5cGUgMTcgb2YgU01CSU9TIHNwZWMgKi8KPiAg c3RydWN0IG1lbWRldl9kbWlfZW50cnkgewo+IEBAIC0xNjksMTQgKzE3MywxMSBAQCB2b2lkIGdo ZXNfZWRhY19yZXBvcnRfbWVtX2Vycm9yKHN0cnVjdCBnaGVzICpnaGVzLCBpbnQgc2V2LAo+ICAJ ZW51bSBod19ldmVudF9tY19lcnJfdHlwZSB0eXBlOwo+ICAJc3RydWN0IGVkYWNfcmF3X2Vycm9y X2Rlc2MgKmU7Cj4gIAlzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2k7Cj4gLQlzdHJ1Y3QgZ2hlc19l ZGFjX3B2dCAqcHZ0ID0gTlVMTDsKPiArCXN0cnVjdCBnaGVzX2VkYWNfcHZ0ICpwdnQgPSBnaGVz X3B2dDsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAljaGFyICpwOwo+ICAJdTggZ3JhaW5f Yml0czsKPiAgCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHB2dCwgJmdoZXNfcmVnbGlzdCwgbGlz dCkgewo+IC0JCWlmIChnaGVzID09IHB2dC0+Z2hlcykKPiAtCQkJYnJlYWs7Cj4gLQl9Cj4gIAlp ZiAoIXB2dCkgewo+ICAJCXByX2VycigiSW50ZXJuYWwgZXJyb3I6IENhbid0IGZpbmQgRURBQyBz dHJ1Y3R1cmVcbiIpOwo+ICAJCXJldHVybjsKPiBAQCAtMzk4LDggKzM5OSwxNiBAQCB2b2lkIGdo ZXNfZWRhY19yZXBvcnRfbWVtX2Vycm9yKHN0cnVjdCBnaGVzICpnaGVzLCBpbnQgc2V2LAo+ICAJ CSAgICAgICAoZS0+cGFnZV9mcmFtZV9udW1iZXIgPDwgUEFHRV9TSElGVCkgfCBlLT5vZmZzZXRf aW5fcGFnZSwKPiAgCQkgICAgICAgZ3JhaW5fYml0cywgZS0+c3luZHJvbWUsIHB2dC0+ZGV0YWls X2xvY2F0aW9uKTsKPiAgCj4gLQkvKiBSZXBvcnQgdGhlIGVycm9yIHZpYSBFREFDIEFQSSAqLwo+ ICsJLyoKPiArCSAqIFdlIGNhbiBkbyB0aGUgbG9ja2luZyBiZWxvdyBiZWNhdXNlIEdIRVMgZGVm ZXJzIGVycm9yIHByb2Nlc3NpbmcKPiArCSAqIGZyb20gTk1JIHRvIElSUSBjb250ZXh0LiBXaGVu ZXZlciB0aGF0IGNoYW5nZXMsIHdlJ2QgYXQgbGVhc3QKPiArCSAqIGtub3cuCj4gKwkgKi8KPiAr CVdBUk5fT05fT05DRShpbl9ubWkoKSk7CgpTaG91bGQgdGhlIGFib3ZlIGJlOgoKCWlmIChXQVJO X09OX09OQ0UoaW5fbm1pKCkpKQoJCXJldHVybjsKClRvIHByZXZlbnQgYSBkZWFkbG9jaz8gT3Ig ZG8gd2Ugbm90IGNhcmU/Cgo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZnaGVzX2xvY2ssIGZs YWdzKTsKPiAgCWVkYWNfcmF3X21jX2hhbmRsZV9lcnJvcih0eXBlLCBtY2ksIGUpOwo+ICsJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZ2hlc19sb2NrLCBmbGFncyk7CgpUaGUgYWJvdmUgbG9va3Mg ZmluZSwgYXMgbG9uZyBhcyB0aGVyZSdzIG5vdGhpbmcgYmVmb3JlIGl0IHRoYXQgbmVlZHMKc3lu Y2hyb25pemF0aW9uLgoKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChnaGVzX2VkYWNfcmVwb3J0 X21lbV9lcnJvcik7Cj4gIAo+IEBAIC00MDksOSArNDE4LDE0IEBAIGludCBnaGVzX2VkYWNfcmVn aXN0ZXIoc3RydWN0IGdoZXMgKmdoZXMsIHN0cnVjdCBkZXZpY2UgKmRldikKPiAgCWludCByYywg bnVtX2RpbW0gPSAwOwo+ICAJc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpOwo+ICAJc3RydWN0IGVk YWNfbWNfbGF5ZXIgbGF5ZXJzWzFdOwo+IC0Jc3RydWN0IGdoZXNfZWRhY19wdnQgKnB2dDsKPiAg CXN0cnVjdCBnaGVzX2VkYWNfZGltbV9maWxsIGRpbW1fZmlsbDsKPiAgCj4gKwkvKgo+ICsJICog V2UgaGF2ZSBvbmx5IG9uZSBsb2dpY2FsIG1lbW9yeSBjb250cm9sbGVyIHRvIHdoaWNoIGFsbCBE SU1NcyBiZWxvbmcuCj4gKwkgKi8KPiArCWlmIChnaGVzX3B2dCkKPiArCQlyZXR1cm4gMDsKCldo YXQncyB0aGUgbGlrZWxpaG9vZCBvZiB0d28gY2FsbHMgdG8gZ2hlc19lZGFjX3JlZ2lzdGVyIGJl aW5nIGRvbmUKc2ltdWx0YW5lb3VzbHk/ICBCZWNhdXNlIHR3byBjYWxscyBhdCB0aGUgc2FtZSB0 aW1lIHdpbGwgZ2V0IHBhc3QgdGhpcy4KCi0tIFN0ZXZlCgoKPiArCj4gIAkvKiBHZXQgdGhlIG51 bWJlciBvZiBESU1NcyAqLwo+ICAJZG1pX3dhbGsoZ2hlc19lZGFjX2NvdW50X2RpbW1zLCAmbnVt X2RpbW0pOwo+ICAKPiBAQCAtNDI1LDI2ICs0MzksMTcgQEAgaW50IGdoZXNfZWRhY19yZWdpc3Rl cihzdHJ1Y3QgZ2hlcyAqZ2hlcywgc3RydWN0IGRldmljZSAqZGV2KQo+ICAJbGF5ZXJzWzBdLnNp emUgPSBudW1fZGltbTsKPiAgCWxheWVyc1swXS5pc192aXJ0X2Nzcm93ID0gdHJ1ZTsKPiAgCj4g LQkvKgo+IC0JICogV2UgbmVlZCB0byBzZXJpYWxpemUgZWRhY19tY19hbGxvYygpIGFuZCBlZGFj X21jX2FkZF9tYygpLAo+IC0JICogdG8gYXZvaWQgZHVwbGljYXRlZCBtZW1vcnkgY29udHJvbGxl ciBudW1iZXJzCj4gLQkgKi8KPiAtCW11dGV4X2xvY2soJmdoZXNfZWRhY19sb2NrKTsKPiAtCW1j aSA9IGVkYWNfbWNfYWxsb2MoZ2hlc19lZGFjX21jX251bSwgQVJSQVlfU0laRShsYXllcnMpLCBs YXllcnMsCj4gLQkJCSAgICBzaXplb2YoKnB2dCkpOwo+ICsJbWNpID0gZWRhY19tY19hbGxvYygx LCBBUlJBWV9TSVpFKGxheWVycyksIGxheWVycywgc2l6ZW9mKHN0cnVjdCBnaGVzX2VkYWNfcHZ0 KSk7Cj4gIAlpZiAoIW1jaSkgewo+ICAJCXByX2luZm8oIkNhbid0IGFsbG9jYXRlIG1lbW9yeSBm b3IgRURBQyBkYXRhXG4iKTsKPiAtCQltdXRleF91bmxvY2soJmdoZXNfZWRhY19sb2NrKTsKPiAg CQlyZXR1cm4gLUVOT01FTTsKPiAgCX0KPiAgCj4gLQlwdnQgPSBtY2ktPnB2dF9pbmZvOwo+IC0J bWVtc2V0KHB2dCwgMCwgc2l6ZW9mKCpwdnQpKTsKPiAtCWxpc3RfYWRkX3RhaWwoJnB2dC0+bGlz dCwgJmdoZXNfcmVnbGlzdCk7Cj4gLQlwdnQtPmdoZXMgPSBnaGVzOwo+IC0JcHZ0LT5tY2kgID0g bWNpOwo+IC0JbWNpLT5wZGV2ID0gZGV2Owo+ICsJZ2hlc19wdnQJPSBtY2ktPnB2dF9pbmZvOwo+ ICsJZ2hlc19wdnQtPmdoZXMJPSBnaGVzOwo+ICsJZ2hlc19wdnQtPm1jaQk9IG1jaTsKPiAgCj4g KwltY2ktPnBkZXYgPSBkZXY7Cj4gIAltY2ktPm10eXBlX2NhcCA9IE1FTV9GTEFHX0VNUFRZOwo+ ICAJbWNpLT5lZGFjX2N0bF9jYXAgPSBFREFDX0ZMQUdfTk9ORTsKPiAgCW1jaS0+ZWRhY19jYXAg PSBFREFDX0ZMQUdfTk9ORTsKPiBAQCAtNDUyLDM2ICs0NTcsMjMgQEAgaW50IGdoZXNfZWRhY19y ZWdpc3RlcihzdHJ1Y3QgZ2hlcyAqZ2hlcywgc3RydWN0IGRldmljZSAqZGV2KQo+ICAJbWNpLT5j dGxfbmFtZSA9ICJnaGVzX2VkYWMiOwo+ICAJbWNpLT5kZXZfbmFtZSA9ICJnaGVzIjsKPiAgCj4g LQlpZiAoIWdoZXNfZWRhY19tY19udW0pIHsKPiAtCQlpZiAoIWZha2UpIHsKPiAtCQkJcHJfaW5m bygiVGhpcyBFREFDIGRyaXZlciByZWxpZXMgb24gQklPUyB0byBlbnVtZXJhdGUgbWVtb3J5IGFu ZCBnZXQgZXJyb3IgcmVwb3J0cy5cbiIpOwo+IC0JCQlwcl9pbmZvKCJVbmZvcnR1bmF0ZWx5LCBu b3QgYWxsIEJJT1NlcyByZWZsZWN0IHRoZSBtZW1vcnkgbGF5b3V0IGNvcnJlY3RseS5cbiIpOwo+ IC0JCQlwcl9pbmZvKCJTbywgdGhlIGVuZCByZXN1bHQgb2YgdXNpbmcgdGhpcyBkcml2ZXIgdmFy aWVzIGZyb20gdmVuZG9yIHRvIHZlbmRvci5cbiIpOwo+IC0JCQlwcl9pbmZvKCJJZiB5b3UgZmlu ZCBpbmNvcnJlY3QgcmVwb3J0cywgcGxlYXNlIGNvbnRhY3QgeW91ciBoYXJkd2FyZSB2ZW5kb3Jc biIpOwo+IC0JCQlwcl9pbmZvKCJ0byBjb3JyZWN0IGl0cyBCSU9TLlxuIik7Cj4gLQkJCXByX2lu Zm8oIlRoaXMgc3lzdGVtIGhhcyAlZCBESU1NIHNvY2tldHMuXG4iLAo+IC0JCQkJbnVtX2RpbW0p Owo+IC0JCX0gZWxzZSB7Cj4gLQkJCXByX2luZm8oIlRoaXMgc3lzdGVtIGhhcyBhIHZlcnkgY3Jh cHB5IEJJT1M6IEl0IGRvZXNuJ3QgZXZlbiBsaXN0IHRoZSBESU1NUy5cbiIpOwo+IC0JCQlwcl9p bmZvKCJJdHMgU01CSU9TIGluZm8gaXMgd3JvbmcuIEl0IGlzIGRvdWJ0ZnVsIHRoYXQgdGhlIGVy cm9yIHJlcG9ydCB3b3VsZFxuIik7Cj4gLQkJCXByX2luZm8oIndvcmsgb24gc3VjaCBzeXN0ZW0u IFVzZSB0aGlzIGRyaXZlciB3aXRoIGNhdXRpb25cbiIpOwo+IC0JCX0KPiArCWlmICghZmFrZSkg ewo+ICsJCXByX2luZm8oIlRoaXMgRURBQyBkcml2ZXIgcmVsaWVzIG9uIEJJT1MgdG8gZW51bWVy YXRlIG1lbW9yeSBhbmQgZ2V0IGVycm9yIHJlcG9ydHMuXG4iKTsKPiArCQlwcl9pbmZvKCJVbmZv cnR1bmF0ZWx5LCBub3QgYWxsIEJJT1NlcyByZWZsZWN0IHRoZSBtZW1vcnkgbGF5b3V0IGNvcnJl Y3RseS5cbiIpOwo+ICsJCXByX2luZm8oIlNvLCB0aGUgZW5kIHJlc3VsdCBvZiB1c2luZyB0aGlz IGRyaXZlciB2YXJpZXMgZnJvbSB2ZW5kb3IgdG8gdmVuZG9yLlxuIik7Cj4gKwkJcHJfaW5mbygi SWYgeW91IGZpbmQgaW5jb3JyZWN0IHJlcG9ydHMsIHBsZWFzZSBjb250YWN0IHlvdXIgaGFyZHdh cmUgdmVuZG9yXG4iKTsKPiArCQlwcl9pbmZvKCJ0byBjb3JyZWN0IGl0cyBCSU9TLlxuIik7Cj4g KwkJcHJfaW5mbygiVGhpcyBzeXN0ZW0gaGFzICVkIERJTU0gc29ja2V0cy5cbiIsIG51bV9kaW1t KTsKPiArCX0gZWxzZSB7Cj4gKwkJcHJfaW5mbygiVGhpcyBzeXN0ZW0gaGFzIGEgdmVyeSBjcmFw cHkgQklPUzogSXQgZG9lc24ndCBldmVuIGxpc3QgdGhlIERJTU1TLlxuIik7Cj4gKwkJcHJfaW5m bygiSXRzIFNNQklPUyBpbmZvIGlzIHdyb25nLiBJdCBpcyBkb3VidGZ1bCB0aGF0IHRoZSBlcnJv ciByZXBvcnQgd291bGRcbiIpOwo+ICsJCXByX2luZm8oIndvcmsgb24gc3VjaCBzeXN0ZW0uIFVz ZSB0aGlzIGRyaXZlciB3aXRoIGNhdXRpb25cbiIpOwo+ICAJfQo+ICAKPiAgCWlmICghZmFrZSkg ewo+IC0JCS8qCj4gLQkJICogRmlsbCBESU1NIGluZm8gZnJvbSBETUkgZm9yIHRoZSBtZW1vcnkg Y29udHJvbGxlciAjMAo+IC0JCSAqCj4gLQkJICogS2VlcCBpdCBpbiBibGFuayBmb3IgdGhlIG90 aGVyIG1lbW9yeSBjb250cm9sbGVycywgYXMKPiAtCQkgKiB0aGVyZSdzIG5vIHJlbGlhYmxlIHdh eSB0byBwcm9wZXJseSBjcmVkaXQgZWFjaCBESU1NIHRvCj4gLQkJICogdGhlIG1lbW9yeSBjb250 cm9sbGVyLCBhcyBkaWZmZXJlbnQgQklPU2VzIGZpbGwgdGhlCj4gLQkJICogRE1JIGJhbmsgbG9j YXRpb24gZmllbGRzIG9uIGRpZmZlcmVudCB3YXlzCj4gLQkJICovCj4gLQkJaWYgKCFnaGVzX2Vk YWNfbWNfbnVtKSB7Cj4gLQkJCWRpbW1fZmlsbC5jb3VudCA9IDA7Cj4gLQkJCWRpbW1fZmlsbC5t Y2kgPSBtY2k7Cj4gLQkJCWRtaV93YWxrKGdoZXNfZWRhY19kbWlkZWNvZGUsICZkaW1tX2ZpbGwp Owo+IC0JCX0KPiArCQlkaW1tX2ZpbGwuY291bnQgPSAwOwo+ICsJCWRpbW1fZmlsbC5tY2kgPSBt Y2k7Cj4gKwkJZG1pX3dhbGsoZ2hlc19lZGFjX2RtaWRlY29kZSwgJmRpbW1fZmlsbCk7Cj4gIAl9 IGVsc2Ugewo+ICAJCXN0cnVjdCBkaW1tX2luZm8gKmRpbW0gPSBFREFDX0RJTU1fUFRSKG1jaS0+ bGF5ZXJzLCBtY2ktPmRpbW1zLAo+ICAJCQkJCQkgICAgICAgbWNpLT5uX2xheWVycywgMCwgMCwg MCk7Cj4gQEAgLTQ5NywxMiArNDg5LDggQEAgaW50IGdoZXNfZWRhY19yZWdpc3RlcihzdHJ1Y3Qg Z2hlcyAqZ2hlcywgc3RydWN0IGRldmljZSAqZGV2KQo+ICAJaWYgKHJjIDwgMCkgewo+ICAJCXBy X2luZm8oIkNhbid0IHJlZ2lzdGVyIGF0IEVEQUMgY29yZVxuIik7Cj4gIAkJZWRhY19tY19mcmVl KG1jaSk7Cj4gLQkJbXV0ZXhfdW5sb2NrKCZnaGVzX2VkYWNfbG9jayk7Cj4gIAkJcmV0dXJuIC1F Tk9ERVY7Cj4gIAl9Cj4gLQo+IC0JZ2hlc19lZGFjX21jX251bSsrOwo+IC0JbXV0ZXhfdW5sb2Nr KCZnaGVzX2VkYWNfbG9jayk7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQ TChnaGVzX2VkYWNfcmVnaXN0ZXIpOwo+IEBAIC01MTAsMTUgKzQ5OCw5IEBAIEVYUE9SVF9TWU1C T0xfR1BMKGdoZXNfZWRhY19yZWdpc3Rlcik7Cj4gIHZvaWQgZ2hlc19lZGFjX3VucmVnaXN0ZXIo c3RydWN0IGdoZXMgKmdoZXMpCj4gIHsKPiAgCXN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaTsKPiAt CXN0cnVjdCBnaGVzX2VkYWNfcHZ0ICpwdnQsICp0bXA7Cj4gLQo+IC0JbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKHB2dCwgdG1wLCAmZ2hlc19yZWdsaXN0LCBsaXN0KSB7Cj4gLQkJaWYgKGdoZXMg PT0gcHZ0LT5naGVzKSB7Cj4gLQkJCW1jaSA9IHB2dC0+bWNpOwo+IC0JCQllZGFjX21jX2RlbF9t YyhtY2ktPnBkZXYpOwo+IC0JCQllZGFjX21jX2ZyZWUobWNpKTsKPiAtCQkJbGlzdF9kZWwoJnB2 dC0+bGlzdCk7Cj4gLQkJfQo+IC0JfQo+ICsKPiArCW1jaSA9IGdoZXNfcHZ0LT5tY2k7Cj4gKwll ZGFjX21jX2RlbF9tYyhtY2ktPnBkZXYpOwo+ICsJZWRhY19tY19mcmVlKG1jaSk7Cj4gIH0KPiAg RVhQT1JUX1NZTUJPTF9HUEwoZ2hlc19lZGFjX3VucmVnaXN0ZXIpOwo+Ci0tLQpUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtZWRh YyIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcK TW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8t aW5mby5odG1sCg==