|
@@ -9310,9 +9310,17 @@ static int bnx2x_set_tso(struct net_device *dev, u32 data)
|
|
|
if (data) {
|
|
|
dev->features |= (NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
dev->features |= NETIF_F_TSO6;
|
|
|
+#ifdef BCM_VLAN
|
|
|
+ dev->vlan_features |= (NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
+ dev->vlan_features |= NETIF_F_TSO6;
|
|
|
+#endif
|
|
|
} else {
|
|
|
dev->features &= ~(NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
dev->features &= ~NETIF_F_TSO6;
|
|
|
+#ifdef BCM_VLAN
|
|
|
+ dev->vlan_features &= ~(NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
+ dev->vlan_features &= ~NETIF_F_TSO6;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -11143,12 +11151,19 @@ static int __devinit bnx2x_init_dev(struct pci_dev *pdev,
|
|
|
dev->features |= NETIF_F_HW_CSUM;
|
|
|
if (bp->flags & USING_DAC_FLAG)
|
|
|
dev->features |= NETIF_F_HIGHDMA;
|
|
|
+ dev->features |= (NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
+ dev->features |= NETIF_F_TSO6;
|
|
|
#ifdef BCM_VLAN
|
|
|
dev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
|
|
|
bp->flags |= (HW_VLAN_RX_FLAG | HW_VLAN_TX_FLAG);
|
|
|
+
|
|
|
+ dev->vlan_features |= NETIF_F_SG;
|
|
|
+ dev->vlan_features |= NETIF_F_HW_CSUM;
|
|
|
+ if (bp->flags & USING_DAC_FLAG)
|
|
|
+ dev->vlan_features |= NETIF_F_HIGHDMA;
|
|
|
+ dev->vlan_features |= (NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
+ dev->vlan_features |= NETIF_F_TSO6;
|
|
|
#endif
|
|
|
- dev->features |= (NETIF_F_TSO | NETIF_F_TSO_ECN);
|
|
|
- dev->features |= NETIF_F_TSO6;
|
|
|
|
|
|
return 0;
|
|
|
|