2012-05-01 11:23:47

by Jim Cromie

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

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 protected]
To: Stephen Rothwell <[email protected]>
CC: Greg KH <[email protected]>
CC: [email protected]
CC: Roland Dreier <[email protected]>
CC: Jason Baron <[email protected]>
CC: Joe Perches <[email protected]>
Signed-off-by: Jim Cromie <[email protected]>
---
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


2012-05-01 13:44:43

by Greg Kroah-Hartman

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

On Tue, May 01, 2012 at 05:23:12AM -0600, Jim Cromie wrote:
> 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().

Thanks, now applied.

greg k-h