Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb68b647 authored by Christoph Paasch's avatar Christoph Paasch Committed by David S. Miller
Browse files

ipv4: Don't add TCP-code in inet_sock_destruct

parent 9baa0b03
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -574,6 +574,8 @@ static inline bool fastopen_cookie_present(struct tcp_fastopen_cookie *foc)
	return foc->len != -1;
}

extern void tcp_sock_destruct(struct sock *sk);

static inline int fastopen_init_queue(struct sock *sk, int backlog)
{
	struct request_sock_queue *queue =
@@ -585,6 +587,8 @@ static inline int fastopen_init_queue(struct sock *sk, int backlog)
		    sk->sk_allocation);
		if (queue->fastopenq == NULL)
			return -ENOMEM;

		sk->sk_destruct = tcp_sock_destruct;
		spin_lock_init(&queue->fastopenq->lock);
	}
	queue->fastopenq->max_qlen = backlog;
+0 −2
Original line number Diff line number Diff line
@@ -149,8 +149,6 @@ void inet_sock_destruct(struct sock *sk)
		pr_err("Attempt to release alive inet socket %p\n", sk);
		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_wmem_alloc));
+7 −0
Original line number Diff line number Diff line
@@ -2325,6 +2325,13 @@ int tcp_disconnect(struct sock *sk, int flags)
}
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)
{
	return capable(CAP_NET_ADMIN) &&