Received: by 2002:a05:6a10:c7c6:0:0:0:0 with SMTP id h6csp1658310pxy; Mon, 2 Aug 2021 07:14:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyA2b+Uh/uzsZ1aN4oid8zE69wcBx5pMcWGBazmLzQrk35m3YX4APrAvEubuZxUgUyhRQ9l X-Received: by 2002:a02:cf31:: with SMTP id s17mr15222653jar.46.1627913673529; Mon, 02 Aug 2021 07:14:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627913673; cv=none; d=google.com; s=arc-20160816; b=fMhWXPvYSHL9mNjavLAClGKLArCJERgLVWD6WIhb3xolKGjp94ybssL3YMNZ+1MbFe qmyrYItBrlz+2x/JCTtyKIiEyo+60LEiWdPGPNJsv/MYPXxejCoXZHnbejgfhJgMqSJq QJ64E3TqyGFdFOAwFBiPiUOahAv9Dlgh0WssahRA4gDfhviVzCpE1l5QbvYs9XG70y3Z RwOUDORDIN7N7AfGNbrI1bW9ObjNo6tOuyvgBlT0RqWJgrHMap/fBLqtLRxkVWcoivYU 8geQ5bGfO6b9hKj81TXMccx6WIOJPfvVtgAy7E6bii4yvMdGbAovfHlv6pS1F+TqIYGc 8EHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=s2Z8z6icPVGQpoFa56ipp8hT6VnaLiEhU9GyLDRQf8s=; b=jfR3G18+lZHapoAtdeOtrFL86kZn3zaXTD/4PA/14c8eVu9w3YytmHI9KJ5rdT9JoM 5O88R5f8rmUXv5N2wQrsUo22Cf3TFVSVJse/hxbFiJQLYcQAJ8bJBQseFOm8SaT97afm 5IWkQUXGZxHoPSqVQXVv8KzOuWK/0XqT1XTEZqI1r/EPCJEFJ+Sfdn3GoRBbE+K76Qjk vUkopAgRNB4VhcTpd2eNYLDhDbfei8O11qEB8cIPxaZLWScJPF8sMdNk808nN6p+7QJE YYMsI6LcmB7u9q1Aot2jg1HkoV7APkF2IVUzRGmUfiqQ4BnlvgLTk5T2vwMNZ3lguRR8 kqGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FzpEC9j1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u11si11853540jak.14.2021.08.02.07.14.22; Mon, 02 Aug 2021 07:14:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FzpEC9j1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235819AbhHBONl (ORCPT + 99 others); Mon, 2 Aug 2021 10:13:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:49762 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236343AbhHBOCK (ORCPT ); Mon, 2 Aug 2021 10:02:10 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1645D61132; Mon, 2 Aug 2021 13:56:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1627912618; bh=LledJ40SuU6u/o005yaxGhJF2oQz7Xfix55IiIKMjXA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FzpEC9j1Bd+xUFAaUfENNA5qGJQ+D3n/6q+GbNM7YqqnYlCJYxwrswt3Ddoad0nOR 0t2LMpxlXmGtr4jTGQ34BcptlovActGglHJgztX6Z8AhjBJOj0IWUbeZgIWyYNwpQK M1mfzI2idkwF4jp/AWhwzT5qtJgwyKRHQd4YStcU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, John Fastabend , Andrii Nakryiko , Jakub Sitnicki , Martin KaFai Lau , Sasha Levin Subject: [PATCH 5.13 074/104] bpf, sockmap: Zap ingress queues after stopping strparser Date: Mon, 2 Aug 2021 15:45:11 +0200 Message-Id: <20210802134346.452247267@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802134344.028226640@linuxfoundation.org> References: <20210802134344.028226640@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: John Fastabend [ Upstream commit 343597d558e79fe704ba8846b5b2ed24056b89c2 ] We don't want strparser to run and pass skbs into skmsg handlers when the psock is null. We just sk_drop them in this case. When removing a live socket from map it means extra drops that we do not need to incur. Move the zap below strparser close to avoid this condition. This way we stop the stream parser first stopping it from processing packets and then delete the psock. Fixes: a136678c0bdbb ("bpf: sk_msg, zap ingress queue on psock down") Signed-off-by: John Fastabend Signed-off-by: Andrii Nakryiko Acked-by: Jakub Sitnicki Acked-by: Martin KaFai Lau Link: https://lore.kernel.org/bpf/20210727160500.1713554-2-john.fastabend@gmail.com Signed-off-by: Sasha Levin --- net/core/skmsg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/core/skmsg.c b/net/core/skmsg.c index b2410a1bfa23..45b3a3adc886 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -790,8 +790,6 @@ static void sk_psock_destroy(struct work_struct *work) void sk_psock_drop(struct sock *sk, struct sk_psock *psock) { - sk_psock_stop(psock, false); - write_lock_bh(&sk->sk_callback_lock); sk_psock_restore_proto(sk, psock); rcu_assign_sk_user_data(sk, NULL); @@ -801,6 +799,8 @@ void sk_psock_drop(struct sock *sk, struct sk_psock *psock) sk_psock_stop_verdict(sk, psock); write_unlock_bh(&sk->sk_callback_lock); + sk_psock_stop(psock, false); + INIT_RCU_WORK(&psock->rwork, sk_psock_destroy); queue_rcu_work(system_wq, &psock->rwork); } -- 2.30.2