提交 476eab82 编写于 作者: O Octavian Purdila 提交者: David S. Miller

net: remove inet6_reqsk_alloc

Since pktops is only used for IPv6 only and opts is used for IPv4
only, we can move these fields into a union and this allows us to drop
the inet6_reqsk_alloc function as after this change it becomes
equivalent with inet_reqsk_alloc.

This patch also fixes a kmemcheck issue in the IPv6 stack: the flags
field was not annotated after a request_sock was allocated.
Signed-off-by: NOctavian Purdila <octavian.purdila@intel.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 aa27fc50
...@@ -256,16 +256,6 @@ static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk) ...@@ -256,16 +256,6 @@ static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk)
return inet_sk(__sk)->pinet6; return inet_sk(__sk)->pinet6;
} }
static inline struct request_sock *inet6_reqsk_alloc(struct request_sock_ops *ops)
{
struct request_sock *req = reqsk_alloc(ops);
if (req)
inet_rsk(req)->pktopts = NULL;
return req;
}
static inline struct raw6_sock *raw6_sk(const struct sock *sk) static inline struct raw6_sock *raw6_sk(const struct sock *sk)
{ {
return (struct raw6_sock *)sk; return (struct raw6_sock *)sk;
......
...@@ -88,8 +88,10 @@ struct inet_request_sock { ...@@ -88,8 +88,10 @@ struct inet_request_sock {
acked : 1, acked : 1,
no_srccheck: 1; no_srccheck: 1;
kmemcheck_bitfield_end(flags); kmemcheck_bitfield_end(flags);
struct ip_options_rcu *opt; union {
struct sk_buff *pktopts; struct ip_options_rcu *opt;
struct sk_buff *pktopts;
};
u32 ir_mark; u32 ir_mark;
}; };
......
...@@ -386,7 +386,7 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb) ...@@ -386,7 +386,7 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1)
goto drop; goto drop;
req = inet6_reqsk_alloc(&dccp6_request_sock_ops); req = inet_reqsk_alloc(&dccp6_request_sock_ops);
if (req == NULL) if (req == NULL)
goto drop; goto drop;
......
...@@ -187,7 +187,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb) ...@@ -187,7 +187,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
goto out; goto out;
ret = NULL; ret = NULL;
req = inet6_reqsk_alloc(&tcp6_request_sock_ops); req = inet_reqsk_alloc(&tcp6_request_sock_ops);
if (!req) if (!req)
goto out; goto out;
......
...@@ -1010,7 +1010,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) ...@@ -1010,7 +1010,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
goto drop; goto drop;
} }
req = inet6_reqsk_alloc(&tcp6_request_sock_ops); req = inet_reqsk_alloc(&tcp6_request_sock_ops);
if (req == NULL) if (req == NULL)
goto drop; goto drop;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册