All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: X86 ML <x86@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>, LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH 5/8] x86/MCE/AMD: Pass the bank number to smca_get_bank_type()
Date: Wed, 21 Feb 2018 11:18:57 +0100	[thread overview]
Message-ID: <20180221101900.10326-6-bp@alien8.de> (raw)
In-Reply-To: <20180221101900.10326-1-bp@alien8.de>

From: Yazen Ghannam <yazen.ghannam@amd.com>

Pass the bank number to smca_get_bank_type() since that's all we need.

Also, we should compare the bank number to MAX_NR_BANKS (size of the
smca_banks array) not the number of bank types. Bank types are reused
for multiple banks, so the number of types can be different from the
number of banks in a system and thus we could return an invalid bank
type.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: x86-ml <x86@kernel.org>
Cc: <stable@vger.kernel.org> # 4.14.x: 11cf887728a3 x86/MCE/AMD: Define a function to get SMCA bank type
Cc: <stable@vger.kernel.org> # 4.14.x: c6708d50f166 x86/MCE: Report only DRAM ECC as memory errors on AMD systems
Cc: <stable@vger.kernel.org> # 4.14.x
Link: https://lkml.kernel.org/r/20180215210943.11530-1-Yazen.Ghannam@amd.com
Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/cpu/mcheck/mce_amd.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c
index 0f32ad242324..7fbb19cb1859 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
@@ -110,14 +110,14 @@ const char *smca_get_long_name(enum smca_bank_types t)
 }
 EXPORT_SYMBOL_GPL(smca_get_long_name);
 
-static enum smca_bank_types smca_get_bank_type(struct mce *m)
+static enum smca_bank_types smca_get_bank_type(unsigned int bank)
 {
 	struct smca_bank *b;
 
-	if (m->bank >= N_SMCA_BANK_TYPES)
+	if (bank >= MAX_NR_BANKS)
 		return N_SMCA_BANK_TYPES;
 
-	b = &smca_banks[m->bank];
+	b = &smca_banks[bank];
 	if (!b->hwid)
 		return N_SMCA_BANK_TYPES;
 
@@ -760,7 +760,7 @@ bool amd_mce_is_memory_error(struct mce *m)
 	u8 xec = (m->status >> 16) & 0x1f;
 
 	if (mce_flags.smca)
-		return smca_get_bank_type(m) == SMCA_UMC && xec == 0x0;
+		return smca_get_bank_type(m->bank) == SMCA_UMC && xec == 0x0;
 
 	return m->bank == 4 && xec == 0x8;
 }
@@ -1063,7 +1063,7 @@ static struct kobj_type threshold_ktype = {
 
 static const char *get_name(unsigned int bank, struct threshold_block *b)
 {
-	unsigned int bank_type;
+	enum smca_bank_types bank_type;
 
 	if (!mce_flags.smca) {
 		if (b && bank == 4)
@@ -1072,11 +1072,10 @@ static const char *get_name(unsigned int bank, struct threshold_block *b)
 		return th_names[bank];
 	}
 
-	if (!smca_banks[bank].hwid)
+	bank_type = smca_get_bank_type(bank);
+	if (bank_type >= N_SMCA_BANK_TYPES)
 		return NULL;
 
-	bank_type = smca_banks[bank].hwid->bank_type;
-
 	if (b && bank_type == SMCA_UMC) {
 		if (b->block < ARRAY_SIZE(smca_umc_block_names))
 			return smca_umc_block_names[b->block];
-- 
2.13.0

  parent reply	other threads:[~2018-02-21 10:20 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-21 10:18 [PATCH 0/8] x86/RAS: Some accumulated stuff Borislav Petkov
2018-02-21 10:18 ` [PATCH 1/8] x86/MCE: Put private structures and definitions into the internal header Borislav Petkov
2018-02-21 11:39   ` Ingo Molnar
2018-02-21 13:28     ` Borislav Petkov
2018-02-21 10:18 ` [PATCH 2/8] x86/MCE: Convert mca_config bools to a bitfield Borislav Petkov
2018-02-21 10:18 ` [PATCH 3/8] x86/mce: Issue the mcelog --ascii message on !AMD Borislav Petkov
2018-02-21 10:18 ` [PATCH 4/8] x86/MCE/AMD: Collect error info even if valid bits are not set Borislav Petkov
2018-02-21 10:18 ` Borislav Petkov [this message]
2018-02-21 10:18 ` [PATCH 6/8] x86/MCE/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type Borislav Petkov
2018-02-21 10:18 ` [PATCH 7/8] x86/MCE/AMD: Get address from already initialized block Borislav Petkov
2018-02-21 10:19 ` [PATCH 8/8] x86/MCE/AMD: Carve out SMCA get_block_address() code Borislav Petkov
  -- strict thread matches above, loose matches on Subject: below --
2018-02-21 17:58 [tip:ras/core] x86/mce: Put private structures and definitions into the internal header tip-bot for Borislav Petkov
2018-02-21 17:58 ` tip-bot for Borislav Petkov
2018-02-21 17:58 [tip:ras/core] x86/mce: Convert 'struct mca_config' bools to a bitfield tip-bot for Borislav Petkov
2018-02-21 17:58 ` tip-bot for Borislav Petkov
2018-02-21 17:59 [tip:ras/core] x86/mce: Issue the 'mcelog --ascii' message only on !AMD tip-bot for Borislav Petkov
2018-02-21 17:59 ` tip-bot for Borislav Petkov
2018-02-21 17:59 [tip:ras/core] x86/mce/AMD: Collect error info even if valid bits are not set tip-bot for Borislav Petkov
2018-02-21 17:59 ` tip-bot for Borislav Petkov
2018-02-21 18:00 [tip:ras/core] x86/mce/AMD: Pass the bank number to smca_get_bank_type() tip-bot for Borislav Petkov
2018-02-21 18:00 ` tip-bot for Yazen Ghannam
2018-02-21 18:00 [tip:ras/core] x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type tip-bot for Borislav Petkov
2018-02-21 18:00 ` tip-bot for Yazen Ghannam
2018-02-21 18:01 [tip:ras/core] x86/mce/AMD: Get address from already initialized block tip-bot for Borislav Petkov
2018-02-21 18:01 ` tip-bot for Yazen Ghannam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180221101900.10326-6-bp@alien8.de \
    --to=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.