Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
Re: ix(4): remove redundant code
To:
Jan Klemkow <jan@openbsd.org>
Cc:
tech@openbsd.org
Date:
Tue, 23 Jun 2026 17:04:09 +0200

Download raw body.

Thread
On Mon, Jun 22, 2026 at 11:12:49PM +0200, Jan Klemkow wrote:
> Hi,
> 
> paylen is already calculated by ether_extract_headers().
> So, we can remove some redundant lines here.
> 
> ok?

OK bluhm@

> Index: dev/pci/if_ix.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/if_ix.c,v
> diff -u -p -r1.226 if_ix.c
> --- dev/pci/if_ix.c	18 May 2026 12:14:38 -0000	1.226
> +++ dev/pci/if_ix.c	22 Jun 2026 21:07:35 -0000
> @@ -2682,7 +2682,7 @@ ixgbe_tx_offload(struct mbuf *mp, uint32
>  
>  	if (mp->m_pkthdr.csum_flags & M_TCP_TSO) {
>  		if (ext.tcp && mp->m_pkthdr.ph_mss > 0) {
> -			uint32_t hdrlen, thlen, paylen, outlen;
> +			uint32_t thlen, outlen;
>  
>  			thlen = ext.tcphlen;
>  
> @@ -2690,17 +2690,15 @@ ixgbe_tx_offload(struct mbuf *mp, uint32
>  			*mss_l4len_idx |= outlen << IXGBE_ADVTXD_MSS_SHIFT;
>  			*mss_l4len_idx |= thlen << IXGBE_ADVTXD_L4LEN_SHIFT;
>  
> -			hdrlen = sizeof(*ext.eh) + ext.iphlen + thlen;
> -			paylen = mp->m_pkthdr.len - hdrlen;
>  			CLR(*olinfo_status, IXGBE_ADVTXD_PAYLEN_MASK
>  			    << IXGBE_ADVTXD_PAYLEN_SHIFT);
> -			*olinfo_status |= paylen << IXGBE_ADVTXD_PAYLEN_SHIFT;
> +			*olinfo_status |= ext.paylen << IXGBE_ADVTXD_PAYLEN_SHIFT;
>  
>  			*cmd_type_len |= IXGBE_ADVTXD_DCMD_TSE;
>  			offload = 1;
>  
>  			tcpstat_add(tcps_outpkttso,
> -			    (paylen + outlen - 1) / outlen);
> +			    (ext.paylen + outlen - 1) / outlen);
>  		} else
>  			tcpstat_inc(tcps_outbadtso);
>  	}
> @@ -3497,7 +3495,6 @@ ixgbe_rx_offload(uint32_t staterr, uint1
>  
>  	if (pkts > 1) {
>  		struct ether_extracted ext;
> -		uint32_t paylen;
>  
>  		/*
>  		 * Calculate the payload size:
> @@ -3508,11 +3505,7 @@ ixgbe_rx_offload(uint32_t staterr, uint1
>  		 * based on the total ip length field (ext.iplen).
>  		 */
>  		ether_extract_headers(m, &ext);
> -		paylen = ext.iplen;
> -		if (ext.ip4 || ext.ip6)
> -			paylen -= ext.iphlen;
>  		if (ext.tcp) {
> -			paylen -= ext.tcphlen;
>  			tcpstat_inc(tcps_inhwlro);
>  			tcpstat_add(tcps_inpktlro, pkts);
>  		} else {
> @@ -3523,9 +3516,9 @@ ixgbe_rx_offload(uint32_t staterr, uint1
>  		 * If we gonna forward this packet, we have to mark it as TSO,
>  		 * set a correct mss, and recalculate the TCP checksum.
>  		 */
> -		if (ext.tcp && paylen >= pkts) {
> +		if (ext.tcp && ext.paylen >= pkts) {
>  			SET(m->m_pkthdr.csum_flags, M_TCP_TSO);
> -			m->m_pkthdr.ph_mss = paylen / pkts;
> +			m->m_pkthdr.ph_mss = ext.paylen / pkts;
>  		}
>  		if (ext.tcp && ISSET(m->m_pkthdr.csum_flags, M_TCP_CSUM_IN_OK))
>  			SET(m->m_pkthdr.csum_flags, M_TCP_CSUM_OUT);
> 
>