]> xenbits.xensource.com Git - people/royger/freebsd.git/commitdiff
cxgbe(4): netmap does not set IFCAP_NETMAP in an ifnet's if_capabilities
authornp <np@FreeBSD.org>
Fri, 9 Dec 2016 02:21:27 +0000 (02:21 +0000)
committernp <np@FreeBSD.org>
Fri, 9 Dec 2016 02:21:27 +0000 (02:21 +0000)
any more (since r307394).  Do it in the driver instead.

MFC after: 1 week

sys/dev/cxgbe/t4_main.c
sys/dev/cxgbe/t4_netmap.c

index 40090cecc36b902a00606ce78ee1a69a8d51c68f..76e0b545f9c865ff4f3592f689cd59a8d12b682f 100644 (file)
@@ -1416,6 +1416,10 @@ cxgbe_vi_attach(device_t dev, struct vi_info *vi)
 #ifdef TCP_OFFLOAD
        if (vi->nofldrxq != 0)
                ifp->if_capabilities |= IFCAP_TOE;
+#endif
+#ifdef DEV_NETMAP
+       if (vi->nnmrxq != 0)
+               ifp->if_capabilities |= IFCAP_NETMAP;
 #endif
        ifp->if_capenable = T4_CAP_ENABLE;
        ifp->if_hwassist = CSUM_TCP | CSUM_UDP | CSUM_IP | CSUM_TSO |
@@ -1435,7 +1439,7 @@ cxgbe_vi_attach(device_t dev, struct vi_info *vi)
 
        ether_ifattach(ifp, vi->hw_addr);
 #ifdef DEV_NETMAP
-       if (vi->nnmrxq != 0)
+       if (ifp->if_capabilities & IFCAP_NETMAP)
                cxgbe_nm_attach(vi);
 #endif
        sb = sbuf_new_auto();
index a1722ee7dd70a1789bed66b04e95de75040f9a32..d9a74cf75d02c769bf59291f699e3135e0fdcb9c 100644 (file)
@@ -870,7 +870,7 @@ cxgbe_nm_attach(struct vi_info *vi)
        na.nm_register = cxgbe_netmap_reg;
        na.num_tx_rings = vi->nnmtxq;
        na.num_rx_rings = vi->nnmrxq;
-       netmap_attach(&na);     /* This adds IFCAP_NETMAP to if_capabilities */
+       netmap_attach(&na);
 }
 
 void