From patchwork Wed Feb 26 06:18:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Taehee Yoo X-Patchwork-Id: 13991554 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.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 02F552690CF for ; Wed, 26 Feb 2025 06:18:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740550740; cv=none; b=Fd9aQHLYmbiKEYGMq+qYbpRP+xzAKmpZuBu5puzJXDub5Q0hreYCGljHKSg0t10Fn68iX9ldg0TLob7UyO0mDgfdf3czmcpurUwL/q4ujW8eUOdrvkrM78nmBY4Rx6oGROoRz37E6+uAxERvpViZSPrE6g0ihxjWqR8QhJBp6ng= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740550740; c=relaxed/simple; bh=LU0wqilXmhCzuGib5N/5Kem/0w7j66Obcrktgr93seY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=c/RX7Wpo8MJUkajm3le5jYO2flSOGYJ++2cpxYth/ZW3cvAEhOxRhyYt7VjDs2OYnvZw8smZiWQrtqmwQ5uJ+AmD5qun1JHuiJAfRCvPz+NKs3tfEI6h+1Cs9fiK56+Ud4ACv+pyhSJQ4ktLxt6VVhaHrtDNsIHK8p1htxZkZ70= 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=aUHiTbUX; arc=none smtp.client-ip=209.85.214.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="aUHiTbUX" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-22328dca22fso4783685ad.1 for ; Tue, 25 Feb 2025 22:18:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740550738; x=1741155538; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KUc/yOWXrzI03tdTzWuj8GH1wY3TkzvxdiesQKyGOV8=; b=aUHiTbUX+cCZASOxWZB+DEG0fArhmVs9yV+aXAeqHUX9pfpZslFrKTGU6re4aKySyk kVZZIKv8WxDtxVJDSpwmwT2uHzLVzX87dAN29UpKOXxqyJ2Uhss/08NVMqK5HYq/qtNk CalmfmhXc1GG38OaO/A7yE5LFPNHEmRgbyLihholePJYrWGVYyt6vvM+QHjpdxn0HMYy WDQgc01TB3CRhEA8rLi62MWOxlFrawxdU0/n7+41BAJAqBdGZk1tRpM5HM1pP8x7hBkm AT2e+6bvI5y3EC4KcBHjq3e4MAB21JyPfUAHwGSaa0Csfikc51VXfgL1WY5HR75tyx2/ +xLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740550738; x=1741155538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KUc/yOWXrzI03tdTzWuj8GH1wY3TkzvxdiesQKyGOV8=; b=DXZpUiTlRzK+SSeW7k4yPbxI5kyjwqQmB9QPmFzwfeufyieGsbbQYvWMwDBPO00Skc XpkfTB5msbHzuC7Zx2VZX1kJrn2XPYB6knYJg3LcWdSjcvlDP9jjzPclYYXAEzFYnlmg t5MkhzTLAdMbW6g6HZ1v4zX8IHbwba/lU7TvV+DMq8LIacFVH9liDesSWFeagr/eenVc dj5w0lX6puS+bxVt3bjw6epBmeKuAz4ZwwTx/AaFjOZWcXaSnD4xSYj1aRNUXNC6RrvS RTes0YhrxYcuNGm7R+lccm1bt0pHA4on42H++CeDV6kFBmB/F7XGWCSzlOvtqupQv1cC ZL7w== X-Forwarded-Encrypted: i=1; AJvYcCWcQsgfZ/4iF6eqxxPlo5DDfsUMXh2kRIBhfM9g4oB97nZbzXVdmzIob8T6Q8QAaCGv2y+a3h4=@vger.kernel.org X-Gm-Message-State: AOJu0YwaLtCyu/ZVNHu/MyMyMTWhBWQ6lnADCYYwS78WPbnsd+KcQV1J hWkMSmYrLL8yRr6XOM/jqiwonKu0ZoicOGTvkDHf/kktqbAf/F5O X-Gm-Gg: ASbGncvrplRzTk/4pwyvesLHerb1yc9icIGuTUJc+VwDSSjt3LNYcsBUPZCOYdWZZMr XDfm0iHUdMlyKc3HxE6E6AZQxThqB/ZNfGjer3W/cc4KY5cYEpxK5/Ia1KqHwKNFUV+/c/bGBSh M2uX/6mglThL9wm0m+Wg5NkbYCUA/yZxs6sohZ0Nvfy3k+mJ24tbBmDyKLgWyB1Vex0987/GDnV rYmTM4Gq38xtTw2X9fGnsQk1DsgWcZxMOlvoH1pNRZcS0EJZD4FfjPnTyoSuZtj+jy/3831yIAm z0dBkT9Yboi0a6o= X-Google-Smtp-Source: AGHT+IERSKGVo00iSfek3HtP8/mA7AE0vx5qxg7g6FumNmNUY8sd0fBBusWdsh9WXjPUITdGo0eMEQ== X-Received: by 2002:a17:902:d2c6:b0:21f:2a2:3c8b with SMTP id d9443c01a7336-22307b33043mr104510635ad.11.1740550738074; Tue, 25 Feb 2025 22:18:58 -0800 (PST) Received: from ap.. ([182.213.254.91]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2230a0a61fcsm24575535ad.191.2025.02.25.22.18.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2025 22:18:57 -0800 (PST) From: Taehee Yoo To: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, michael.chan@broadcom.com, pavan.chebbi@broadcom.com, andrew+netdev@lunn.ch, netdev@vger.kernel.org Cc: gospo@broadcom.com, somnath.kotur@broadcom.com, dw@davidwei.uk, horms@kernel.org, ap420073@gmail.com Subject: [PATCH net 1/3] eth: bnxt: fix truesize for mb-xdp-pass case Date: Wed, 26 Feb 2025 06:18:35 +0000 Message-Id: <20250226061837.1435731-2-ap420073@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250226061837.1435731-1-ap420073@gmail.com> References: <20250226061837.1435731-1-ap420073@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org When mb-xdp is set and return is XDP_PASS, packet is converted from xdp_buff to sk_buff with xdp_update_skb_shared_info() in bnxt_xdp_build_skb(). bnxt_xdp_build_skb() passes incorrect truesize argument to xdp_update_skb_shared_info(). truesize is calculated as BNXT_RX_PAGE_SIZE * sinfo->nr_frags but sinfo->nr_frags should not be used because sinfo->nr_frags is not yet updated. so it should use num_frags instead. Splat looks like: ------------[ cut here ]------------ WARNING: CPU: 2 PID: 0 at net/core/skbuff.c:6072 skb_try_coalesce+0x504/0x590 Modules linked in: xt_nat xt_tcpudp veth af_packet xt_conntrack nft_chain_nat xt_MASQUERADE nf_conntrack_netlink xfrm_user xt_addrtype nft_coms CPU: 2 UID: 0 PID: 0 Comm: swapper/2 Not tainted 6.14.0-rc2+ #3 RIP: 0010:skb_try_coalesce+0x504/0x590 Code: 4b fd ff ff 49 8b 34 24 40 80 e6 40 0f 84 3d fd ff ff 49 8b 74 24 48 40 f6 c6 01 0f 84 2e fd ff ff 48 8d 4e ff e9 25 fd ff ff <0f> 0b e99 RSP: 0018:ffffb62c4120caa8 EFLAGS: 00010287 RAX: 0000000000000003 RBX: ffffb62c4120cb14 RCX: 0000000000000ec0 RDX: 0000000000001000 RSI: ffffa06e5d7dc000 RDI: 0000000000000003 RBP: ffffa06e5d7ddec0 R08: ffffa06e6120a800 R09: ffffa06e7a119900 R10: 0000000000002310 R11: ffffa06e5d7dcec0 R12: ffffe4360575f740 R13: ffffe43600000000 R14: 0000000000000002 R15: 0000000000000002 FS: 0000000000000000(0000) GS:ffffa0755f700000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f147b76b0f8 CR3: 00000001615d4000 CR4: 00000000007506f0 PKRU: 55555554 Call Trace: ? __warn+0x84/0x130 ? skb_try_coalesce+0x504/0x590 ? report_bug+0x18a/0x1a0 ? handle_bug+0x53/0x90 ? exc_invalid_op+0x14/0x70 ? asm_exc_invalid_op+0x16/0x20 ? skb_try_coalesce+0x504/0x590 inet_frag_reasm_finish+0x11f/0x2e0 ip_defrag+0x37a/0x900 ip_local_deliver+0x51/0x120 ip_sublist_rcv_finish+0x64/0x70 ip_sublist_rcv+0x179/0x210 ip_list_rcv+0xf9/0x130 How to reproduce: ip link set $interface1 xdp obj xdp_pass.o ip link set $interface1 mtu 9000 up ip a a 10.0.0.1/24 dev $interface1 ip link set $interfac2 mtu 9000 up ip a a 10.0.0.2/24 dev $interface2 ping 10.0.0.1 -s 65000 Fixes: 1dc4c557bfed ("bnxt: adding bnxt_xdp_build_skb to build skb from multibuffer xdp_buff") Signed-off-by: Taehee Yoo Reviewed-by: Somnath Kotur --- drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c index e6c64e4bd66c..e9b49cb5b735 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c @@ -476,7 +476,7 @@ bnxt_xdp_build_skb(struct bnxt *bp, struct sk_buff *skb, u8 num_frags, } xdp_update_skb_shared_info(skb, num_frags, sinfo->xdp_frags_size, - BNXT_RX_PAGE_SIZE * sinfo->nr_frags, + BNXT_RX_PAGE_SIZE * num_frags, xdp_buff_is_frag_pfmemalloc(xdp)); return skb; } From patchwork Wed Feb 26 06:18:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Taehee Yoo X-Patchwork-Id: 13991555 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 96801269838 for ; Wed, 26 Feb 2025 06:19:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740550745; cv=none; b=sdPEJva9KCTZf0hxdipc/90ZfhhMqQSImG9qofVBldU48t976GEC2mlVYGluokN19QZJliMu2vuyYDsvkvWzRC92bxVuCfCNY8MUsKyp4Ni3fL/3vVdY/CUOdSLGu+NjuCuw2PQ35d1vbSxqYilu+qcVxhQWsi4BpbQN8g/gTl0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740550745; c=relaxed/simple; bh=yqIFQx2el2FIURYStm/i2d86KzmDGq+yYRjCkRqwGqo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tfTrGMAwdeZ1i89zj0dlG7UcSX24McP946epDH+jdqJ7yuuO6c1zL863LuWOfGXaxBR8R/n6fY4gTsVtB9BKJAiJ8iKlbMQ+Y6W3RVaj8ggTHDatpZ/Dv/E0QseGmAFLk9eGIdH/9K0ajJbSg9e7O2Hg6lN6pZvGG08bdBOzQPc= 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=b2R2qKU+; arc=none smtp.client-ip=209.85.214.172 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="b2R2qKU+" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-219f8263ae0so137031445ad.0 for ; Tue, 25 Feb 2025 22:19:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740550743; x=1741155543; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rI20Ufd1kjixh0WEHrG7aZ6R3l4igdmBMtgNg2/GwgA=; b=b2R2qKU+j070BgViWhI5/alVj1W5WSkOPsefOXERYdeNJdjVAPrSmrN9Kap00Rt0O0 YBVi0Bd11Ngpq3JyGLBMB3qI6mlayU7jNDUV+85QMB45UlburydTWo98mEsFOYmRoxd3 xNB09PqQuksuxP4JzBXagID3uyhKApezg9EZ1g8PUHIC3TwK7VJgW5ZD+WD4Toszlroe 8z9Io3LBfZsC97lzC6wXQiJf+Eg/BWnXK7ZcSIOtV5Qa8RHrGJaM/05nX0q3zcoK4Q1t FXONvy75wgl6MkmE1QDyJ+GnGh9iRKLuafNtJOl1lVbfMemhETZK1A8NBw7e/BLWJuQD n2CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740550743; x=1741155543; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rI20Ufd1kjixh0WEHrG7aZ6R3l4igdmBMtgNg2/GwgA=; b=nPjsoJ924gF+RCR461fL1UXTziX4+9rN2dmkPVZ337FTb7G8fUdZ4+uja1ThL383rW 2RX3NvRX5AF3a7bIlM32Gur5bUVTE70zUhqUZTA5fajyzaiqUvS4OnUmgJqEbz4/Cz4A GCfBCOIIe8RcAxKvA4GUKQyXUanT0QCJ21UQCoact3DUmvgp2MyozGLT5/WNCkTYkjMF z4iVHEookHQC8h3DjBz/vn98IylUtG3LUb2ZiOkaHNEMRS9zaniaLY2bovhZ4OvoAumT tfbnNprnRurRSti/vY1NFVUO1lzNiyQb9ZEaXNYsl8SBvgsEkr7JMX3guU7AsPPKHbWS RQbA== X-Forwarded-Encrypted: i=1; AJvYcCVy5Y5+k5G/PaME6e3m2+nI2D8ASsYmzxMP70CW0nE0fRDCXn15QL7m4hN/tXq53EhNtSqV6VI=@vger.kernel.org X-Gm-Message-State: AOJu0YzKBRjmuFeJ8oWgN14SEes09/Rn8cqoVsmAlFQIDxmFGHRDK/SX t8XVGZB5kqwPajLZAtpu0arAZqcmhs3DlzVAnqhX3eCxbyr8TkXk X-Gm-Gg: ASbGncvVKXPQ3D/OpRrd8nj0XIzqY1567BdN993fhRA19iYlslXxXTZhZzuX8OXB04d enSi4Ty6FSwRP9IQHe/SoDAWnRNvwZKjcYXmmO3W7AvYgrYCwysE87rKIhtxd0TRPCMCQ91HUF2 AH/RIQPJ/wTQS6QEoLaFkaySRvZ3gSZQ/NvFh9Ukz8p5luHDKVq/GaxT3n436MZtMrD31rA9BW6 k4NGI62739xGk0e19I5hQs/bHYGEZa/AN3Sm3oPtV9t54FiM5s+Dxy+X2KXjsI5DXXt+56zS/7Z URH16H+/8yn5OSw= X-Google-Smtp-Source: AGHT+IEGulbnCJBROWprGEwW5brE7y9PRNgHqSL0QS/MLcfNT1YWgCNAABG+EzVwO1xR6uenoI9j6A== X-Received: by 2002:a17:902:d485:b0:21f:6dca:6932 with SMTP id d9443c01a7336-221a11b9122mr335270405ad.43.1740550742749; Tue, 25 Feb 2025 22:19:02 -0800 (PST) Received: from ap.. ([182.213.254.91]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2230a0a61fcsm24575535ad.191.2025.02.25.22.18.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2025 22:19:01 -0800 (PST) From: Taehee Yoo To: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, michael.chan@broadcom.com, pavan.chebbi@broadcom.com, andrew+netdev@lunn.ch, netdev@vger.kernel.org Cc: gospo@broadcom.com, somnath.kotur@broadcom.com, dw@davidwei.uk, horms@kernel.org, ap420073@gmail.com Subject: [PATCH net 2/3] eth: bnxt: return fail if interface is down in bnxt_queue_mem_alloc() Date: Wed, 26 Feb 2025 06:18:36 +0000 Message-Id: <20250226061837.1435731-3-ap420073@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250226061837.1435731-1-ap420073@gmail.com> References: <20250226061837.1435731-1-ap420073@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org The bnxt_queue_mem_alloc() is called to allocate new queue memory when a queue is restarted. It internally accesses rx buffer descriptor corresponding to the index. The rx buffer descriptor is allocated and set when the interface is up and it's freed when the interface is down. So, if queue is restarted if interface is down, kernel panic occurs. Splat looks like: BUG: unable to handle page fault for address: 000000000000b240 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 3 UID: 0 PID: 1563 Comm: ncdevmem2 Not tainted 6.14.0-rc2+ #9 844ddba6e7c459cafd0bf4db9a3198e Hardware name: ASUS System Product Name/PRIME Z690-P D4, BIOS 0603 11/01/2021 RIP: 0010:bnxt_queue_mem_alloc+0x3f/0x4e0 [bnxt_en] Code: 41 54 4d 89 c4 4d 69 c0 c0 05 00 00 55 48 89 f5 53 48 89 fb 4c 8d b5 40 05 00 00 48 83 ec 15 RSP: 0018:ffff9dcc83fef9e8 EFLAGS: 00010202 RAX: ffffffffc0457720 RBX: ffff934ed8d40000 RCX: 0000000000000000 RDX: 000000000000001f RSI: ffff934ea508f800 RDI: ffff934ea508f808 RBP: ffff934ea508f800 R08: 000000000000b240 R09: ffff934e84f4b000 R10: ffff9dcc83fefa30 R11: ffff934e84f4b000 R12: 000000000000001f R13: ffff934ed8d40ac0 R14: ffff934ea508fd40 R15: ffff934e84f4b000 FS: 00007fa73888c740(0000) GS:ffff93559f780000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000000000b240 CR3: 0000000145a2e000 CR4: 00000000007506f0 PKRU: 55555554 Call Trace: ? __die+0x20/0x70 ? page_fault_oops+0x15a/0x460 ? exc_page_fault+0x6e/0x180 ? asm_exc_page_fault+0x22/0x30 ? __pfx_bnxt_queue_mem_alloc+0x10/0x10 [bnxt_en 7f85e76f4d724ba07471d7e39d9e773aea6597b7] ? bnxt_queue_mem_alloc+0x3f/0x4e0 [bnxt_en 7f85e76f4d724ba07471d7e39d9e773aea6597b7] netdev_rx_queue_restart+0xc5/0x240 net_devmem_bind_dmabuf_to_queue+0xf8/0x200 netdev_nl_bind_rx_doit+0x3a7/0x450 genl_family_rcv_msg_doit+0xd9/0x130 genl_rcv_msg+0x184/0x2b0 ? __pfx_netdev_nl_bind_rx_doit+0x10/0x10 ? __pfx_genl_rcv_msg+0x10/0x10 netlink_rcv_skb+0x54/0x100 genl_rcv+0x24/0x40 ... Fixes: 2d694c27d32e ("bnxt_en: implement netdev_queue_mgmt_ops") Signed-off-by: Taehee Yoo Reviewed-by: Somnath Kotur --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 7b8b5b39c7bb..1f7042248ccc 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -15439,6 +15439,9 @@ static int bnxt_queue_mem_alloc(struct net_device *dev, void *qmem, int idx) struct bnxt_ring_struct *ring; int rc; + if (!bp->rx_ring) + return -ENETDOWN; + rxr = &bp->rx_ring[idx]; clone = qmem; memcpy(clone, rxr, sizeof(*rxr)); From patchwork Wed Feb 26 06:18:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Taehee Yoo X-Patchwork-Id: 13991556 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 ED6E6268C46 for ; Wed, 26 Feb 2025 06:19:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740550749; cv=none; b=LZnFPrdi1ZfmnX4gk+bQLHDKBiZvzvdDktJJIbXKLL1zrZH418gmRXuejeywh+yfR8ZZTbT1I+PfjoPZ06VtwpRfxb98EMVrOGS/ENoxoROG5NvZrmXQhs91sF4iob7uVFceYvAzNdHoZiE3aS3vh4/1JJ1MNIQIAqSdlAP9XeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740550749; c=relaxed/simple; bh=46asehdSg2GU7JJlnu5Pb18hdoyKk5n96mazpKIgCsk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=goO2Q85NVRL3oLLOfKQclTlGzHe1cKZv4jaBJ0dgYoE7S+a+Dn+hzoORjkI1G2yvdmuKlCL2xSiPoQ/KOog+Neu7+3c+oQgJ8e8RA7U+SKZBJ9ysq7viXWhtvrYq13q1JNlKYLmLoadWjLBjH0O/0YA1yoHsIc4sbn4HfK6spBs= 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=nis/4rju; arc=none smtp.client-ip=209.85.214.172 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="nis/4rju" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-220c8f38febso134713435ad.2 for ; Tue, 25 Feb 2025 22:19:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740550747; x=1741155547; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PWPVRxzr7fehL1+SVq6iOEKJk/W/PWJ1tE9idqLYwoA=; b=nis/4rjup74LzrP/Q0wqzu3sXEUw1SWiPUu1wNq/5tzYXx4Qgq6J++L/mYmKa7Fh4L lxIc5FN7xMvQwXcgJsa0VrdynSe6ed6PaDgDcBfsRz/KGFGV7+3z0xiZzOsBtlowDPHK Iznyqn9+UypCd1dXTnDV9On24l1ZOYvPdPuqRDZT63NpIdKvK91CUuIq85SeODYR+QHv inJDZtGa15qnF1vbke6WivcD88CiDtAscf1fqpyZDnIc9cPb0ftX+uPTnV1rGjejH4+w C9Lk3oNo4+bygv9t/JamIadaKlR7eG1t2dhpTq+qpWeBbSHRtI4mAvfPfyPfjZoit0vy Tdjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740550747; x=1741155547; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PWPVRxzr7fehL1+SVq6iOEKJk/W/PWJ1tE9idqLYwoA=; b=ktNf3A/+xtLILnHzArt+yZHaVQVZvRMyZAFzKkO6w/kk99pHgls3egT65uRyYcqSWg pCPMkrfx81qK20/EG+sEaUbgJeKPTO4FX6DDlVbPQ4MINlA1Ao4LuSW+XP45ZEo0Ikjz AgCLUnhJtzJhwGagVSiEy0Ym6pvJEMR29r3HG4PKfAPmpeX6+MBPH6kK71o3wCnSlwZc etb4pNUgWeWIj3egtX6aOzFl5gafyCqJW1XGZ0cpNob4DgPJPyExf8KgRQQxkaOF+2iI 3mKA8zvFZPp0XEQEU764wlxXHGFN67AWDIf/jhKTVQMzFUDK5sCW9rVgl+nlekbcw4fU RR2w== X-Forwarded-Encrypted: i=1; AJvYcCXsbq3VHdLGk2X4dohEPoEdxCY5JJQhxdPlkakIOnYGceehAbJeV1l3Rgns8cfk5+B4JWrxdno=@vger.kernel.org X-Gm-Message-State: AOJu0YwKcr3esmXknQQ+FtIbP85HrvWv9lDvKRzMTIcfNhcNotl/ZLse 9EyxwsPQP6TFKL9ItOBiVRFaxtn6/yOJcspssFpSqeugCSZDzUOw X-Gm-Gg: ASbGncs5RAo6p60oSoyLjgdvHFNQ0+j++saRkSGZp6U0zc5gGfTi+/yBr1JvZe+Ysyr vMFXA1bZhv5ObgAogkxwQWm8CPGuW4Ov9HszdKFdrvPeSBWiIgCY3FjvAaKb9yESP+1a0+/GCht td1kVbkSRxmRnBOtAXjfpTezRJJrrYTyp9VRfvaQRoG4M1fUjnjYUBTpJpzl7Z2jwsyNuGYckrL qS+PPtftxIP0FoVdBIWdjw99MVfJz+RwzIhfhjYbPGRcx+mEyqbv1tgcL3xp8aDDQOJV1msaS33 Fz208IDTPhMFbQM= X-Google-Smtp-Source: AGHT+IGnm7RUiVp95jOQs2G5yspomxlHKmDuyAxhDnjCuLDliW3c62LexKQA6dhd2LAKoeAay/D8WA== X-Received: by 2002:a17:903:22c4:b0:215:a05d:fb05 with SMTP id d9443c01a7336-221a00156b6mr325413975ad.32.1740550747108; Tue, 25 Feb 2025 22:19:07 -0800 (PST) Received: from ap.. ([182.213.254.91]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2230a0a61fcsm24575535ad.191.2025.02.25.22.19.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2025 22:19:06 -0800 (PST) From: Taehee Yoo To: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, michael.chan@broadcom.com, pavan.chebbi@broadcom.com, andrew+netdev@lunn.ch, netdev@vger.kernel.org Cc: gospo@broadcom.com, somnath.kotur@broadcom.com, dw@davidwei.uk, horms@kernel.org, ap420073@gmail.com Subject: [PATCH net 3/3] eth: bnxt: do not use BNXT_VNIC_NTUPLE unconditionally in queue restart logic Date: Wed, 26 Feb 2025 06:18:37 +0000 Message-Id: <20250226061837.1435731-4-ap420073@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250226061837.1435731-1-ap420073@gmail.com> References: <20250226061837.1435731-1-ap420073@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org When a queue is restarted, it sets MRU to 0 for stopping packet flow. MRU variable is a member of vnic_info[], the first vnic_info is default and the second is ntuple. Only when ntuple is enabled(ethtool -K eth0 ntuple on), vnic_info for ntuple is allocated in init logic. The bp->nr_vnics indicates how many vnic_info are allocated. However bnxt_queue_{start | stop}() accesses vnic_info[BNXT_VNIC_NTUPLE] regardless of ntuple state. Fixes: b9d2956e869c ("bnxt_en: stop packet flow during bnxt_queue_stop/start") Signed-off-by: Taehee Yoo Reviewed-by: Somnath Kotur --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 1f7042248ccc..29849bfeed14 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -15635,7 +15635,7 @@ static int bnxt_queue_start(struct net_device *dev, void *qmem, int idx) cpr = &rxr->bnapi->cp_ring; cpr->sw_stats->rx.rx_resets++; - for (i = 0; i <= BNXT_VNIC_NTUPLE; i++) { + for (i = 0; i <= bp->nr_vnics; i++) { vnic = &bp->vnic_info[i]; rc = bnxt_hwrm_vnic_set_rss_p5(bp, vnic, true); @@ -15663,7 +15663,7 @@ static int bnxt_queue_stop(struct net_device *dev, void *qmem, int idx) struct bnxt_vnic_info *vnic; int i; - for (i = 0; i <= BNXT_VNIC_NTUPLE; i++) { + for (i = 0; i <= bp->nr_vnics; i++) { vnic = &bp->vnic_info[i]; vnic->mru = 0; bnxt_hwrm_vnic_update(bp, vnic,