Commit b0b07a2b authored by Borislav Petkov's avatar Borislav Petkov

EDAC, MCE, AMD: Simplify NB MCE decoder interface

Drop third nbcfg argument which is old remains and not required anymore.

No functionality change.
Signed-off-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
parent 295d8cda
...@@ -1953,11 +1953,9 @@ static inline void __amd64_decode_bus_error(struct mem_ctl_info *mci, ...@@ -1953,11 +1953,9 @@ static inline void __amd64_decode_bus_error(struct mem_ctl_info *mci,
amd64_handle_ue(mci, m); amd64_handle_ue(mci, m);
} }
void amd64_decode_bus_error(int node_id, struct mce *m, u32 nbcfg) void amd64_decode_bus_error(int node_id, struct mce *m)
{ {
struct mem_ctl_info *mci = mcis[node_id]; __amd64_decode_bus_error(mcis[node_id], m);
__amd64_decode_bus_error(mci, m);
} }
/* /*
......
...@@ -9,7 +9,7 @@ static u8 xec_mask = 0xf; ...@@ -9,7 +9,7 @@ static u8 xec_mask = 0xf;
static u8 nb_err_cpumask = 0xf; static u8 nb_err_cpumask = 0xf;
static bool report_gart_errors; static bool report_gart_errors;
static void (*nb_bus_decoder)(int node_id, struct mce *m, u32 nbcfg); static void (*nb_bus_decoder)(int node_id, struct mce *m);
void amd_report_gart_errors(bool v) void amd_report_gart_errors(bool v)
{ {
...@@ -17,13 +17,13 @@ void amd_report_gart_errors(bool v) ...@@ -17,13 +17,13 @@ void amd_report_gart_errors(bool v)
} }
EXPORT_SYMBOL_GPL(amd_report_gart_errors); EXPORT_SYMBOL_GPL(amd_report_gart_errors);
void amd_register_ecc_decoder(void (*f)(int, struct mce *, u32)) void amd_register_ecc_decoder(void (*f)(int, struct mce *))
{ {
nb_bus_decoder = f; nb_bus_decoder = f;
} }
EXPORT_SYMBOL_GPL(amd_register_ecc_decoder); EXPORT_SYMBOL_GPL(amd_register_ecc_decoder);
void amd_unregister_ecc_decoder(void (*f)(int, struct mce *, u32)) void amd_unregister_ecc_decoder(void (*f)(int, struct mce *))
{ {
if (nb_bus_decoder) { if (nb_bus_decoder) {
WARN_ON(nb_bus_decoder != f); WARN_ON(nb_bus_decoder != f);
...@@ -592,11 +592,12 @@ static bool nb_noop_mce(u16 ec, u8 xec) ...@@ -592,11 +592,12 @@ static bool nb_noop_mce(u16 ec, u8 xec)
return false; return false;
} }
void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg) void amd_decode_nb_mce(struct mce *m)
{ {
struct cpuinfo_x86 *c = &boot_cpu_data; struct cpuinfo_x86 *c = &boot_cpu_data;
u16 ec = EC(m->status); int node_id = amd_get_nb_id(m->extcpu);
u8 xec = XEC(m->status, 0x1f); u16 ec = EC(m->status);
u8 xec = XEC(m->status, 0x1f);
pr_emerg(HW_ERR "Northbridge Error (node %d): ", node_id); pr_emerg(HW_ERR "Northbridge Error (node %d): ", node_id);
...@@ -630,7 +631,7 @@ void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg) ...@@ -630,7 +631,7 @@ void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg)
if (c->x86 == 0xf || c->x86 == 0x10 || c->x86 == 0x15) if (c->x86 == 0xf || c->x86 == 0x10 || c->x86 == 0x15)
if ((xec == 0x8 || xec == 0x0) && nb_bus_decoder) if ((xec == 0x8 || xec == 0x0) && nb_bus_decoder)
nb_bus_decoder(node_id, m, nbcfg); nb_bus_decoder(node_id, m);
return; return;
...@@ -746,7 +747,7 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data) ...@@ -746,7 +747,7 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
{ {
struct mce *m = (struct mce *)data; struct mce *m = (struct mce *)data;
struct cpuinfo_x86 *c = &boot_cpu_data; struct cpuinfo_x86 *c = &boot_cpu_data;
int node, ecc; int ecc;
if (amd_filter_mce(m)) if (amd_filter_mce(m))
return NOTIFY_STOP; return NOTIFY_STOP;
...@@ -795,8 +796,7 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data) ...@@ -795,8 +796,7 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
break; break;
case 4: case 4:
node = amd_get_nb_id(m->extcpu); amd_decode_nb_mce(m);
amd_decode_nb_mce(node, m, 0);
break; break;
case 5: case 5:
......
...@@ -86,9 +86,9 @@ struct amd_decoder_ops { ...@@ -86,9 +86,9 @@ struct amd_decoder_ops {
}; };
void amd_report_gart_errors(bool); void amd_report_gart_errors(bool);
void amd_register_ecc_decoder(void (*f)(int, struct mce *, u32)); void amd_register_ecc_decoder(void (*f)(int, struct mce *));
void amd_unregister_ecc_decoder(void (*f)(int, struct mce *, u32)); void amd_unregister_ecc_decoder(void (*f)(int, struct mce *));
void amd_decode_nb_mce(int, struct mce *, u32); void amd_decode_nb_mce(struct mce *);
int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data); int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data);
#endif /* _EDAC_MCE_AMD_H */ #endif /* _EDAC_MCE_AMD_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment