Author: np
Date: Sat Jun 30 02:05:09 2012
New Revision: 237831
URL: http://svn.freebsd.org/changeset/base/237831

Log:
  - Assign (don't OR) the CSUM_XXX bits to csum_flags in the rx checksum code.
  - Fix TSO/TSO4 mixup.
  - Add IFCAP_LINKSTATE to the available/enabled capabilities.

Modified:
  head/sys/dev/cxgbe/t4_main.c
  head/sys/dev/cxgbe/t4_sge.c

Modified: head/sys/dev/cxgbe/t4_main.c
==============================================================================
--- head/sys/dev/cxgbe/t4_main.c        Sat Jun 30 01:40:29 2012        
(r237830)
+++ head/sys/dev/cxgbe/t4_main.c        Sat Jun 30 02:05:09 2012        
(r237831)
@@ -823,7 +823,7 @@ cxgbe_probe(device_t dev)
 
 #define T4_CAP (IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_HWCSUM | \
     IFCAP_VLAN_HWCSUM | IFCAP_TSO | IFCAP_JUMBO_MTU | IFCAP_LRO | \
-    IFCAP_VLAN_HWTSO | IFCAP_HWCSUM_IPV6)
+    IFCAP_VLAN_HWTSO | IFCAP_LINKSTATE | IFCAP_HWCSUM_IPV6)
 #define T4_CAP_ENABLE (T4_CAP)
 
 static int
@@ -1028,11 +1028,11 @@ fail:
                        ifp->if_capenable ^= IFCAP_TXCSUM;
                        ifp->if_hwassist ^= (CSUM_TCP | CSUM_UDP | CSUM_IP);
 
-                       if (IFCAP_TSO & ifp->if_capenable &&
+                       if (IFCAP_TSO4 & ifp->if_capenable &&
                            !(IFCAP_TXCSUM & ifp->if_capenable)) {
                                ifp->if_capenable &= ~IFCAP_TSO4;
                                if_printf(ifp,
-                                   "tso disabled due to -txcsum.\n");
+                                   "tso4 disabled due to -txcsum.\n");
                        }
                }
                if (mask & IFCAP_TXCSUM_IPV6) {

Modified: head/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- head/sys/dev/cxgbe/t4_sge.c Sat Jun 30 01:40:29 2012        (r237830)
+++ head/sys/dev/cxgbe/t4_sge.c Sat Jun 30 02:05:09 2012        (r237831)
@@ -1059,12 +1059,12 @@ t4_eth_rx(struct sge_iq *iq, const struc
        if (cpl->csum_calc && !cpl->err_vec) {
                if (ifp->if_capenable & IFCAP_RXCSUM &&
                    cpl->l2info & htobe32(F_RXF_IP)) {
-                       m0->m_pkthdr.csum_flags |= (CSUM_IP_CHECKED |
+                       m0->m_pkthdr.csum_flags = (CSUM_IP_CHECKED |
                            CSUM_IP_VALID | CSUM_DATA_VALID | CSUM_PSEUDO_HDR);
                        rxq->rxcsum++;
                } else if (ifp->if_capenable & IFCAP_RXCSUM_IPV6 &&
                    cpl->l2info & htobe32(F_RXF_IP6)) {
-                       m0->m_pkthdr.csum_flags |= (CSUM_DATA_VALID_IPV6 |
+                       m0->m_pkthdr.csum_flags = (CSUM_DATA_VALID_IPV6 |
                            CSUM_PSEUDO_HDR);
                        rxq->rxcsum++;
                }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to