Re: [PATCH] staging: net: core: skbuff.c: Added do-while pair for complex macros

From: Joe Perches
Date: Thu Nov 26 2015 - 12:00:34 EST


On Thu, 2015-11-26 at 22:06 +0530, Jitendra Kumar Khasdev wrote:
> This patch is to file skbuff.c that fixes up following error,
> reported by checkpatch.pl tool,

Your subject title is not correct.
This is not a staging patch.

> 1. ERROR: Macros with multiple statements should be enclosed
> in a do - while loop.

checkpatch is brainless.
Not every message it emits needs fixing.


> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
[]
> @@ -748,11 +748,13 @@ void consume_skb(struct sk_buff *skb)
> EXPORT_SYMBOL(consume_skb);
>
> /* Make sure a field is enclosed inside headers_start/headers_end section */
> -#define CHECK_SKB_FIELD(field) \
> - BUILD_BUG_ON(offsetof(struct sk_buff, field) < \
> - offsetof(struct sk_buff, headers_start)); \
> - BUILD_BUG_ON(offsetof(struct sk_buff, field) > \
> - offsetof(struct sk_buff, headers_end)); \
> +#define CHECK_SKB_FIELD(field) \
> + do { \
> + BUILD_BUG_ON(offsetof(struct sk_buff, field) < \
> + offsetof(struct sk_buff, headers_start)); \
> + BUILD_BUG_ON(offsetof(struct sk_buff, field) > \
> + offsetof(struct sk_buff, headers_end)); \
> + } while (0) \

Perhaps the last check should add a sizeof(field)

BUILD_BUG_ON((offsetof(struct sk_buff, field) +
FIELD_SIZEOF(struct sk_buff, field)) >
offsetof(struct sk_buff, headers_end));


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