Author: yongari
Date: Tue Nov 25 04:33:02 2008
New Revision: 185286
URL: http://svn.freebsd.org/changeset/base/185286

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

Modified:
  head/sys/dev/fxp/if_fxp.c

Modified: head/sys/dev/fxp/if_fxp.c
==============================================================================
--- head/sys/dev/fxp/if_fxp.c   Tue Nov 25 04:16:16 2008        (r185285)
+++ head/sys/dev/fxp/if_fxp.c   Tue Nov 25 04:33:02 2008        (r185286)
@@ -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;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to