Author: yongari
Date: Thu Sep 30 22:34:15 2010
New Revision: 213316
URL: http://svn.freebsd.org/changeset/base/213316

Log:
  Fix IFCAP_TXCSUM/IFCAP_RXCSUM handling. Previously bge(4) used
  IFCAP_HWCSUM to know which capability should be changed such that
  disabling RX checksun offloading resulted in disabling TX checksum
  offloading.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c   Thu Sep 30 22:03:43 2010        (r213315)
+++ head/sys/dev/bge/if_bge.c   Thu Sep 30 22:34:15 2010        (r213316)
@@ -4630,15 +4630,19 @@ bge_ioctl(struct ifnet *ifp, u_long comm
                        }
                }
 #endif
-               if (mask & IFCAP_HWCSUM) {
-                       ifp->if_capenable ^= IFCAP_HWCSUM;
-                       if (IFCAP_HWCSUM & ifp->if_capenable &&
-                           IFCAP_HWCSUM & ifp->if_capabilities)
+               if ((mask & IFCAP_TXCSUM) != 0 &&
+                   (ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
+                       ifp->if_capenable ^= IFCAP_TXCSUM;
+                       if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
                                ifp->if_hwassist |= sc->bge_csum_features;
                        else
                                ifp->if_hwassist &= ~sc->bge_csum_features;
                }
 
+               if ((mask & IFCAP_RXCSUM) != 0 &&
+                   (ifp->if_capabilities & IFCAP_RXCSUM) != 0)
+                       ifp->if_capenable ^= IFCAP_RXCSUM;
+
                if ((mask & IFCAP_TSO4) != 0 &&
                    (ifp->if_capabilities & IFCAP_TSO4) != 0) {
                        ifp->if_capenable ^= IFCAP_TSO4;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to