Subject: [PATCH] dynamic_debug: use printk(KERN_WARNING..) in stub function

From: Jim Cromie <[email-masked]>
Date: Tue, 1 May 2012 05:23:12 -0600

drivers/infiniband/ulp/srp/ib_srp.c #defines pr_fmt() PFX fmt, but PFX
is not #defined until after <linux/*> headers are included.

This results in a bad expansion of the pr_warn() in the stub function.

2084c2084
<   printk("<4>" PFX "dyndbg supported only in " "CONFIG_DYNAMIC_DEBUG builds\n")
---
>   printk("<4>" "guano" "dyndbg supported only in " "CONFIG_DYNAMIC_DEBUG builds\n")
(END)

While that use-case is less than ideal, it will probably happen again,
and its easy to avoid by using raw printk().

To: Bart Van Assche [email-masked]
To: Stephen Rothwell <[email-masked]>
CC: Greg KH <[email-masked]>
CC: [email-masked]
CC: Roland Dreier <[email-masked]>
CC: Jason Baron <[email-masked]>
CC: Joe Perches <[email-masked]>
Signed-off-by: Jim Cromie <[email-masked]>
---
 include/linux/dynamic_debug.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h
index 4697e4b..c18257b 100644
--- a/include/linux/dynamic_debug.h
+++ b/include/linux/dynamic_debug.h
@@ -109,7 +109,8 @@ static inline int ddebug_dyndbg_module_param_cb(char *param, char *val,
 						const char *modname)
 {
 	if (strstr(param, "dyndbg")) {
-		pr_warn("dyndbg supported only in "
+		/* avoid pr_warn(), which wants pr_fmt() fully defined */
+		printk(KERN_WARNING "dyndbg param is supported only in "
 			"CONFIG_DYNAMIC_DEBUG builds\n");
 		return 0; /* allow and ignore */
 	}
-- 
1.7.7.6