mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
![Borislav Petkov](/assets/img/avatar_default.png)
Introduce a simple data structure for collecting correctable errors along with accessors. More detailed description in the code itself. The error decoding is done with the decoding chain now and mce_first_notifier() gets to see the error first and the CEC decides whether to log it and then the rest of the chain doesn't hear about it - basically the main reason for the CE collector - or to continue running the notifiers. When the CEC hits the action threshold, it will try to soft-offine the page containing the ECC and then the whole decoding chain gets to see the error. Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-edac <linux-edac@vger.kernel.org> Link: http://lkml.kernel.org/r/20170327093304.10683-5-bp@alien8.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
25 lines
620 B
C
25 lines
620 B
C
#ifndef __RAS_H__
|
|
#define __RAS_H__
|
|
|
|
#include <asm/errno.h>
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
int ras_userspace_consumers(void);
|
|
void ras_debugfs_init(void);
|
|
int ras_add_daemon_trace(void);
|
|
#else
|
|
static inline int ras_userspace_consumers(void) { return 0; }
|
|
static inline void ras_debugfs_init(void) { }
|
|
static inline int ras_add_daemon_trace(void) { return 0; }
|
|
#endif
|
|
|
|
#ifdef CONFIG_RAS_CEC
|
|
void __init cec_init(void);
|
|
int __init parse_cec_param(char *str);
|
|
int cec_add_elem(u64 pfn);
|
|
#else
|
|
static inline void __init cec_init(void) { }
|
|
static inline int cec_add_elem(u64 pfn) { return -ENODEV; }
|
|
#endif
|
|
|
|
#endif /* __RAS_H__ */
|