net: annotate bitfields in struct inet_sock
Vegard Nossum [Tue, 9 Sep 2008 04:43:12 +0000 (06:43 +0200)]
Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com>

include/net/inet_sock.h

index de0ecc7..cbcda0b 100644 (file)
@@ -17,6 +17,7 @@
 #define _INET_SOCK_H
 
 
+#include <linux/kmemcheck.h>
 #include <linux/string.h>
 #include <linux/types.h>
 #include <linux/jhash.h>
@@ -66,14 +67,16 @@ struct inet_request_sock {
        __be32                  loc_addr;
        __be32                  rmt_addr;
        __be16                  rmt_port;
-       u16                     snd_wscale : 4, 
-                               rcv_wscale : 4, 
+       kmemcheck_bitfield_begin(flags);
+       u16                     snd_wscale : 4,
+                               rcv_wscale : 4,
                                tstamp_ok  : 1,
                                sack_ok    : 1,
                                wscale_ok  : 1,
                                ecn_ok     : 1,
                                acked      : 1,
                                no_srccheck: 1;
+       kmemcheck_bitfield_end(flags);
        struct ip_options       *opt;
 };
 
@@ -198,9 +201,12 @@ static inline int inet_sk_ehashfn(const struct sock *sk)
 static inline struct request_sock *inet_reqsk_alloc(struct request_sock_ops *ops)
 {
        struct request_sock *req = reqsk_alloc(ops);
+       struct inet_request_sock *ireq = inet_rsk(req);
 
-       if (req != NULL)
-               inet_rsk(req)->opt = NULL;
+       if (req != NULL) {
+               kmemcheck_annotate_bitfield(ireq, flags);
+               ireq->opt = NULL;
+       }
 
        return req;
 }