diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2010-03-09 22:38:48 +0300 |
---|---|---|
committer | Borislav Petkov <borislav.petkov@amd.com> | 2010-03-22 18:33:31 +0300 |
commit | 5b89d2f9ace1970324facc68ca9b8fae19ce8096 (patch) | |
tree | a692a753f4a836e651567ebf40602e0bcaf9d72b | |
parent | 220bf991b0366cc50a94feede3d7341fa5710ee4 (diff) | |
download | linux-5b89d2f9ace1970324facc68ca9b8fae19ce8096.tar.xz |
edac, mce: Filter out invalid values
Print the CPU associated with the error only when the field is valid.
Cc: <stable@kernel.org> # .32.x .33.x
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
-rw-r--r-- | drivers/edac/edac_mce_amd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/edac/edac_mce_amd.c b/drivers/edac/edac_mce_amd.c index 8fc91a019620..f5b6d9fe4def 100644 --- a/drivers/edac/edac_mce_amd.c +++ b/drivers/edac/edac_mce_amd.c @@ -316,7 +316,12 @@ void amd_decode_nb_mce(int node_id, struct err_regs *regs, int handle_errors) if (regs->nbsh & K8_NBSH_ERR_CPU_VAL) pr_cont(", core: %u\n", (u8)(regs->nbsh & 0xf)); } else { - pr_cont(", core: %d\n", fls((regs->nbsh & 0xf) - 1)); + u8 assoc_cpus = regs->nbsh & 0xf; + + if (assoc_cpus > 0) + pr_cont(", core: %d", fls(assoc_cpus) - 1); + + pr_cont("\n"); } pr_emerg("%s.\n", EXT_ERR_MSG(xec)); |