Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Feb 2009 03:40:51 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r188371 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/fxp
Message-ID:  <200902090340.n193eq9A044021@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yongari
Date: Mon Feb  9 03:40:51 2009
New Revision: 188371
URL: http://svn.freebsd.org/changeset/base/188371

Log:
  MFC r185286:
    Simplify Tx checksum offload configuration. Also clear CSUM_IP if
    we've computed IP checksum with software method.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/fxp/if_fxp.c

Modified: stable/7/sys/dev/fxp/if_fxp.c
==============================================================================
--- stable/7/sys/dev/fxp/if_fxp.c	Mon Feb  9 03:38:01 2009	(r188370)
+++ stable/7/sys/dev/fxp/if_fxp.c	Mon Feb  9 03:40:51 2009	(r188371)
@@ -1295,14 +1295,10 @@ fxp_encap(struct fxp_softc *sc, struct m
 	 * in the TCP header. The stack should have
 	 * already done this for us.
 	 */
-	if (m->m_pkthdr.csum_flags) {
-		if (m->m_pkthdr.csum_flags & CSUM_DELAY_DATA) {
-			txp->tx_cb->ipcb_ip_schedule =
-			    FXP_IPCB_TCPUDP_CHECKSUM_ENABLE;
-			if (m->m_pkthdr.csum_flags & CSUM_TCP)
-				txp->tx_cb->ipcb_ip_schedule |=
-				    FXP_IPCB_TCP_PACKET;
-		}
+	if (m->m_pkthdr.csum_flags & FXP_CSUM_FEATURES) {
+		txp->tx_cb->ipcb_ip_schedule = FXP_IPCB_TCPUDP_CHECKSUM_ENABLE;
+		if (m->m_pkthdr.csum_flags & CSUM_TCP)
+			txp->tx_cb->ipcb_ip_schedule |= FXP_IPCB_TCP_PACKET;
 
 #ifdef FXP_IP_CSUM_WAR
 		/*
@@ -1334,6 +1330,7 @@ fxp_encap(struct fxp_softc *sc, struct m
 				ip = mtod(m, struct ip *);
 				ip->ip_sum = in_cksum(m, ip->ip_hl << 2);
 				m->m_data -= ETHER_HDR_LEN;
+				m->m_pkthdr.csum_flags &= ~CSUM_IP;
 			} else {
 				txp->tx_cb->ipcb_ip_activation_high =
 				    FXP_IPCB_HARDWAREPARSING_ENABLE;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902090340.n193eq9A044021>