diff options
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/Kconfig | 8 | ||||
-rw-r--r-- | drivers/edac/edac_core.h | 15 |
2 files changed, 22 insertions, 1 deletions
diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig index eee47fd16d79..56021f64ee22 100644 --- a/drivers/edac/Kconfig +++ b/drivers/edac/Kconfig | |||
@@ -40,6 +40,14 @@ config EDAC_DEBUG | |||
40 | there're four debug levels (x=0,1,2,3 from low to high). | 40 | there're four debug levels (x=0,1,2,3 from low to high). |
41 | Usually you should select 'N'. | 41 | Usually you should select 'N'. |
42 | 42 | ||
43 | config EDAC_DEBUG_VERBOSE | ||
44 | bool "More verbose debugging" | ||
45 | depends on EDAC_DEBUG | ||
46 | help | ||
47 | This option makes debugging information more verbose. | ||
48 | Source file name and line number where debugging message | ||
49 | printed will be added to debugging message. | ||
50 | |||
43 | config EDAC_MM_EDAC | 51 | config EDAC_MM_EDAC |
44 | tristate "Main Memory EDAC (Error Detection And Correction) reporting" | 52 | tristate "Main Memory EDAC (Error Detection And Correction) reporting" |
45 | default y | 53 | default y |
diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h index 4b55ec607a88..3189c76fe62e 100644 --- a/drivers/edac/edac_core.h +++ b/drivers/edac/edac_core.h | |||
@@ -49,6 +49,10 @@ | |||
49 | #define edac_printk(level, prefix, fmt, arg...) \ | 49 | #define edac_printk(level, prefix, fmt, arg...) \ |
50 | printk(level "EDAC " prefix ": " fmt, ##arg) | 50 | printk(level "EDAC " prefix ": " fmt, ##arg) |
51 | 51 | ||
52 | #define edac_printk_verbose(level, prefix, fmt, arg...) \ | ||
53 | printk(level "EDAC " prefix ": " "in %s, line at %d: " fmt, \ | ||
54 | __FILE__, __LINE__, ##arg) | ||
55 | |||
52 | #define edac_mc_printk(mci, level, fmt, arg...) \ | 56 | #define edac_mc_printk(mci, level, fmt, arg...) \ |
53 | printk(level "EDAC MC%d: " fmt, mci->mc_idx, ##arg) | 57 | printk(level "EDAC MC%d: " fmt, mci->mc_idx, ##arg) |
54 | 58 | ||
@@ -71,11 +75,20 @@ | |||
71 | #ifdef CONFIG_EDAC_DEBUG | 75 | #ifdef CONFIG_EDAC_DEBUG |
72 | extern int edac_debug_level; | 76 | extern int edac_debug_level; |
73 | 77 | ||
78 | #ifndef CONFIG_EDAC_DEBUG_VERBOSE | ||
74 | #define edac_debug_printk(level, fmt, arg...) \ | 79 | #define edac_debug_printk(level, fmt, arg...) \ |
75 | do { \ | 80 | do { \ |
76 | if (level <= edac_debug_level) \ | 81 | if (level <= edac_debug_level) \ |
77 | edac_printk(KERN_DEBUG, EDAC_DEBUG, fmt, ##arg); \ | 82 | edac_printk(KERN_DEBUG, EDAC_DEBUG, fmt, ##arg); \ |
78 | } while(0) | 83 | } while (0) |
84 | #else /* CONFIG_EDAC_DEBUG_VERBOSE */ | ||
85 | #define edac_debug_printk(level, fmt, arg...) \ | ||
86 | do { \ | ||
87 | if (level <= edac_debug_level) \ | ||
88 | edac_printk_verbose(KERN_DEBUG, EDAC_DEBUG, fmt, \ | ||
89 | ##arg); \ | ||
90 | } while (0) | ||
91 | #endif | ||
79 | 92 | ||
80 | #define debugf0( ... ) edac_debug_printk(0, __VA_ARGS__ ) | 93 | #define debugf0( ... ) edac_debug_printk(0, __VA_ARGS__ ) |
81 | #define debugf1( ... ) edac_debug_printk(1, __VA_ARGS__ ) | 94 | #define debugf1( ... ) edac_debug_printk(1, __VA_ARGS__ ) |