linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning
@ 2009-09-26 12:28 Bart Van Assche
  2009-10-02  6:41 ` Bart Van Assche
  0 siblings, 1 reply; 6+ messages in thread
From: Bart Van Assche @ 2009-09-26 12:28 UTC (permalink / raw)
  To: linux-kernel; +Cc: Vegard Nossum, Andrew Morton

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@gmail.com>
Cc: Vegard Nossum <vegardno@ifi.uio.no>
Cc: Andrew Morton <akpm@linux-foundation.org>

--- 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 {								\

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning
  2009-09-26 12:28 [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning Bart Van Assche
@ 2009-10-02  6:41 ` Bart Van Assche
  2009-10-02  7:51   ` Vegard Nossum
  0 siblings, 1 reply; 6+ messages in thread
From: Bart Van Assche @ 2009-10-02  6:41 UTC (permalink / raw)
  To: linux-kernel; +Cc: Vegard Nossum, Andrew Morton

On Sat, Sep 26, 2009 at 2:28 PM, Bart Van Assche
<bart.vanassche@gmail.com> 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@gmail.com>
> Cc: Vegard Nossum <vegardno@ifi.uio.no>
> Cc: Andrew Morton <akpm@linux-foundation.org>
>
> --- 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 ?

Bart.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning
  2009-10-02  6:41 ` Bart Van Assche
@ 2009-10-02  7:51   ` Vegard Nossum
  2009-10-14  7:06     ` Bart Van Assche
  0 siblings, 1 reply; 6+ messages in thread
From: Vegard Nossum @ 2009-10-02  7:51 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: linux-kernel, Vegard Nossum, Andrew Morton

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 2289 bytes --]

2009/10/2 Bart Van Assche <bart.vanassche@gmail.com>:> On Sat, Sep 26, 2009 at 2:28 PM, Bart Van Assche> <bart.vanassche@gmail.com> 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@gmail.com>>> Cc: Vegard Nossum <vegardno@ifi.uio.no>>> Cc: Andrew Morton <akpm@linux-foundation.org>>>>> --- 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 ?>> Bart.
Hi,
A patch for this problem has already been applied in latest mainline.Thanks anyway, and sorry for not responding sooner.

Vegardÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning
  2009-10-02  7:51   ` Vegard Nossum
@ 2009-10-14  7:06     ` Bart Van Assche
  2009-10-14 11:26       ` Vegard Nossum
  0 siblings, 1 reply; 6+ messages in thread
From: Bart Van Assche @ 2009-10-14  7:06 UTC (permalink / raw)
  To: Vegard Nossum; +Cc: linux-kernel, Vegard Nossum, Andrew Morton

On Fri, Oct 2, 2009 at 9:51 AM, Vegard Nossum <vegard.nossum@gmail.com> wrote:
>
> 2009/10/2 Bart Van Assche <bart.vanassche@gmail.com>:
> > On Sat, Sep 26, 2009 at 2:28 PM, Bart Van Assche
> > <bart.vanassche@gmail.com> 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@gmail.com>
> >> Cc: Vegard Nossum <vegardno@ifi.uio.no>
> >> Cc: Andrew Morton <akpm@linux-foundation.org>
> >>
> >> --- 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.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning
  2009-10-14  7:06     ` Bart Van Assche
@ 2009-10-14 11:26       ` Vegard Nossum
  2009-10-14 11:52         ` Bart Van Assche
  0 siblings, 1 reply; 6+ messages in thread
From: Vegard Nossum @ 2009-10-14 11:26 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: linux-kernel, Andrew Morton, Greg KH

2009/10/14 Bart Van Assche <bart.vanassche@gmail.com>:
> On Fri, Oct 2, 2009 at 9:51 AM, Vegard Nossum <vegard.nossum@gmail.com> wrote:
>>
>> 2009/10/2 Bart Van Assche <bart.vanassche@gmail.com>:
>> > On Sat, Sep 26, 2009 at 2:28 PM, Bart Van Assche
>> > <bart.vanassche@gmail.com> 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@gmail.com>
>> >> Cc: Vegard Nossum <vegardno@ifi.uio.no>
>> >> Cc: Andrew Morton <akpm@linux-foundation.org>
>> >>
>> >> --- 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 ?

I assumed that this wouldn't be suitable for stable kernels, as the
change is purely syntactic. Is there a good reason for applying this
patch to the stable series? Perhaps Greg can answer this (Cced)?


Vegard

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning
  2009-10-14 11:26       ` Vegard Nossum
@ 2009-10-14 11:52         ` Bart Van Assche
  0 siblings, 0 replies; 6+ messages in thread
From: Bart Van Assche @ 2009-10-14 11:52 UTC (permalink / raw)
  To: Vegard Nossum; +Cc: linux-kernel, Andrew Morton, Greg KH

On Wed, Oct 14, 2009 at 1:26 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote:
> 2009/10/14 Bart Van Assche <bart.vanassche@gmail.com>:
>> On Fri, Oct 2, 2009 at 9:51 AM, Vegard Nossum <vegard.nossum@gmail.com> wrote:
>>>
>>> 2009/10/2 Bart Van Assche <bart.vanassche@gmail.com>:
>>> > On Sat, Sep 26, 2009 at 2:28 PM, Bart Van Assche
>>> > <bart.vanassche@gmail.com> 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@gmail.com>
>>> >> Cc: Vegard Nossum <vegardno@ifi.uio.no>
>>> >> Cc: Andrew Morton <akpm@linux-foundation.org>
>>> >>
>>> >> --- 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 ?
>
> I assumed that this wouldn't be suitable for stable kernels, as the
> change is purely syntactic. Is there a good reason for applying this
> patch to the stable series? Perhaps Greg can answer this (Cced)?

Which patch are you referring to (commit ID) ?

Bart.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-10-14 11:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-26 12:28 [PATCH 2.6.31.1] include/linux/kmemcheck.h: fix a sparse warning Bart Van Assche
2009-10-02  6:41 ` Bart Van Assche
2009-10-02  7:51   ` Vegard Nossum
2009-10-14  7:06     ` Bart Van Assche
2009-10-14 11:26       ` Vegard Nossum
2009-10-14 11:52         ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).