From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9750C2989AD; Mon, 21 Jul 2025 15:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753112265; cv=none; b=SSXDG/wTqN01pu9LLG12ONdgQMHq6cOqCCMESzJHsKRmppvsaZuqZRVkWy+IoU/JgRFEghnfMu7IQy4rpTZ7usczHGJNKnQUMVRP/ENi1Eqt3Rrd+J0fCU3o2JgjzuHVfvAfDM5SX7iyBIiBRBK8jJp7s5bZwE7+ixG6xsp/M6g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753112265; c=relaxed/simple; bh=cGSbVptLFVlc7DyrJ9h4SjbakTeJrwXiH1ZP0XlHoLY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=lH7JGNZlLIeHpichDoKNtLZfffQBCVkDZHiENQAo838zzEbsVfMPxRroT/Znuk0d3wN4iMEGwvpl87JUbn3jb1xTRM5gLEf+Os4L39LXYYVjO35/SGiIF4yekgwaoAjHAzU6klEZGonYXD1eI8KaAsVoX1vvjthR/SbHhK+NIDM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CGf/exmB; arc=none smtp.client-ip=209.85.210.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CGf/exmB" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-7425bd5a83aso3855214b3a.0; Mon, 21 Jul 2025 08:37:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753112263; x=1753717063; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=SDh6f89OtCRQRfeV7TsPgYDLKkybdTNwjOtD8a9eZwA=; b=CGf/exmBiVsTPnk9okWkiIIm7XUrVpXOrWX+FI9W5bVtge7O0fzEKdVHUmZa72pHGV YIjL9/JAuFpV60EVvXc3VZ8EUP+yOLNPYjsjsAjFNtak84UKpxJNru9GFH1Ata13ynhQ I8sq2aBPchdn1UrNzeCKf+E2MorrgbTnLhKuLO0aivGQR5ivezNXAzMN06Fm6se8tsAu z7NUD6JKLmZG5AcpZs/hwYR1NSh1NOnATIbAI4qIqiD/f2Gdv1n3s5WuHtNE8KVCF7bG hn7pWyRl/nzG4tr3Go/yvPuq6Cc18SgrDHKror8b9G0pwZdCH/pJp/pBYge6PnNMbnFO MnTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753112263; x=1753717063; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SDh6f89OtCRQRfeV7TsPgYDLKkybdTNwjOtD8a9eZwA=; b=p4UqtDGDNNTmfFBxqlNDNrNfSIRnlImH55wTlhJY1b+8IUzq9nUxW32QJlEn2GY+SK 9Qr9mJNEYfL1WZaeWtKprBIMXgRQYVZGlC97UVFPtEQMlGAnW/e84QiQ6CIAsPyss+3S tcTbcP0mK3TIOvlqcsqqCT5tAo6StkfLHeD1lPPd1H31+6BdZoHIJ5xqSFKFhDDM9w0y yOapCF8BqPYkPqGhyIoRJCZmzB/W668fsvaFy+7qd3MUzGpbuxZ19XjRLxZTdVBfyFFN e8B8dZc8yJt5GlJPlFOUS6pfl0r4cfulPg9qKz5l/yyJyF4sfgRnP10eOsqd7A9EeiOj cIaQ== X-Forwarded-Encrypted: i=1; AJvYcCV5LsWMM8XAiT6TXI/g9c5icC6ubn0R8YHU7y0KihpCfpDYJ/7cUaY7ctA+NjUTCeYH0Ms=@vger.kernel.org, AJvYcCVxOHinb9Y1zdwyuOtmnVbDLm5L/ZEIijmCbMPWgIz7LdKzARuvfF/ZW0JKh+7GPIcSPt/RVuXe@vger.kernel.org X-Gm-Message-State: AOJu0Yz6boRomlZquT/c5prejZVd6hcofC12qlHQ9bidCcbyX2DAxiwy mCcMTMX/wDLsToeKhyoewiAFEI8JNS4b2MA9w2/cBLIwSG0Cge4UNlU= X-Gm-Gg: ASbGncuWP5wLILRjaxOfTAy6eDpvQvao9hGh+14KK/MbCiCNBjbcaIJAHDk5sRI8GEd 2k+56T0r62PsZqFeolw5f+UN0LW+/MWH5aUjpB6pXiehVCqhfiFaV3oWqFtKirq9cZfc9lN1le+ HJsSvD5Ml5kV7lQWyCjjr78NoK7upHWqbqy5BrARMyGS6shF6HXgdQtHpA+AXNPkxR1YsmDUYUQ XuklmajW/gxoLvAtQZVV8kJYQtDXd3OAKvNmF8YtGoE2sDE7b8VvxJyWusT/xmS13CtbFKmaG5l HD5/A7wlmzJWWoPR2J/coPjx2sOMg3gux/uZS2LNXDRW5dsuD6fY71rZ+4Ml2K9CgwzA0VUvOMX HIRMcHZnznfKZYfdgOEaBYj2h5X36yzxXHxOSasGgp/8IVSv2YlLDsJDHMiBzgM8qBHEvXw== X-Google-Smtp-Source: AGHT+IEaIspNuv99Qrfx4sC4q4Y93JQlnVL5ZHYgom/rDGQzYOHx3souBPvCEmbOTJYWppBnuW8WRw== X-Received: by 2002:a05:6a00:856:b0:748:f1ba:9b0d with SMTP id d2e1a72fcca58-75723e74318mr31994730b3a.11.1753112262692; Mon, 21 Jul 2025 08:37:42 -0700 (PDT) Received: from localhost (c-73-158-218-242.hsd1.ca.comcast.net. [73.158.218.242]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-759cb155de8sm6048908b3a.84.2025.07.21.08.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 08:37:42 -0700 (PDT) Date: Mon, 21 Jul 2025 08:37:41 -0700 From: Stanislav Fomichev To: Jason Xing Cc: anthony.l.nguyen@intel.com, przemyslaw.kitszel@intel.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, bjorn@kernel.org, magnus.karlsson@intel.com, maciej.fijalkowski@intel.com, jonathan.lemon@gmail.com, sdf@fomichev.me, ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, linux-stm32@st-md-mailman.stormreply.com, bpf@vger.kernel.org, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Jason Xing Subject: Re: [PATCH net-next 1/2] stmmac: xsk: fix underflow of budget in zerocopy mode Message-ID: References: <20250721083343.16482-1-kerneljasonxing@gmail.com> <20250721083343.16482-2-kerneljasonxing@gmail.com> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20250721083343.16482-2-kerneljasonxing@gmail.com> On 07/21, Jason Xing wrote: > From: Jason Xing > > The issue can happen when the budget number of descs are consumed. As > long as the budget is decreased to zero, it will again go into > while (budget-- > 0) statement and get decreased by one, so the > underflow issue can happen. It will lead to returning true whereas the > expected value should be false. > > In this case where all the budget are used up, it means zc function > should return false to let the poll run again because normally we > might have more data to process. > > Fixes: 132c32ee5bc0 ("net: stmmac: Add TX via XDP zero-copy socket") > Signed-off-by: Jason Xing > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index f350a6662880..ea5541f9e9a6 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -2596,7 +2596,7 @@ static bool stmmac_xdp_xmit_zc(struct stmmac_priv *priv, u32 queue, u32 budget) > > budget = min(budget, stmmac_tx_avail(priv, queue)); > > - while (budget-- > 0) { > + while (budget > 0) { There is a continue on line 2621. Should we do 'for (; budget > 0; budget--)' instead? And maybe the same for ixgbe [0]? 0: https://lore.kernel.org/netdev/20250720091123.474-3-kerneljasonxing@gmail.com/ From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5B3BFC83F25 for ; Mon, 21 Jul 2025 15:37:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 0DD2141014; Mon, 21 Jul 2025 15:37:49 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id NpOtkFzM9ot0; Mon, 21 Jul 2025 15:37:46 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org C488F40F8E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1753112266; bh=SDh6f89OtCRQRfeV7TsPgYDLKkybdTNwjOtD8a9eZwA=; h=Date:From:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=ejMiRb1XWZRuNIYP/CScq3uV1QGjSuzMOkqaXOMMLavBMpqCWJNOF2XccuGA0RFV5 jJ4n/Q8/tJJjNtZc+Yd1OsKNlS7dJBIbXzPX8+mjYWASwxosFVga6Qg8NvbNs5as8D jmdIAUp2jwzog05qb1Y7VDB1m5+NTrCuK6a29hM0reI5rj9aG06XOv8N8hLO8Bge6I XbzShRvVrYHU8m/NjWxuuipaKKtA/JLgGyKMwpB+0A79XhcrxZ8im5FEuB4ZM8z7FJ c5C0+RApO5ZYd4OE18Hn3z900iUjxN/YOHLA/xBijbPADm1dICnDGYKkUPruway+pm ZomZGRF9BPp9Q== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp4.osuosl.org (Postfix) with ESMTP id C488F40F8E; Mon, 21 Jul 2025 15:37:46 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists1.osuosl.org (Postfix) with ESMTP id 9C09DDA for ; Mon, 21 Jul 2025 15:37:44 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 8E1E660E52 for ; Mon, 21 Jul 2025 15:37:44 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 4i7IbqhkBbBl for ; Mon, 21 Jul 2025 15:37:43 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::42a; helo=mail-pf1-x42a.google.com; envelope-from=stfomichev@gmail.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org B2922610AE DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org B2922610AE Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by smtp3.osuosl.org (Postfix) with ESMTPS id B2922610AE for ; Mon, 21 Jul 2025 15:37:43 +0000 (UTC) Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-748feca4a61so2480760b3a.3 for ; Mon, 21 Jul 2025 08:37:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753112263; x=1753717063; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SDh6f89OtCRQRfeV7TsPgYDLKkybdTNwjOtD8a9eZwA=; b=SzLHLdJNKa7e/zY85wV8MnIy4vn+JGWO5Ye3LYkIzacf2WWTvN6qnjz2Ws4dbwe1p+ oxW0LHNSX6slmzAmwzervX3wHI1fEsX5Nxa9rjxxbknoKjEUgOVncqzFf0vP14opqcb0 AS3kOfvLoys7/FVrLJqvA+EsiIBsq1TaG7vdjkcuZPQBKMKRJFwn7CYhX6H54rbklxT8 d9uQC5HBCFMIvb3h9j9t02zrwaIUSQysrm148shuBQ99BZZ7YhzqoFGnBK4Z4p9FIPdw /5rvWGAQDu99SOpJU15BFAwoLGT/r5JKAg4Co83smcLmFgusqr7/a6IxDF+oCeXQd396 Gy5g== X-Forwarded-Encrypted: i=1; AJvYcCVVBYabcieTqFNDsoNjQgPvQMmES4cdgeDfxq5xl7ibVbfAJ1nimabPgBcX65z8BEQlEtZoEbwbqI6kNu93zKQ=@lists.osuosl.org X-Gm-Message-State: AOJu0YzzCUmX0a4YLjwKGh/RPM5KJ/mPn/or26fDO3iqyblNC0gMshBU VdWfDZitCxGoieOGyd0P7kPw1zgc950WyLu9il77tQLVJqz1CdCI+QU= X-Gm-Gg: ASbGncsrbwTtRIKRNVAgw6ZR4ysMIv/Em/jO5yabT2utzpFZPG9jfkcR3MF9Hqq7zfT zJvC+LZuWl8irQBzfEXhAMZhUxTijL+uayLnA6y+wmYS8Bir2Unoaa1hUhcahkpqY33sHQlccBL fkyqVfvwExwgh+jE4pWTcFyPOe2HkesjsH2Pb71Ros3XogWUQYjldVD+RfjEtwzwNhFiL3rKNtl hpaclLlUKxsvx2TUoLfLkLQc4SciiovUpHTtksIfEdwPp2xAJM5jUNnuKQzhLf2hN5DLttxe4dN 16jMa65ygoyqlTlioeV1qLsfLqg2Bp3EDMUsOfJirRGI/+Bg/ZUTQxZz6QjZDBz0FWnf1BAQmFb s33XrOQVb9lGajwQWMvq5oyAVEcrBWv8221fZXi9XbzrY8fi9PriYWp8saTm+L5BHutCELQ== X-Google-Smtp-Source: AGHT+IEaIspNuv99Qrfx4sC4q4Y93JQlnVL5ZHYgom/rDGQzYOHx3souBPvCEmbOTJYWppBnuW8WRw== X-Received: by 2002:a05:6a00:856:b0:748:f1ba:9b0d with SMTP id d2e1a72fcca58-75723e74318mr31994730b3a.11.1753112262692; Mon, 21 Jul 2025 08:37:42 -0700 (PDT) Received: from localhost (c-73-158-218-242.hsd1.ca.comcast.net. [73.158.218.242]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-759cb155de8sm6048908b3a.84.2025.07.21.08.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 08:37:42 -0700 (PDT) Date: Mon, 21 Jul 2025 08:37:41 -0700 From: Stanislav Fomichev To: Jason Xing Cc: anthony.l.nguyen@intel.com, przemyslaw.kitszel@intel.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, bjorn@kernel.org, magnus.karlsson@intel.com, maciej.fijalkowski@intel.com, jonathan.lemon@gmail.com, sdf@fomichev.me, ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, linux-stm32@st-md-mailman.stormreply.com, bpf@vger.kernel.org, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Jason Xing Message-ID: References: <20250721083343.16482-1-kerneljasonxing@gmail.com> <20250721083343.16482-2-kerneljasonxing@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20250721083343.16482-2-kerneljasonxing@gmail.com> X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753112263; x=1753717063; darn=lists.osuosl.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=SDh6f89OtCRQRfeV7TsPgYDLKkybdTNwjOtD8a9eZwA=; b=bDzLDnlZ0kxrnYWtwc7ghHXktvbMAq2CKEjG6u8PPCYDlyBbBEWwJviTJ0Wj+0yjvW bFrSk8GhpgUbBI0k+yZz9BSAjFeLvBtZi9jW9ez8GPR6U7sPDDSibVn7EuEfa3hiL2Se O7C604kEQ89DNg5YXmdpiFFKpnj8wRdME+mj5kvgKHZA7ci4c8DMLzzZd8ooxXbQw8u7 2uLZAHcfHhq1naxq55woUGtSYbEPegxSGk8d7NBtd0MY/TOP7sNa7VcyKufdiCr0N50S 4m+GHnTo8JcdNc7vQkqLf/lYawbOwkLfkRON6owRBM3R2R1yVN7rw69S7sf5gqFiFdRy RYpg== X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=none dis=none) header.from=gmail.com X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=bDzLDnlZ Subject: Re: [Intel-wired-lan] [PATCH net-next 1/2] stmmac: xsk: fix underflow of budget in zerocopy mode X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" On 07/21, Jason Xing wrote: > From: Jason Xing > > The issue can happen when the budget number of descs are consumed. As > long as the budget is decreased to zero, it will again go into > while (budget-- > 0) statement and get decreased by one, so the > underflow issue can happen. It will lead to returning true whereas the > expected value should be false. > > In this case where all the budget are used up, it means zc function > should return false to let the poll run again because normally we > might have more data to process. > > Fixes: 132c32ee5bc0 ("net: stmmac: Add TX via XDP zero-copy socket") > Signed-off-by: Jason Xing > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index f350a6662880..ea5541f9e9a6 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -2596,7 +2596,7 @@ static bool stmmac_xdp_xmit_zc(struct stmmac_priv *priv, u32 queue, u32 budget) > > budget = min(budget, stmmac_tx_avail(priv, queue)); > > - while (budget-- > 0) { > + while (budget > 0) { There is a continue on line 2621. Should we do 'for (; budget > 0; budget--)' instead? And maybe the same for ixgbe [0]? 0: https://lore.kernel.org/netdev/20250720091123.474-3-kerneljasonxing@gmail.com/