From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f227.google.com (mail-yw1-f227.google.com [209.85.128.227]) (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 692AF1DFF7 for ; Fri, 13 Mar 2026 00:14:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.227 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773360890; cv=none; b=Rv4h+Rp+WtTzBIUHX4qKJVqLi8/zbOczNnpMGb4eFVqLpB6R4pM9ZemqeXOXUh3gNQU41GiG73UDAQBXu64++9ErtDihpOlSrxqWKIsv0TY7IWb6HuCfAXoIuuq8eUblXHcxOeDtZ437NXOQ6GR1ag5KNzfaTZA1nJO7hXZrP/Q= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773360890; c=relaxed/simple; bh=KdGdIosxGVCnVTmHO7nXcKEdC5Z/YV7CUzxv2yNCaAI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=kclbuMHlXlV6DoKtDvt/SUD+1otJKy2t5hCCJsoXKavmKagZcRfB6lpH/z0gG5VYwGpAil5FEYS0yvp1Z503cILQN4oXFSebTAPT2b3eC4dGmYH5h+enY98t3r8K0h1L8HP3MxBi/SsUkGi6GmvQjQX84a+nkk+uXTg4l9ECGto= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=fOho1MWa; arc=none smtp.client-ip=209.85.128.227 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="fOho1MWa" Received: by mail-yw1-f227.google.com with SMTP id 00721157ae682-799001d73bdso13293087b3.0 for ; Thu, 12 Mar 2026 17:14:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773360886; x=1773965686; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:dkim-signature:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gkE3keE0SIqgIdKBzUwz50sfscGesq4fS8DBICuT/rA=; b=q38QAw5QEyCGYOabTTAK7NYTCgtEvm5gx3r2wVPRbYSeq7XHo5sGBC1pfTMFKMxcqE 8Qpk+nzGdFxInUuN/rTPWufaAvFPgEt1lyFRy71zuXQEv3yRhaFV50XuOSKnaMOsgzOs rf30rU1DoOgOyncizd3ibUhD60XuWF0aCPTtNaTQPpvlNEbyT98L19mm5MmIf+YD68Ma ZjXnO+EZJVBl3KnLBjhWZg+lJ9FURNT9gPIzbzCsiM0aeCUcw17vXJ0Ag9u/TtlQAVCf /ijG2PjUvSLK3hu4b3OikcNwYiL4fuzq4UsEs+IC5j35EEwkiv0yJ8YHlgJRGWt72XlH pbTQ== X-Forwarded-Encrypted: i=1; AJvYcCXRFJOqbD0wgdxiLeTi81zCH1h+UjDmLPfM/z5rOVyVeHK9wgVbh4mf75e/CsdOdUK8pYCKyiAfNDA67sA=@vger.kernel.org X-Gm-Message-State: AOJu0YyZGvvnB8DcuWcYhicMvRU7ZggxCnNpHWrL0Uzfie+kpOC1SXN3 ykMj7kfxeoH+BozU8zwmq3kL+cmwChcPK6FFQFTMY+pj1YX52zRcAD/QFoYARZxYwfk631I306r tRmp+nFxgfEVz/rSWShWawST/vPPMTStUKTo5LgUVqB9c21vDiRFX1XRKTFzA0xkiMYacVholh/ +YVqxv8jC1VzELL7iiGR2nWDpWoIgIIo9krUTpgVoMRwFBSQwRFeHkfy+uuMUC+RgF1RuZRmYPy hd9PTtHG/Ymh35D0MkNl1D3qA== X-Gm-Gg: ATEYQzzYsC7rwol9GSh/OviICZzTgJghnE99k29RY2vU6TuU71QDy6tquVebGI3ZMwC uI1GJ86AByx158Rz3PGo68QAwrDM9rDg62AQv8R8adOXrqV9pzssNO1m/h12u9TWjSsnx+4NMte Txb6Aghv7BsFQv2kPkixTzg/QvISS9kO6EDkeVww20mTV46WadHOgWkpZDTLI7lozzuHTry5KZJ kRiGPEtzASMRjXKC7TGwd85eAPpYS4fLbF0W+bbBtsS83rD3NbnZlv6bfv0FF/0LXg7y9zcgu+F MMV04O58O5YvBpgRa0jouqr7RZRW0OU5N/BHq5bC/8e/WLo2u0hGXZ0f9YQTSqMDew+SusqyTAE rgiBuwD76QFWK+n3+bHQoXSG5xW6wRM3sjsSN+KYADNp6DSbo95vlEazM/s/66p/MxYnB3XPVZe /kL9GuSrhCooLwS4Y7Fx5529scAWEo70uDLYwBuCciJoKj9xVET/3eC14J56E4HoK4pw== X-Received: by 2002:a05:690c:62c7:b0:798:980f:670e with SMTP id 00721157ae682-79a1c21e0admr16195907b3.62.1773360886419; Thu, 12 Mar 2026 17:14:46 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-117.dlp.protect.broadcom.com. [144.49.247.117]) by smtp-relay.gmail.com with ESMTPS id 00721157ae682-79917dd9b6asm6694817b3.6.2026.03.12.17.14.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Mar 2026 17:14:46 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-8cd7fc27cf7so872573485a.1 for ; Thu, 12 Mar 2026 17:14:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1773360886; x=1773965686; 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=gkE3keE0SIqgIdKBzUwz50sfscGesq4fS8DBICuT/rA=; b=fOho1MWaUddYNSfJFcfWw9JTjsLO4HtPlcPgnB3O8DfrBEeKquA0a1Rvb1R+aVzlyf +r8Mo+jsHP92JrrW9xbBBLKEbAPRjNCksCXRDGEfFzFFO86A8/SGwdaJ9oc1nQsHCASD 8CckBOIyBmJ+fkkDTBTNSmlDRyH46XZpEc+k0= X-Forwarded-Encrypted: i=1; AJvYcCVjy3Noiaen8y0VbBKMNOQQme4g/tUe/p1IRwHOO47yUpK0Hk5Vnu3+7GT6AfFgg/ZTT5ou4jKbDGtHYOA=@vger.kernel.org X-Received: by 2002:a05:620a:4153:b0:8c7:139a:bf48 with SMTP id af79cd13be357-8cdb5b20a75mr233369285a.49.1773360885653; Thu, 12 Mar 2026 17:14:45 -0700 (PDT) X-Received: by 2002:a05:620a:4153:b0:8c7:139a:bf48 with SMTP id af79cd13be357-8cdb5b20a75mr233365285a.49.1773360885124; Thu, 12 Mar 2026 17:14:45 -0700 (PDT) Received: from JRM7P7Q02P ([192.19.144.250]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cda1fddfe8sm437647185a.12.2026.03.12.17.14.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 17:14:44 -0700 (PDT) Date: Thu, 12 Mar 2026 20:14:39 -0400 From: Andy Gospodarek To: Chris J Arges Cc: michael.chan@broadcom.com, pavan.chebbi@broadcom.com, joe@dama.to, kuba@kernel.org, Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , kernel-team@cloudflare.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Subject: Re: [PATCH net-next v3 1/5] bnxt_en: use bnxt_xdp_buff for xdp context Message-ID: References: <20260306230600.1628196-1-carges@cloudflare.com> <20260306230600.1628196-2-carges@cloudflare.com> Precedence: bulk X-Mailing-List: linux-kernel@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: <20260306230600.1628196-2-carges@cloudflare.com> X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e On Fri, Mar 06, 2026 at 05:00:16PM -0600, Chris J Arges wrote: > This adds bnxt_xdp_buff which embeds the xdp_buff struct and stores > pointers to hardware RX completion descriptors (rx_cmp and rx_cmp_ext) > along with the completion type. > > Signed-off-by: Chris J Arges > Reviewed-by: Joe Damato Reviewed-by: Andy Gospodarek > --- > drivers/net/ethernet/broadcom/bnxt/bnxt.c | 25 +++++++++++-------- > drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h | 7 ++++++ > 2 files changed, 22 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c > index c982aac714d1..ab73aad40593 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c > @@ -2118,7 +2118,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, > bool xdp_active = false; > dma_addr_t dma_addr; > struct sk_buff *skb; > - struct xdp_buff xdp; > + struct bnxt_xdp_buff bnxt_xdp; > u32 flags, misc; > u32 cmpl_ts; > void *data; > @@ -2231,9 +2231,13 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, > dma_addr = rx_buf->mapping; > > if (bnxt_xdp_attached(bp, rxr)) { > - bnxt_xdp_buff_init(bp, rxr, cons, data_ptr, len, &xdp); > + bnxt_xdp.rxcmp = rxcmp; > + bnxt_xdp.rxcmp1 = rxcmp1; > + bnxt_xdp.cmp_type = cmp_type; > + > + bnxt_xdp_buff_init(bp, rxr, cons, data_ptr, len, &bnxt_xdp.xdp); > if (agg_bufs) { > - u32 frag_len = bnxt_rx_agg_netmems_xdp(bp, cpr, &xdp, > + u32 frag_len = bnxt_rx_agg_netmems_xdp(bp, cpr, &bnxt_xdp.xdp, > cp_cons, > agg_bufs, > false); > @@ -2245,12 +2249,12 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, > } > > if (xdp_active) { > - if (bnxt_rx_xdp(bp, rxr, cons, &xdp, data, &data_ptr, &len, event)) { > + if (bnxt_rx_xdp(bp, rxr, cons, &bnxt_xdp.xdp, data, &data_ptr, &len, event)) { > rc = 1; > goto next_rx; > } > - if (xdp_buff_has_frags(&xdp)) { > - sinfo = xdp_get_shared_info_from_buff(&xdp); > + if (xdp_buff_has_frags(&bnxt_xdp.xdp)) { > + sinfo = xdp_get_shared_info_from_buff(&bnxt_xdp.xdp); > agg_bufs = sinfo->nr_frags; > } else { > agg_bufs = 0; > @@ -2261,7 +2265,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, > if (!xdp_active) > skb = bnxt_copy_skb(bnapi, data_ptr, len, dma_addr); > else > - skb = bnxt_copy_xdp(bnapi, &xdp, len, dma_addr); > + skb = bnxt_copy_xdp(bnapi, &bnxt_xdp.xdp, len, dma_addr); > bnxt_reuse_rx_data(rxr, cons, data); > if (!skb) { > if (agg_bufs) { > @@ -2269,7 +2273,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, > bnxt_reuse_rx_agg_bufs(cpr, cp_cons, 0, > agg_bufs, false); > else > - bnxt_xdp_buff_frags_free(rxr, &xdp); > + bnxt_xdp_buff_frags_free(rxr, &bnxt_xdp.xdp); > } > goto oom_next_rx; > } > @@ -2293,10 +2297,11 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, > if (!skb) > goto oom_next_rx; > } else { > - skb = bnxt_xdp_build_skb(bp, skb, agg_bufs, rxr, &xdp); > + skb = bnxt_xdp_build_skb(bp, skb, agg_bufs, > + rxr, &bnxt_xdp.xdp); > if (!skb) { > /* we should be able to free the old skb here */ > - bnxt_xdp_buff_frags_free(rxr, &xdp); > + bnxt_xdp_buff_frags_free(rxr, &bnxt_xdp.xdp); > goto oom_next_rx; > } > } > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h > index 8933a0dec09a..8c66698bde11 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h > @@ -12,6 +12,13 @@ > > DECLARE_STATIC_KEY_FALSE(bnxt_xdp_locking_key); > > +struct bnxt_xdp_buff { > + struct xdp_buff xdp; > + struct rx_cmp *rxcmp; > + struct rx_cmp_ext *rxcmp1; > + u8 cmp_type; > +}; > + > struct bnxt_sw_tx_bd *bnxt_xmit_bd(struct bnxt *bp, > struct bnxt_tx_ring_info *txr, > dma_addr_t mapping, u32 len,