From: Yazen Ghannam <Yazen.Ghannam@amd.com> To: linux-edac@vger.kernel.org Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>, linux-kernel@vger.kernel.org, bp@suse.de, tony.luck@intel.com, x86@kernel.org Subject: [PATCH 1/3] x86/MCE/AMD: Redo function to get SMCA bank type Date: Thu, 1 Feb 2018 12:48:11 -0600 [thread overview] Message-ID: <20180201184813.82253-1-Yazen.Ghannam@amd.com> (raw) 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 the 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. We could return an invalid bank type. Use smca_get_bank_type() in get_name(), and change type of bank_type variable to match return type of smca_get_bank_type(). 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 Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> --- 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..4e16afc0794d 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 >= ARRAY_SIZE(smca_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.14.1
WARNING: multiple messages have this Message-ID (diff)
From: Yazen Ghannam <yazen.ghannam@amd.com> To: linux-edac@vger.kernel.org Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>, linux-kernel@vger.kernel.org, bp@suse.de, tony.luck@intel.com, x86@kernel.org Subject: [1/3] x86/MCE/AMD: Redo function to get SMCA bank type Date: Thu, 1 Feb 2018 12:48:11 -0600 [thread overview] Message-ID: <20180201184813.82253-1-Yazen.Ghannam@amd.com> (raw) 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 the 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. We could return an invalid bank type. Use smca_get_bank_type() in get_name(), and change type of bank_type variable to match return type of smca_get_bank_type(). 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 Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> --- 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..4e16afc0794d 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 >= ARRAY_SIZE(smca_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];
next reply other threads:[~2018-02-01 18:48 UTC|newest] Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-02-01 18:48 Yazen Ghannam [this message] 2018-02-01 18:48 ` [1/3] x86/MCE/AMD: Redo function to get SMCA bank type Yazen Ghannam 2018-02-01 18:48 ` [PATCH 2/3] x86/MCE/AMD, EDAC/mce_amd: Enumerate Reserved " Yazen Ghannam 2018-02-01 18:48 ` [2/3] " Yazen Ghannam 2018-02-08 15:15 ` [PATCH 2/3] " Borislav Petkov 2018-02-08 15:15 ` [2/3] " Borislav Petkov 2018-02-14 16:28 ` [PATCH 2/3] " Ghannam, Yazen 2018-02-14 16:28 ` [2/3] " Yazen Ghannam 2018-02-01 18:48 ` [PATCH 3/3] x86/MCE/AMD: Get address from already initialized block Yazen Ghannam 2018-02-01 18:48 ` [3/3] " Yazen Ghannam 2018-02-08 15:26 ` [PATCH 3/3] " Borislav Petkov 2018-02-08 15:26 ` [3/3] " Borislav Petkov 2018-04-14 0:42 ` [PATCH 3/3] " Johannes Hirte 2018-04-14 0:42 ` [3/3] " Johannes Hirte 2018-04-16 11:56 ` [PATCH 3/3] " Johannes Hirte 2018-04-16 11:56 ` [3/3] " Johannes Hirte 2018-04-17 13:31 ` [PATCH 3/3] " Ghannam, Yazen 2018-04-17 13:31 ` [3/3] " Yazen Ghannam 2018-05-15 9:39 ` [PATCH 3/3] " Johannes Hirte 2018-05-15 9:39 ` [3/3] " Johannes Hirte 2018-05-16 22:46 ` [PATCH 3/3] " Borislav Petkov 2018-05-16 22:46 ` [3/3] " Boris Petkov 2018-05-17 6:49 ` [PATCH 3/3] " Johannes Hirte 2018-05-17 6:49 ` [3/3] " Johannes Hirte 2018-05-17 10:41 ` [PATCH 3/3] " Borislav Petkov 2018-05-17 10:41 ` [3/3] " Boris Petkov 2018-05-17 13:04 ` [PATCH 3/3] " Ghannam, Yazen 2018-05-17 13:04 ` [3/3] " Yazen Ghannam 2018-05-17 13:44 ` [PATCH 3/3] " Borislav Petkov 2018-05-17 13:44 ` [3/3] " Boris Petkov 2018-05-17 14:05 ` [PATCH 3/3] " Ghannam, Yazen 2018-05-17 14:05 ` [3/3] " Yazen Ghannam 2018-05-17 18:30 ` [PATCH 1/2] x86/MCE/AMD: Cache SMCA MISC block addresses Borislav Petkov 2018-05-17 18:30 ` [1/2] " Boris Petkov 2018-05-17 18:31 ` [PATCH 2/2] x86/MCE/AMD: Read MCx_MISC block addresses on any CPU Borislav Petkov 2018-05-17 18:31 ` [2/2] " Boris Petkov 2018-05-17 19:29 ` [PATCH 3/3] x86/MCE/AMD: Get address from already initialized block Johannes Hirte 2018-05-17 19:29 ` [3/3] " Johannes Hirte 2018-05-17 19:33 ` [PATCH 3/3] " Borislav Petkov 2018-05-17 19:33 ` [3/3] " Boris Petkov 2018-05-19 13:21 ` [tip:ras/urgent] x86/MCE/AMD: Cache SMCA MISC block addresses tip-bot for Borislav Petkov 2018-02-08 15:04 ` [PATCH 1/3] x86/MCE/AMD: Redo function to get SMCA bank type Borislav Petkov 2018-02-08 15:04 ` [1/3] " Borislav Petkov 2018-02-14 16:38 ` [PATCH 1/3] " Ghannam, Yazen 2018-02-14 16:38 ` [1/3] " Yazen Ghannam 2018-02-14 19:35 ` [PATCH 1/3] " Borislav Petkov 2018-02-14 19:35 ` [1/3] " Boris Petkov
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=20180201184813.82253-1-Yazen.Ghannam@amd.com \ --to=yazen.ghannam@amd.com \ --cc=bp@suse.de \ --cc=linux-edac@vger.kernel.org \ --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: linkBe 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.