diff options
| -rw-r--r-- | include/net/inet_sock.h | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index de0ecc71cf03..cbcda0b0b964 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h @@ -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;  }  | 
