netlink: avoid memset of 0 bytes sparse warning
Patrick McHardy [Thu, 20 Nov 2008 12:08:29 +0000 (04:08 -0800)]
A netlink attribute padding of zero triggers this sparse warning:

include/linux/netlink.h:245:8: warning: memset with byte count of 0

Avoid the memset when the size parameter is constant and requires no padding.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

include/linux/netlink.h

index 9ff1b54..51b09a1 100644 (file)
@@ -242,7 +242,8 @@ __nlmsg_put(struct sk_buff *skb, u32 pid, u32 seq, int type, int len, int flags)
        nlh->nlmsg_flags = flags;
        nlh->nlmsg_pid = pid;
        nlh->nlmsg_seq = seq;
-       memset(NLMSG_DATA(nlh) + len, 0, NLMSG_ALIGN(size) - size);
+       if (!__builtin_constant_p(size) || NLMSG_ALIGN(size) - size != 0)
+               memset(NLMSG_DATA(nlh) + len, 0, NLMSG_ALIGN(size) - size);
        return nlh;
 }