mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 22:50:41 +00:00
ipv4: Don't add TCP-code in inet_sock_destruct
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be> Acked-by: H.K. Jerry Chu <hkchu@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9baa0b0364
commit
bb68b64724
@ -574,6 +574,8 @@ static inline bool fastopen_cookie_present(struct tcp_fastopen_cookie *foc)
|
|||||||
return foc->len != -1;
|
return foc->len != -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern void tcp_sock_destruct(struct sock *sk);
|
||||||
|
|
||||||
static inline int fastopen_init_queue(struct sock *sk, int backlog)
|
static inline int fastopen_init_queue(struct sock *sk, int backlog)
|
||||||
{
|
{
|
||||||
struct request_sock_queue *queue =
|
struct request_sock_queue *queue =
|
||||||
@ -585,6 +587,8 @@ static inline int fastopen_init_queue(struct sock *sk, int backlog)
|
|||||||
sk->sk_allocation);
|
sk->sk_allocation);
|
||||||
if (queue->fastopenq == NULL)
|
if (queue->fastopenq == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
sk->sk_destruct = tcp_sock_destruct;
|
||||||
spin_lock_init(&queue->fastopenq->lock);
|
spin_lock_init(&queue->fastopenq->lock);
|
||||||
}
|
}
|
||||||
queue->fastopenq->max_qlen = backlog;
|
queue->fastopenq->max_qlen = backlog;
|
||||||
|
@ -149,8 +149,6 @@ void inet_sock_destruct(struct sock *sk)
|
|||||||
pr_err("Attempt to release alive inet socket %p\n", sk);
|
pr_err("Attempt to release alive inet socket %p\n", sk);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sk->sk_protocol == IPPROTO_TCP)
|
|
||||||
kfree(inet_csk(sk)->icsk_accept_queue.fastopenq);
|
|
||||||
|
|
||||||
WARN_ON(atomic_read(&sk->sk_rmem_alloc));
|
WARN_ON(atomic_read(&sk->sk_rmem_alloc));
|
||||||
WARN_ON(atomic_read(&sk->sk_wmem_alloc));
|
WARN_ON(atomic_read(&sk->sk_wmem_alloc));
|
||||||
|
@ -2325,6 +2325,13 @@ int tcp_disconnect(struct sock *sk, int flags)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(tcp_disconnect);
|
EXPORT_SYMBOL(tcp_disconnect);
|
||||||
|
|
||||||
|
void tcp_sock_destruct(struct sock *sk)
|
||||||
|
{
|
||||||
|
inet_sock_destruct(sk);
|
||||||
|
|
||||||
|
kfree(inet_csk(sk)->icsk_accept_queue.fastopenq);
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool tcp_can_repair_sock(const struct sock *sk)
|
static inline bool tcp_can_repair_sock(const struct sock *sk)
|
||||||
{
|
{
|
||||||
return capable(CAP_NET_ADMIN) &&
|
return capable(CAP_NET_ADMIN) &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user