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

From: Geert Uytterhoeven
Date: Tue Mar 18 2014 - 09:14:03 EST


Hi Joe,

On Tue, Mar 18, 2014 at 2:07 PM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> On Tue, 2014-03-18 at 13:55 +0100, Geert Uytterhoeven wrote:
>> On Tue, Mar 18, 2014 at 1:45 PM, Joe Perches <joe@xxxxxxxxxxx> wrote:
>> > #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__)
>
> Fine, but with a correction.
>
> no_printk keeps all side effects like
> performing any function calls made by the
> statement or accessing any volatiles.

That's true...

> Using
>
> do { if (0) no_printk(fmt, ##__VA_ARGS__); } while (0)
>
> does not have any side-effects.

... but all current users in include/ have the side-effects.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/