Re: [PATCH] kmemcheck: fix sparse warning

From: Raja R Harinath
Date: Thu Aug 06 2009 - 08:39:18 EST


Hi,

Johannes Berg <johannes@xxxxxxxxxxxxxxxx> writes:

>> Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

I know I'm colouring the bike-shed but you can avoid the outer do-while
with:

>> --- wireless-testing.orig/include/linux/kmemcheck.h 2009-07-06 11:41:16.000000000 +0200
>> +++ wireless-testing/include/linux/kmemcheck.h 2009-07-06 11:41:30.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) { \

+ 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)

+ } else

Of course, that tailing 'else' may be much too clever to live. A
slightly less clever but more idiomatic approach would be to use

+ } else do {} while (0)

but what's the point. Oh well, ignore me :-) I'm just pained by the
'} }' due to my wierd sense of aesthetics.

- Hari

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