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/4] x86/MCE/AMD: Carve out SMCA get_block_address() code From: Borislav Petkov Message-Id: <20180217103044.GB25916@pd.tnic> Date: Sat, 17 Feb 2018 11:30:44 +0100 To: Yazen Ghannam Cc: linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, tony.luck@intel.com, x86@kernel.org List-ID: T24gVGh1LCBGZWIgMTUsIDIwMTggYXQgMDM6MDk6NDNQTSAtMDYwMCwgWWF6ZW4gR2hhbm5hbSB3 cm90ZToKPiBGcm9tOiBZYXplbiBHaGFubmFtIDx5YXplbi5naGFubmFtQGFtZC5jb20+Cj4gCj4g Q2FydmUgb3V0IHRoZSBTTUNBIGNvZGUgaW4gZ2V0X2Jsb2NrX2FkZHJlc3MoKSBpbnRvIGEgc2Vw YXJhdGUgaGVscGVyCj4gZnVuY3Rpb24uCj4gCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCj4gCj4g U2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgo+IC0t LQo+IHYxLT52MjoKPiAqIE5ldyBpbiB0aGlzIHNlcmllcy4KPiAKPiAgYXJjaC94ODYva2VybmVs L2NwdS9tY2hlY2svbWNlX2FtZC5jIHwgNTkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMo LSkKCkFsbCBsb29rIG9rIHRvIG1lLCB0aGlzIGxhc3Qgb25lIEkgbWFzc2FnZWQgYSBiaXQgdG8g c2F2ZSBhbiBpbmRlbnRhdGlvbgpsZXZlbCwgc2VlIGJlbG93LgoKUnVubmluZyB0aGVtIGEgYml0 IG9uIHRoZSBib3hlcyBoZXJlLi4uCi0tLQpGcm9tOiBZYXplbiBHaGFubmFtIDx5YXplbi5naGFu bmFtQGFtZC5jb20+CkRhdGU6IFRodSwgMTUgRmViIDIwMTggMTU6MDk6NDMgLTA2MDAKU3ViamVj dDogW1BBVENIXSB4ODYvTUNFL0FNRDogQ2FydmUgb3V0IFNNQ0EgZ2V0X2Jsb2NrX2FkZHJlc3Mo KSBjb2RlCgpDYXJ2ZSBvdXQgdGhlIFNNQ0EgY29kZSBpbiBnZXRfYmxvY2tfYWRkcmVzcygpIGlu dG8gYSBzZXBhcmF0ZSBoZWxwZXIKZnVuY3Rpb24uCgpObyBmdW5jdGlvbmFsIGNoYW5nZS4KClNp Z25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlhemVuLmdoYW5uYW1AYW1kLmNvbT4KQ2M6IFRv bnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT4KQ2M6IGxpbnV4LWVkYWMgPGxpbnV4LWVkYWNA dmdlci5rZXJuZWwub3JnPgpDYzogeDg2LW1sIDx4ODZAa2VybmVsLm9yZz4KTGluazogaHR0cDov L2xrbWwua2VybmVsLm9yZy9yLzIwMTgwMjE1MjEwOTQzLjExNTMwLTQtWWF6ZW4uR2hhbm5hbUBh bWQuY29tClsgU2F2ZSBhbiBpbmRlbnRhdGlvbiBsZXZlbC4gXQpTaWduZWQtb2ZmLWJ5OiBCb3Jp c2xhdiBQZXRrb3YgPGJwQHN1c2UuZGU+Ci0tLQogYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2sv bWNlX2FtZC5jIHwgNTcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlX2FtZC5jIGIvYXJjaC94ODYva2VybmVs L2NwdS9tY2hlY2svbWNlX2FtZC5jCmluZGV4IDEyYmMyODYzYTRkNi4uZjc2NjZlZWY0YTg3IDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2VfYW1kLmMKKysrIGIvYXJj aC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlX2FtZC5jCkBAIC00MzEsNiArNDMxLDM1IEBAIHN0 YXRpYyB2b2lkIGRlZmVycmVkX2Vycm9yX2ludGVycnVwdF9lbmFibGUoc3RydWN0IGNwdWluZm9f eDg2ICpjKQogCXdybXNyKE1TUl9DVV9ERUZfRVJSLCBsb3csIGhpZ2gpOwogfQogCitzdGF0aWMg dTMyIHNtY2FfZ2V0X2Jsb2NrX2FkZHJlc3ModW5zaWduZWQgaW50IGNwdSwgdW5zaWduZWQgaW50 IGJhbmssCisJCQkJICB1bnNpZ25lZCBpbnQgYmxvY2spCit7CisJdTMyIGxvdywgaGlnaDsKKwl1 MzIgYWRkciA9IDA7CisKKwlpZiAoc21jYV9nZXRfYmFua190eXBlKGJhbmspID09IFNNQ0FfUkVT RVJWRUQpCisJCXJldHVybiBhZGRyOworCisJaWYgKCFibG9jaykKKwkJcmV0dXJuIE1TUl9BTUQ2 NF9TTUNBX01DeF9NSVNDKGJhbmspOworCisJLyoKKwkgKiBGb3IgU01DQSBlbmFibGVkIHByb2Nl c3NvcnMsIEJMS1BUUiBmaWVsZCBvZiB0aGUgZmlyc3QgTUlTQyByZWdpc3RlcgorCSAqIChNQ3hf TUlTQzApIGluZGljYXRlcyBwcmVzZW5jZSBvZiBhZGRpdGlvbmFsIE1JU0MgcmVncyBzZXQgKE1J U0MxLTQpLgorCSAqLworCWlmIChyZG1zcl9zYWZlX29uX2NwdShjcHUsIE1TUl9BTUQ2NF9TTUNB X01DeF9DT05GSUcoYmFuayksICZsb3csICZoaWdoKSkKKwkJcmV0dXJuIGFkZHI7CisKKwlpZiAo IShsb3cgJiBNQ0lfQ09ORklHX01DQVgpKQorCQlyZXR1cm4gYWRkcjsKKworCWlmICghcmRtc3Jf c2FmZV9vbl9jcHUoY3B1LCBNU1JfQU1ENjRfU01DQV9NQ3hfTUlTQyhiYW5rKSwgJmxvdywgJmhp Z2gpICYmCisJICAgIChsb3cgJiBNQVNLX0JMS1BUUl9MTykpCisJCXJldHVybiBNU1JfQU1ENjRf U01DQV9NQ3hfTUlTQ3koYmFuaywgYmxvY2sgLSAxKTsKKworCXJldHVybiBhZGRyOworfQorCiBz dGF0aWMgdTMyIGdldF9ibG9ja19hZGRyZXNzKHVuc2lnbmVkIGludCBjcHUsIHUzMiBjdXJyZW50 X2FkZHIsIHUzMiBsb3csIHUzMiBoaWdoLAogCQkJICAgICB1bnNpZ25lZCBpbnQgYmFuaywgdW5z aWduZWQgaW50IGJsb2NrKQogewpAQCAtNDUxLDMyICs0ODAsOCBAQCBzdGF0aWMgdTMyIGdldF9i bG9ja19hZGRyZXNzKHVuc2lnbmVkIGludCBjcHUsIHUzMiBjdXJyZW50X2FkZHIsIHUzMiBsb3cs IHUzMiBoaQogCQl9CiAJfQogCi0JaWYgKG1jZV9mbGFncy5zbWNhKSB7Ci0JCWlmIChzbWNhX2dl dF9iYW5rX3R5cGUoYmFuaykgPT0gU01DQV9SRVNFUlZFRCkKLQkJCXJldHVybiBhZGRyOwotCi0J CWlmICghYmxvY2spIHsKLQkJCWFkZHIgPSBNU1JfQU1ENjRfU01DQV9NQ3hfTUlTQyhiYW5rKTsK LQkJfSBlbHNlIHsKLQkJCS8qCi0JCQkgKiBGb3IgU01DQSBlbmFibGVkIHByb2Nlc3NvcnMsIEJM S1BUUiBmaWVsZCBvZiB0aGUKLQkJCSAqIGZpcnN0IE1JU0MgcmVnaXN0ZXIgKE1DeF9NSVNDMCkg aW5kaWNhdGVzIHByZXNlbmNlIG9mCi0JCQkgKiBhZGRpdGlvbmFsIE1JU0MgcmVnaXN0ZXIgc2V0 IChNSVNDMS00KS4KLQkJCSAqLwotCQkJdTMyIGxvdywgaGlnaDsKLQotCQkJaWYgKHJkbXNyX3Nh ZmVfb25fY3B1KGNwdSwgTVNSX0FNRDY0X1NNQ0FfTUN4X0NPTkZJRyhiYW5rKSwgJmxvdywgJmhp Z2gpKQotCQkJCXJldHVybiBhZGRyOwotCi0JCQlpZiAoIShsb3cgJiBNQ0lfQ09ORklHX01DQVgp KQotCQkJCXJldHVybiBhZGRyOwotCi0JCQlpZiAoIXJkbXNyX3NhZmVfb25fY3B1KGNwdSwgTVNS X0FNRDY0X1NNQ0FfTUN4X01JU0MoYmFuayksICZsb3csICZoaWdoKSAmJgotCQkJICAgIChsb3cg JiBNQVNLX0JMS1BUUl9MTykpCi0JCQkJYWRkciA9IE1TUl9BTUQ2NF9TTUNBX01DeF9NSVNDeShi YW5rLCBibG9jayAtIDEpOwotCQl9Ci0JCXJldHVybiBhZGRyOwotCX0KKwlpZiAobWNlX2ZsYWdz LnNtY2EpCisJCXJldHVybiBzbWNhX2dldF9ibG9ja19hZGRyZXNzKGNwdSwgYmFuaywgYmxvY2sp OwogCiAJLyogRmFsbCBiYWNrIHRvIG1ldGhvZCB3ZSB1c2VkIGZvciBvbGRlciBwcm9jZXNzb3Jz OiAqLwogCXN3aXRjaCAoYmxvY2spIHsK