lkml.org 
[lkml]   [2014]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 00/12] scsi/NCR5380: fix debugging macros and #include structure

    On Tue, 18 Mar 2014, Joe Perches wrote:

    > On Tue, 2014-03-18 at 13:55 +0100, Geert Uytterhoeven wrote:

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

    I take your point about having the compiler check arguments when
    NDEBUG & flg == 0.

    As for side-effects, chip register accesses would be affected if dprintk()
    expanded to no_printk() when NDEBUG & flg == 0.

    E.g. NCR5380.c line 1213:
    dprintk(NDEBUG_INTR, "scsi : unknown interrupt, BASR 0x%X, MR 0x%X, SR 0x%x\n",
    basr, NCR5380_read(MODE_REG), NCR5380_read(STATUS_REG));

    I don't want to re-introduce side-effects into a dozen different NCR5380
    drivers on three different architectures when I can test only one of those
    drivers. It's difficult to get good code coverage even for one driver.

    --


    \
     
     \ /
      Last update: 2014-03-19 00:41    [W:2.981 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site