Author: yongari
Date: Wed Mar 13 02:11:45 2013
New Revision: 248227
URL: http://svnweb.freebsd.org/changeset/base/248227

Log:
  Disable TX IP header checksum offloading on RL_HWREV_8168CP. The
  controller generates wrong checksummed frame if the IP packet has
  IP options.
  
  Submitted by: Alexander Bluhm via brad@openbsd

Modified:
  head/sys/dev/re/if_re.c

Modified: head/sys/dev/re/if_re.c
==============================================================================
--- head/sys/dev/re/if_re.c     Wed Mar 13 01:40:01 2013        (r248226)
+++ head/sys/dev/re/if_re.c     Wed Mar 13 02:11:45 2013        (r248227)
@@ -1587,7 +1587,8 @@ re_attach(device_t dev)
         * packet has IP options so disable TX IP checksum offloading.
         */
        if (sc->rl_hwrev->rl_rev == RL_HWREV_8168C ||
-           sc->rl_hwrev->rl_rev == RL_HWREV_8168C_SPIN2)
+           sc->rl_hwrev->rl_rev == RL_HWREV_8168C_SPIN2 ||
+           sc->rl_hwrev->rl_rev == RL_HWREV_8168CP)
                ifp->if_hwassist = CSUM_TCP | CSUM_UDP;
        else
                ifp->if_hwassist = CSUM_IP | CSUM_TCP | CSUM_UDP;
@@ -3419,7 +3420,8 @@ re_ioctl(struct ifnet *ifp, u_long comma
                        if ((ifp->if_capenable & IFCAP_TXCSUM) != 0) {
                                rev = sc->rl_hwrev->rl_rev;
                                if (rev == RL_HWREV_8168C ||
-                                   rev == RL_HWREV_8168C_SPIN2)
+                                   rev == RL_HWREV_8168C_SPIN2 ||
+                                   rev == RL_HWREV_8168CP)
                                        ifp->if_hwassist |= CSUM_TCP | CSUM_UDP;
                                else
                                        ifp->if_hwassist |= RE_CSUM_FEATURES;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to