Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0b07a2b authored by Borislav Petkov's avatar Borislav Petkov
Browse files

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
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -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);
}
}


/*
/*
+10 −10
Original line number Original line Diff line number Diff line
@@ -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)
}
}
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,9 +592,10 @@ 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;
	int node_id = amd_get_nb_id(m->extcpu);
	u16 ec = EC(m->status);
	u16 ec = EC(m->status);
	u8 xec = XEC(m->status, 0x1f);
	u8 xec = XEC(m->status, 0x1f);


@@ -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)
{
{
	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)
		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:
+3 −3
Original line number Original line Diff line number Diff line
@@ -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 */