mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RAS updates from Ingo Molnar:
"The main changes in this cycle were:
- Assign notifier chain priorities for all RAS related handlers to
make the ordering explicit (Borislav Petkov)
- Improve the AMD MCA banks sysfs output (Yazen Ghannam)
- Various cleanups and restructuring of the x86 RAS code (Borislav
Petkov)"
* 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/ras, EDAC, acpi: Assign MCE notifier handlers a priority
x86/ras: Get rid of mce_process_work()
EDAC/mce/amd: Dump TSC value
EDAC/mce/amd: Unexport amd_decode_mce()
x86/ras/amd/inj: Change dependency
x86/ras: Flip the TSC-adding logic
x86/ras/amd: Make sysfs names of banks more user-friendly
x86/ras/therm_throt: Do not log a fake MCE for thermal events
x86/ras/inject: Make it depend on X86_LOCAL_APIC=y
This commit is contained in:
commit
60c906bab1
17 changed files with 59 additions and 93 deletions
|
|
@ -1835,6 +1835,7 @@ static int i7core_mce_check_error(struct notifier_block *nb, unsigned long val,
|
|||
|
||||
static struct notifier_block i7_mce_dec = {
|
||||
.notifier_call = i7core_mce_check_error,
|
||||
.priority = MCE_PRIO_EDAC,
|
||||
};
|
||||
|
||||
struct memdev_dmi_entry {
|
||||
|
|
|
|||
|
|
@ -942,7 +942,8 @@ static const char *decode_error_status(struct mce *m)
|
|||
return "Corrected error, no action required.";
|
||||
}
|
||||
|
||||
int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
|
||||
static int
|
||||
amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
|
||||
{
|
||||
struct mce *m = (struct mce *)data;
|
||||
struct cpuinfo_x86 *c = &cpu_data(m->extcpu);
|
||||
|
|
@ -1005,6 +1006,9 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
|
|||
goto err_code;
|
||||
}
|
||||
|
||||
if (m->tsc)
|
||||
pr_emerg(HW_ERR "TSC: %llu\n", m->tsc);
|
||||
|
||||
if (!fam_ops)
|
||||
goto err_code;
|
||||
|
||||
|
|
@ -1046,10 +1050,10 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
|
|||
|
||||
return NOTIFY_STOP;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(amd_decode_mce);
|
||||
|
||||
static struct notifier_block amd_mce_dec_nb = {
|
||||
.notifier_call = amd_decode_mce,
|
||||
.priority = MCE_PRIO_EDAC,
|
||||
};
|
||||
|
||||
static int __init mce_amd_init(void)
|
||||
|
|
|
|||
|
|
@ -79,6 +79,5 @@ struct amd_decoder_ops {
|
|||
void amd_report_gart_errors(bool);
|
||||
void amd_register_ecc_decoder(void (*f)(int, struct mce *));
|
||||
void amd_unregister_ecc_decoder(void (*f)(int, struct mce *));
|
||||
int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data);
|
||||
|
||||
#endif /* _EDAC_MCE_AMD_H */
|
||||
|
|
|
|||
|
|
@ -3117,7 +3117,8 @@ static int sbridge_mce_check_error(struct notifier_block *nb, unsigned long val,
|
|||
}
|
||||
|
||||
static struct notifier_block sbridge_mce_dec = {
|
||||
.notifier_call = sbridge_mce_check_error,
|
||||
.notifier_call = sbridge_mce_check_error,
|
||||
.priority = MCE_PRIO_EDAC,
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -1007,7 +1007,8 @@ static int skx_mce_check_error(struct notifier_block *nb, unsigned long val,
|
|||
}
|
||||
|
||||
static struct notifier_block skx_mce_dec = {
|
||||
.notifier_call = skx_mce_check_error,
|
||||
.notifier_call = skx_mce_check_error,
|
||||
.priority = MCE_PRIO_EDAC,
|
||||
};
|
||||
|
||||
static void skx_remove(void)
|
||||
|
|
|
|||
Loading…
Reference in a new issue