bnx2: Update vlan_features
[PATCH net-next-2.6] bnx2: Update vlan_features In order to get full use of some advanced features of BNX2, we now need to fill dev->vlan_features. Patch successfully tested with vlan devices built on top of bonding. (bond0 : one bnx2 slave, one tg3 slave (not yet vlan_features enabled) Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Acked-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								51def0bea9
							
						
					
				
			
			
				commit
				
					
						72dccb01e8
					
				
			
		
					 1 changed files with 15 additions and 4 deletions
				
			
		|  | @ -8023,6 +8023,13 @@ static const struct net_device_ops bnx2_netdev_ops = { | |||
| #endif | ||||
| }; | ||||
| 
 | ||||
| static void inline vlan_features_add(struct net_device *dev, unsigned long flags) | ||||
| { | ||||
| #ifdef BCM_VLAN | ||||
| 	dev->vlan_features |= flags; | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| static int __devinit | ||||
| bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | ||||
| { | ||||
|  | @ -8064,16 +8071,20 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
| 	memcpy(dev->perm_addr, bp->mac_addr, 6); | ||||
| 
 | ||||
| 	dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG; | ||||
| 	if (CHIP_NUM(bp) == CHIP_NUM_5709) | ||||
| 	vlan_features_add(dev, NETIF_F_IP_CSUM | NETIF_F_SG); | ||||
| 	if (CHIP_NUM(bp) == CHIP_NUM_5709) { | ||||
| 		dev->features |= NETIF_F_IPV6_CSUM; | ||||
| 
 | ||||
| 		vlan_features_add(dev, NETIF_F_IPV6_CSUM); | ||||
| 	} | ||||
| #ifdef BCM_VLAN | ||||
| 	dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | ||||
| #endif | ||||
| 	dev->features |= NETIF_F_TSO | NETIF_F_TSO_ECN; | ||||
| 	if (CHIP_NUM(bp) == CHIP_NUM_5709) | ||||
| 	vlan_features_add(dev, NETIF_F_TSO | NETIF_F_TSO_ECN); | ||||
| 	if (CHIP_NUM(bp) == CHIP_NUM_5709) { | ||||
| 		dev->features |= NETIF_F_TSO6; | ||||
| 
 | ||||
| 		vlan_features_add(dev, NETIF_F_TSO6); | ||||
| 	} | ||||
| 	if ((rc = register_netdev(dev))) { | ||||
| 		dev_err(&pdev->dev, "Cannot register net device\n"); | ||||
| 		goto error; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Eric Dumazet
				Eric Dumazet