From: John Fastabend Subject: [PATCH bpf-next 6/8] bpf: sk_msg, zap ingress queue on psock down Date: Thu, 20 Dec 2018 11:35:34 -0800 Message-ID: <1545334536-766-7-git-send-email-john.fastabend@gmail.com> References: <1545334536-766-1-git-send-email-john.fastabend@gmail.com> Cc: netdev@vger.kernel.org, john.fastabend@gmail.com To: ast@kernel.org, daniel@iogearbox.net Return-path: Received: from mail-it1-f195.google.com ([209.85.166.195]:40294 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730737AbeLTTgV (ORCPT ); Thu, 20 Dec 2018 14:36:21 -0500 Received: by mail-it1-f195.google.com with SMTP id h193so3401820ita.5 for ; Thu, 20 Dec 2018 11:36:20 -0800 (PST) In-Reply-To: <1545334536-766-1-git-send-email-john.fastabend@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: In addition to releasing any cork'ed data on a psock when the psock is removed we should also release any skb's in the ingress work queue. Otherwise the skb's eventually get free'd but late in the tear down process so we see the WARNING due to non-zero sk_forward_alloc. void sk_stream_kill_queues(struct sock *sk) { ... WARN_ON(sk->sk_forward_alloc); ... } Fixes: 604326b41a6f ("bpf, sockmap: convert to generic sk_msg interface") Signed-off-by: John Fastabend --- net/core/skmsg.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/core/skmsg.c b/net/core/skmsg.c index 3df7627..86c9726 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -572,6 +572,7 @@ void sk_psock_drop(struct sock *sk, struct sk_psock *psock) { rcu_assign_sk_user_data(sk, NULL); sk_psock_cork_free(psock); + sk_psock_zap_ingress(psock); sk_psock_restore_proto(sk, psock); write_lock_bh(&sk->sk_callback_lock); -- 2.7.4