svn commit: r188371 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
dev/cxgb dev/fxp
Pyun YongHyeon
yongari at FreeBSD.org
Sun Feb 8 19:40:53 PST 2009
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;
More information about the svn-src-stable-7
mailing list