Re: [PATCH] omap2/omapfb: make DBG() more resistant in if-else constructions
From: Niels de Vos <hidden>
Date: 2011-05-10 10:57:23
Also in:
linux-omap, lkml
On Tue, May 10, 2011 at 10:42 AM, Geert Uytterhoeven [off-list ref] wrote:
On Tue, May 10, 2011 at 11:20, Niels de Vos [off-list ref] wrote:quoted
When DBG() is used in a simple if-else, the resulting code path currently depends on the definition of DBG(). Inserting the statement in a "do { ... } while (0)" prevents this possible misuse. Signed-off-by: Niels de Vos <redacted>quoted
--- a/drivers/video/omap2/omapfb/omapfb.h +++ b/drivers/video/omap2/omapfb/omapfb.h@@ -34,8 +34,10 @@#ifdef DEBUG extern unsigned int omapfb_debug; #define DBG(format, ...) \ - if (omapfb_debug) \ - printk(KERN_DEBUG "OMAPFB: " format, ## __VA_ARGS__) + do { \ + if (omapfb_debug) \ + printk(KERN_DEBUG "OMAPFB: " format, ## __VA_ARGS__); \ + while (0)Where's the closing '}'?
Good catch! That's in a "fixup!" that I forgot to squash :-/ I'll post an update version in a bit.
quoted
#else #define DBG(format, ...)BTW, no printf()-style format checking here.quoted
#endifWhat about using the standard pr_debug()/dev_dbg() instead? With dynamic debug, it can be enabled at run time. As a bonus, you get printf()-style format checking if debugging is disabled.
I think removing DBG() and the omapfb_debug module-parameter is surely a good thing. Unfortunately DBG() is used quite a bit in the code and replacing them 'll take some more time. I don't know yet when I find some time to do and test that. Thanks for the pointers, Niels
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/