Re: ix(4): remove redundant code

Alexander Bluhm <[email protected]>
Newsgroups gmane.os.openbsd.tech
Message-ID <[email protected]>
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);
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.