Re: [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning

From: Bart Van Assche
Date: Wed Oct 14 2009 - 03:07:39 EST


On Fri, Oct 2, 2009 at 9:51 AM, Vegard Nossum <vegard.nossum@xxxxxxxxx> wrote:
>
> 2009/10/2 Bart Van Assche <bart.vanassche@xxxxxxxxx>:
> > On Sat, Sep 26, 2009 at 2:28 PM, Bart Van Assche
> > <bart.vanassche@xxxxxxxxx> wrote:
> >>
> >> Checking a 2.6.31.1 kernel configured with allyesconfig/allmodconfig
> >> with sparse (make C=2) triggers a sparse warning on code that uses the
> >> kmemcheck_annotate_bitfield() macro. An example of such a warning:
> >>
> >> include/net/inet_sock.h:208:17: warning: do-while statement is not a compound statement
> >>
> >> Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxx>
> >> Cc: Vegard Nossum <vegardno@xxxxxxxxxx>
> >> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> >>
> >> --- linux-2.6.31.1/include/linux/kmemcheck-orig.h       2009-09-26 13:53:44.000000000 +0200
> >> +++ linux-2.6.31.1/include/linux/kmemcheck.h    2009-09-26 13:53:56.000000000 +0200
> >> @@ -137,13 +137,13 @@ static inline void kmemcheck_mark_initia
> >>        int name##_end[0];
> >>
> >>  #define kmemcheck_annotate_bitfield(ptr, name)                         \
> >> -       do if (ptr) {                                                   \
> >> +       do { if (ptr) {                                                 \
> >>                int _n = (long) &((ptr)->name##_end)                    \
> >>                        - (long) &((ptr)->name##_begin);                \
> >>                BUILD_BUG_ON(_n < 0);                                   \
> >>                                                                        \
> >>                kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \
> >> -       } while (0)
> >> +       } } while (0)
> >>
> >>  #define kmemcheck_annotate_variable(var)                               \
> >>        do {                                                            \
> >
> > (ping)
> >
> > Did anyone already have the time to review the patch above ?
>
> A patch for this problem has already been applied in latest mainline.

Unfortunately this issue is still present in 2.6.31.4, which has been
released on October 12 (yesterday). Is the patch that has been applied
in the mainline kernel suitable for backporting ?

Bart.
--
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/