From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) (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 23BFB417D8F for ; Wed, 22 Jul 2026 22:16:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.197 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784758604; cv=none; b=ZM/Po4dHP8EW8+CVBGHzfMvo6Vp+zNo51EcEGWMyLqMoHlQ82NTjVHE/4UApmsAKvkLE0BnbUzAljXqPgp1uApp+vkKln5zZECMJEOMaVswBmPdtxtd0TgIO0PDEhsatlcljKPtN8rr393lt0+rbdGLKk81/WVMqHL6VXRAFP9E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784758604; c=relaxed/simple; bh=KRo8BqXZbY7QVPrkWY+7m9Y76muhXbcl9oTt8JcSLZY=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hL1CmKu5RXzIDLq/Fcw9hBFmGLWxWphjFsVlFoP8taFd5K6XO/u23z00N9KUyO3UUFFQDpov39iKkZijJ8hmGN2q7DGoutmiYZSOadZM7gzl/w0/dOov3gcHVAbKmYsIHPXX72vGGetHB9vNawrm2VqhApuzmCfRd59kse9+tf0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--joshwash.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=FxUUYCk7; arc=none smtp.client-ip=209.85.210.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--joshwash.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="FxUUYCk7" Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-84a251c2e3eso7446513b3a.1 for ; Wed, 22 Jul 2026 15:16:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1784758601; x=1785363401; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=lP2vHby1eDwBtKihRSSnShKlcm4qY1KhKGcFEWBrgR0=; b=FxUUYCk7PJ4tv9OUUHr8CwGnxSmeMWLiCXV1HBhrylZd97YRXkKXSD3iZojcjV6GOf 3DIeMGaObnO39V0Tbf7WB7nq4j8Pyhbs7ptgQw9snHvCoBsYroboifqUtTpYNzeTK1h3 NOxXYLv2bHTMWU+KejMlbPjBOdndOwH9I4GT4GgT3utJMqloQS0nQofUItZKkMs1sran CA8ROliA5/TzesWLIwYIaJ89WAAjrloVBLUN8v2KKp8CJK8Y5biFwAe5DO5BfefEwA5O KhJ2o/nTNKh1/29k72f+dqU00KFbW/BIQQTBVKDpHjt1ACljMoVAeRQoeVsSAOs6oRpN 4T2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784758601; x=1785363401; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lP2vHby1eDwBtKihRSSnShKlcm4qY1KhKGcFEWBrgR0=; b=pdRd8NIGQuBHxl3YYxTXEg5Jedm5WUjFbup2SWRXRQRVD8/SSxzIXrcEEpSrVOnQRc uhmaUd17SUmuuTCEh46aem7lvk17c9Ap345iYsu1SZhqyxea58NNpj0Fcd5lrr31Qc7V 7MqyGmAumLemyclW8YAxwnYK/i3QwbIrjFM9K5y0HTFOJ/Xr3fuFYOsYqD2SP585yg1S CUMOLyw1ebi6dsKdH6DonGJSCHQlflwPDl+QRJDwGUvr1kMSADjbU5OtDeHamlKgCnIN ZKBYF6QlnfI0rZprblyj6r0E+6lylLVFK/4vDDU3d4VJQ2w4k/O39mptYK8ZVkK1ha8B ojfA== X-Forwarded-Encrypted: i=1; AHgh+RrRY0bEd6ncEVtA7N3kVMSXB2ohmhaTAVrIJuu6zwhrdQZyRAqhjonfllAhnIc+VyU9QtG9TuZRG2R/7hA=@vger.kernel.org X-Gm-Message-State: AOJu0YyYFTio+c71ufqTw1uIp/dRBqASWdGD42ta8QzYfljCgJgTgYWe 0opxlZ0TzKfnwzUxzWrrE77+YpGggw5F6K37E30aZTovFsrPnxZ9CFWSvVrHFPEwyVfJ8IMZSsH 3b2B4SI8Z4n+eiA== X-Received: from pfbcb7.prod.google.com ([2002:a05:6a00:4307:b0:84b:9a71:ba78]) (user=joshwash job=prod-delivery.src-stubby-dispatcher) by 2002:aa7:8889:0:b0:845:dcc8:9da with SMTP id d2e1a72fcca58-84e2e92aa9cmr122192b3a.22.1784758601149; Wed, 22 Jul 2026 15:16:41 -0700 (PDT) Date: Wed, 22 Jul 2026 15:16:33 -0700 In-Reply-To: <20260722221634.186886-1-joshwash@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260722221634.186886-1-joshwash@google.com> X-Mailer: git-send-email 2.55.0.229.g6434b31f56-goog Message-ID: <20260722221634.186886-2-joshwash@google.com> Subject: [PATCH net-next v3 1/2] gve: use xdp_build_skb methods for XDP_PASS case From: Joshua Washington To: netdev@vger.kernel.org Cc: Joshua Washington , Harshitha Ramamurthy , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jordan Rhee , Tim Hostetler , Ankit Garg , linux-kernel@vger.kernel.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Newer common methods have been introduced to construct SKBs in the event of XDP_PASS because many drivers replicated very similar functionality. Update GVE to use these common methods for copy mode and zero-copy mode. Reviewed-by: Harshitha Ramamurthy Reviewed-by: Jordan Rhee Signed-off-by: Joshua Washington --- v3: - Newly introduced. Ensures that XDP metadata is passed onto SKB in XDP_PASS case. --- drivers/net/ethernet/google/gve/gve_rx_dqo.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c index 02cba280d81a..907a0c15bf30 100644 --- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c +++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c @@ -736,8 +736,7 @@ static int gve_rx_xsk_dqo(struct napi_struct *napi, struct gve_rx_ring *rx, } /* Copy the data to skb */ - rx->ctx.skb_head = gve_rx_copy_data(priv->dev, napi, - xdp->data, buf_len); + rx->ctx.skb_head = xdp_build_skb_from_zc(xdp); if (unlikely(!rx->ctx.skb_head)) { xsk_buff_free(xdp); gve_free_buf_state(rx, buf_state); @@ -745,8 +744,6 @@ static int gve_rx_xsk_dqo(struct napi_struct *napi, struct gve_rx_ring *rx, } rx->ctx.skb_tail = rx->ctx.skb_head; - /* Free XSK buffer and Buffer state */ - xsk_buff_free(xdp); gve_free_buf_state(rx, buf_state); /* Update Stats */ @@ -899,9 +896,17 @@ static int gve_rx_dqo(struct napi_struct *napi, struct gve_rx_ring *rx, return 0; } + rx->ctx.skb_head = xdp_build_skb_from_buff(&gve_xdp.xdp); + if (unlikely(!rx->ctx.skb_head)) + goto error; + rx->ctx.skb_tail = rx->ctx.skb_head; + + gve_reuse_buffer(rx, buf_state); + u64_stats_update_begin(&rx->statss); rx->xdp_actions[XDP_PASS]++; u64_stats_update_end(&rx->statss); + return 0; } if (eop && buf_len <= priv->rx_copybreak && -- 2.55.0.229.g6434b31f56-goog