[PATCH 00/12] scsi/NCR5380: fix debugging macros and #include structure

Geert Uytterhoeven
2014-03-18T12:55:12Z

On Tue, Mar 18, 2014 at 1:45 PM, Joe Perches <joe@perches.com> wrote:
> NCR does use pr_debug for the dprintk call, but
> it also doesn't verify fmt/arg matching when not
> compiled in
>
> drivers/scsi/NCR5380.h-#if NDEBUG
> drivers/scsi/NCR5380.h:#define dprintk(flg, fmt, args...) \
> drivers/scsi/NCR5380.h- do { if ((NDEBUG) & (flg)) pr_debug(fmt, ## args); } while (0)
> []
> drivers/scsi/NCR5380.h-#else
> drivers/scsi/NCR5380.h:#define dprintk(flg, fmt, args...) do {} while (0)
>
> It'd be nice to change the last do {} while (0)
> to something like:
>
> #define dprintk(flg, fmt, args...) \
> do { if (0) pr_debug(fmt, ## args); } while (0)
>
> so the compiler can always verify but not emit any
> actual code or format strings.
>
> Also, using macros with ... and __VA_ARGS__ is
> a bit more modern.
>
> #define dprintk(flg, fmt, ...) \
> do { if (0) pr_debug(fmt, ##__VA_ARGS__); } while (0)

Na, no_printk():

#define dprintk(flg, fmt, ...) no_printk(fmt, ##__VA_ARGS__)

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at 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