edac: add more verbose debug info
A patch for making a debugging information more verbose for use in development debugging. By enabling the new option "More verbose debugging", information about source file and line number will be added to debugging message. This is sample output, EDAC MC0: Giving out device to 'e7xxx_edac' 'E7205': DEV 0000:00:00.0 EDAC DEBUG: in drivers/edac/edac_pci.c, line at 48: edac_pci_alloc_ctl_info() EDAC DEBUG: in drivers/edac/edac_pci.c, line at 334: edac_pci_add_device() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com> Signed-off-by: Doug Thompson <dougthompson@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
15746fcaa3
commit
cc18e3cd53
|
@ -40,6 +40,14 @@ config EDAC_DEBUG
|
||||||
there're four debug levels (x=0,1,2,3 from low to high).
|
there're four debug levels (x=0,1,2,3 from low to high).
|
||||||
Usually you should select 'N'.
|
Usually you should select 'N'.
|
||||||
|
|
||||||
|
config EDAC_DEBUG_VERBOSE
|
||||||
|
bool "More verbose debugging"
|
||||||
|
depends on EDAC_DEBUG
|
||||||
|
help
|
||||||
|
This option makes debugging information more verbose.
|
||||||
|
Source file name and line number where debugging message
|
||||||
|
printed will be added to debugging message.
|
||||||
|
|
||||||
config EDAC_MM_EDAC
|
config EDAC_MM_EDAC
|
||||||
tristate "Main Memory EDAC (Error Detection And Correction) reporting"
|
tristate "Main Memory EDAC (Error Detection And Correction) reporting"
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -49,6 +49,10 @@
|
||||||
#define edac_printk(level, prefix, fmt, arg...) \
|
#define edac_printk(level, prefix, fmt, arg...) \
|
||||||
printk(level "EDAC " prefix ": " fmt, ##arg)
|
printk(level "EDAC " prefix ": " fmt, ##arg)
|
||||||
|
|
||||||
|
#define edac_printk_verbose(level, prefix, fmt, arg...) \
|
||||||
|
printk(level "EDAC " prefix ": " "in %s, line at %d: " fmt, \
|
||||||
|
__FILE__, __LINE__, ##arg)
|
||||||
|
|
||||||
#define edac_mc_printk(mci, level, fmt, arg...) \
|
#define edac_mc_printk(mci, level, fmt, arg...) \
|
||||||
printk(level "EDAC MC%d: " fmt, mci->mc_idx, ##arg)
|
printk(level "EDAC MC%d: " fmt, mci->mc_idx, ##arg)
|
||||||
|
|
||||||
|
@ -71,11 +75,20 @@
|
||||||
#ifdef CONFIG_EDAC_DEBUG
|
#ifdef CONFIG_EDAC_DEBUG
|
||||||
extern int edac_debug_level;
|
extern int edac_debug_level;
|
||||||
|
|
||||||
|
#ifndef CONFIG_EDAC_DEBUG_VERBOSE
|
||||||
#define edac_debug_printk(level, fmt, arg...) \
|
#define edac_debug_printk(level, fmt, arg...) \
|
||||||
do { \
|
do { \
|
||||||
if (level <= edac_debug_level) \
|
if (level <= edac_debug_level) \
|
||||||
edac_printk(KERN_DEBUG, EDAC_DEBUG, fmt, ##arg); \
|
edac_printk(KERN_DEBUG, EDAC_DEBUG, fmt, ##arg); \
|
||||||
} while(0)
|
} while (0)
|
||||||
|
#else /* CONFIG_EDAC_DEBUG_VERBOSE */
|
||||||
|
#define edac_debug_printk(level, fmt, arg...) \
|
||||||
|
do { \
|
||||||
|
if (level <= edac_debug_level) \
|
||||||
|
edac_printk_verbose(KERN_DEBUG, EDAC_DEBUG, fmt, \
|
||||||
|
##arg); \
|
||||||
|
} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define debugf0( ... ) edac_debug_printk(0, __VA_ARGS__ )
|
#define debugf0( ... ) edac_debug_printk(0, __VA_ARGS__ )
|
||||||
#define debugf1( ... ) edac_debug_printk(1, __VA_ARGS__ )
|
#define debugf1( ... ) edac_debug_printk(1, __VA_ARGS__ )
|
||||||
|
|
Loading…
Reference in New Issue