From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (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 5845C35F603 for ; Thu, 2 Apr 2026 16:45:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775148363; cv=none; b=H6TwnVL16o1lsL/gC7Z7D05YkURDaaUbiNR48IxAWfh1fzMYHWa2h6oMKVPFALuYuhIbEvRVcQsCz8kpWiDAQxEyQhRQaMiRKYIjiEnkpWME+Plg76Rihsqn6Jb4EuspZ8p5uAOkmk3KdGXwQEIT3ZoF9+R1Svfxo9ADvev+2gY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775148363; c=relaxed/simple; bh=2hpKj0W2rpZV1X/Nk0YTKGlMEGHEBv4l7AGunYq/qzo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=SxIaoFtAXTFPORjQ13YWLM2cvQzrdOuRd7o0/5BXdG2pDnAlp0mJJYknw7Ws78+dWWYP5q4SEeKKLsr9luHuf8MvZLHwupi3ww3ze7n7CVIwQrQ9+emoJVjVLlTRttzHyk3fyYHn6McbH7qfq9KRKY8idicYNWTKtv0VUPSEPgo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=dama.to; spf=none smtp.mailfrom=dama.to; dkim=pass (2048-bit key) header.d=dama-to.20230601.gappssmtp.com header.i=@dama-to.20230601.gappssmtp.com header.b=c9KuThKQ; arc=none smtp.client-ip=209.85.215.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=dama.to Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=dama.to Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dama-to.20230601.gappssmtp.com header.i=@dama-to.20230601.gappssmtp.com header.b="c9KuThKQ" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c76c067bc51so427641a12.0 for ; Thu, 02 Apr 2026 09:45:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dama-to.20230601.gappssmtp.com; s=20230601; t=1775148355; x=1775753155; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:mail-followup-to:message-id:subject:cc:to :from:date:from:to:cc:subject:date:message-id:reply-to; bh=Cbhezx2WOqt+8+1TPDtVgJycu5mOCitaWwg/IVagY8o=; b=c9KuThKQ0vrO0wR3O6YcONyNY+YNbu3QBk33RB5t3NIz/SQBmAhlgdJueikA8Wh8wu NoX8sOPwApukUcRqtDiTyqr9NmNSk9A2pmGZrhuA9E93VTYjJYL2/HNUjRo3JrJp1uKO aivSnLJ8CWC2sm6SwpqmZn18zQ5Rtv08yrV8GTHz3Zh3W61k+PjDXmNXGhXmer8qVTvc AmHr61v6LNXpQ2lK89a/u2HqLuYEvHjO6QmxK3wq7eC9Y4h+YTuG3GlvmAgHYmq6VQKa T7/KoVqtnlqnEt4nAhQJerPTXR2edKRd2eY1EaR/O/GQNa7MdyIh3SKagX2kXYEjhdKW uhdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775148355; x=1775753155; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:mail-followup-to:message-id:subject:cc:to :from:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Cbhezx2WOqt+8+1TPDtVgJycu5mOCitaWwg/IVagY8o=; b=S1jpa4K7EXWmyB7lPigIRmu9FwHIFfvYf5v0f7YtQtGsNttm91DpJZYdfY2a9OFd38 KafJIT4FW/3gbKh1RyxhFEeqgfTuxPvuky6zz7qLRRg86h+HP2OqnLKx8iAWmjIN76LN 6eIo2p+c+HDHCi47TQDQZQb/vaeRTqanzUS+PKx2GrsC176EwXcBWXM/2wbMjoUwTZ1O /NMgzwELG1AMKO4YSNPf7rddD+OBYMS2KazC97xFP7lmiwjlhJabFphRJRGZF3PZmLqL aiGLCwimE4pr9ka9LS4vaojeybkPjsGHvieERNE7qmPx4CRU+R3o0ELgxhaFZn21SrQy x6WQ== X-Forwarded-Encrypted: i=1; AJvYcCVMQbFmr+4Ds8b4ZVwSUHBEZ2Vf2Ye148GeokNTbWA2ZdR+g7PUHwZNHTUoer0wyV95E7HPPPGLu9wT3pg=@vger.kernel.org X-Gm-Message-State: AOJu0Yxm3aWzf5PjNRGRF0RZqT/7AaioLjaGwDJddG8c5RmuKapK8Bcd Uz0JFeGxWgNH8vkMtPI0jBJflLHTSrRoKw1YatrFrZWiidwxyrBKOmx98uxZY1XAz44= X-Gm-Gg: ATEYQzyv9VpOMeafjlxNmRvXKaXzMwVAdvBTLVZd33eqa/5ySEjNlwE/ZS/dYc9N78Z 5KFIRhvAfle7bSWzWLEIvwuIgRctLQ2A5j9hA2UpGHn3pyzWvH4I9u2+v375AmV+DJXJKONQEgk /3c6XFFz8LBXhGYXqjkHrtKxh5aeZh7b1g01Lisg+CRkkzhxCKRJW+3Uuu+SrTvoykMVfygRgj7 LUJ5AC9cHiAIqkj+5lZy5+fNpdXo+ri3DOm3kRq2bgdRfKh2ZBxrn5yMrk7RKLO2kQLlAECUO1M 0k8P5ZgKeBrK+/tFDXmT2G+OIHqu61dLQWLqtfWlLBAqm/OwNWvCsA1S5eT6sbqbta1MpCKlz38 UVbyCFWv4fe3vsK4fK/yu+jPVGTe7IJWiM0Fo/cpQXDgaApvk4QK1pj8VYenV/NBe8+IP6VkerO It+A9O X-Received: by 2002:a05:6a21:3391:b0:39f:2c96:e0d7 with SMTP id adf61e73a8af0-39f2c96e653mr114237637.17.1775148355229; Thu, 02 Apr 2026 09:45:55 -0700 (PDT) Received: from localhost ([2a03:2880:2ff:5d::]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c76d2684b75sm22853a12.14.2026.04.02.09.45.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 09:45:54 -0700 (PDT) Date: Thu, 2 Apr 2026 09:45:53 -0700 From: Joe Damato To: Eric Dumazet Cc: netdev@vger.kernel.org, Michael Chan , Pavan Chebbi , Andrew Lunn , "David S. Miller" , Jakub Kicinski , Paolo Abeni , horms@kernel.org, linux-kernel@vger.kernel.org, leon@kernel.org Subject: Re: [net-next v7 07/10] net: bnxt: Implement software USO Message-ID: Mail-Followup-To: Joe Damato , Eric Dumazet , netdev@vger.kernel.org, Michael Chan , Pavan Chebbi , Andrew Lunn , "David S. Miller" , Jakub Kicinski , Paolo Abeni , horms@kernel.org, linux-kernel@vger.kernel.org, leon@kernel.org References: <20260401233745.2333858-1-joe@dama.to> <20260401233745.2333858-8-joe@dama.to> 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 Content-Transfer-Encoding: 8bit In-Reply-To: On Wed, Apr 01, 2026 at 05:35:14PM -0700, Eric Dumazet wrote: > On Wed, Apr 1, 2026 at 4:38 PM Joe Damato wrote: > > [...] > > + /* Zero the csum fields so tso_build_hdr will propagate zeroes into > > + * every segment header. HW csum offload will recompute from scratch. > > + */ > > We might need a call to skb_cow_head(skb, 0) before changing ->check > (or anything in skb->head) > > Alternative would be to perform the clears after each tso_build_hdr() > and leave skb->head untouched. Thanks for the careful review; I appreciate your time and energy. I'll remove the existing clears you pointed and perform the clear after each tso_build_hdr() as you suggested with something like: @@ -103,6 +96,7 @@ netdev_tx_t bnxt_sw_udp_gso_xmit(struct bnxt *bp, unsigned int offset; dma_addr_t dma_addr; struct tx_bd *txbd; + struct udphdr *uh; void *this_hdr; int bd_count; __le32 csum; @@ -116,6 +110,17 @@ netdev_tx_t bnxt_sw_udp_gso_xmit(struct bnxt *bp, tso_build_hdr(skb, this_hdr, &tso, seg_payload, last); + /* Zero stale csum fields copied from the original skb; + * HW offload recomputes from scratch. + */ + uh = this_hdr + skb_transport_offset(skb); + uh->check = 0; + if (!tso.ipv6) { + struct iphdr *iph = this_hdr + skb_network_offset(skb); + + iph->check = 0; + }