Commit cc18e3cd authored by Hitoshi Mitake's avatar Hitoshi Mitake Committed by Linus Torvalds
Browse files

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: default avatarHitoshi Mitake <h.mitake@gmail.com>
Signed-off-by: default avatarDoug Thompson <dougthompson@xmission.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 15746fca
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -40,6 +40,14 @@ config EDAC_DEBUG
	  there're four debug levels (x=0,1,2,3 from low to high).
	  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
	tristate "Main Memory EDAC (Error Detection And Correction) reporting"
	default y
+14 −1
Original line number Diff line number Diff line
@@ -49,6 +49,10 @@
#define edac_printk(level, 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...) \
	printk(level "EDAC MC%d: " fmt, mci->mc_idx, ##arg)

@@ -71,11 +75,20 @@
#ifdef CONFIG_EDAC_DEBUG
extern int edac_debug_level;

#ifndef CONFIG_EDAC_DEBUG_VERBOSE
#define edac_debug_printk(level, fmt, arg...)                            \
	do {                                                             \
		if (level <= edac_debug_level)                           \
			edac_printk(KERN_DEBUG, EDAC_DEBUG, fmt, ##arg); \
	} 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 debugf1( ... ) edac_debug_printk(1, __VA_ARGS__ )