mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	ixgbe: remove vlan_filter_disable and enable functions
Previously these functions handled stripping setup as well, but this has already been removed from these functions. Rather than encapsulating this into a function, we can just do the work directly in set_rx_mode. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
		
							parent
							
								
									f8e2472f4f
								
							
						
					
					
						commit
						a9b8943ee1
					
				| @ -3767,35 +3767,6 @@ static int ixgbe_vlan_rx_kill_vid(struct net_device *netdev, | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /**
 |  | ||||||
|  * ixgbe_vlan_filter_disable - helper to disable hw vlan filtering |  | ||||||
|  * @adapter: driver data |  | ||||||
|  */ |  | ||||||
| static void ixgbe_vlan_filter_disable(struct ixgbe_adapter *adapter) |  | ||||||
| { |  | ||||||
| 	struct ixgbe_hw *hw = &adapter->hw; |  | ||||||
| 	u32 vlnctrl; |  | ||||||
| 
 |  | ||||||
| 	vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL); |  | ||||||
| 	vlnctrl &= ~(IXGBE_VLNCTRL_VFE | IXGBE_VLNCTRL_CFIEN); |  | ||||||
| 	IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /**
 |  | ||||||
|  * ixgbe_vlan_filter_enable - helper to enable hw vlan filtering |  | ||||||
|  * @adapter: driver data |  | ||||||
|  */ |  | ||||||
| static void ixgbe_vlan_filter_enable(struct ixgbe_adapter *adapter) |  | ||||||
| { |  | ||||||
| 	struct ixgbe_hw *hw = &adapter->hw; |  | ||||||
| 	u32 vlnctrl; |  | ||||||
| 
 |  | ||||||
| 	vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL); |  | ||||||
| 	vlnctrl |= IXGBE_VLNCTRL_VFE; |  | ||||||
| 	vlnctrl &= ~IXGBE_VLNCTRL_CFIEN; |  | ||||||
| 	IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /**
 | /**
 | ||||||
|  * ixgbe_vlan_strip_disable - helper to disable hw vlan stripping |  * ixgbe_vlan_strip_disable - helper to disable hw vlan stripping | ||||||
|  * @adapter: driver data |  * @adapter: driver data | ||||||
| @ -3933,11 +3904,13 @@ void ixgbe_set_rx_mode(struct net_device *netdev) | |||||||
| 	struct ixgbe_adapter *adapter = netdev_priv(netdev); | 	struct ixgbe_adapter *adapter = netdev_priv(netdev); | ||||||
| 	struct ixgbe_hw *hw = &adapter->hw; | 	struct ixgbe_hw *hw = &adapter->hw; | ||||||
| 	u32 fctrl, vmolr = IXGBE_VMOLR_BAM | IXGBE_VMOLR_AUPE; | 	u32 fctrl, vmolr = IXGBE_VMOLR_BAM | IXGBE_VMOLR_AUPE; | ||||||
|  | 	u32 vlnctrl; | ||||||
| 	int count; | 	int count; | ||||||
| 
 | 
 | ||||||
| 	/* Check for Promiscuous and All Multicast modes */ | 	/* Check for Promiscuous and All Multicast modes */ | ||||||
| 
 | 
 | ||||||
| 	fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); | 	fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); | ||||||
|  | 	vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL); | ||||||
| 
 | 
 | ||||||
| 	/* set all bits that we expect to always be set */ | 	/* set all bits that we expect to always be set */ | ||||||
| 	fctrl &= ~IXGBE_FCTRL_SBP; /* disable store-bad-packets */ | 	fctrl &= ~IXGBE_FCTRL_SBP; /* disable store-bad-packets */ | ||||||
| @ -3947,7 +3920,7 @@ void ixgbe_set_rx_mode(struct net_device *netdev) | |||||||
| 
 | 
 | ||||||
| 	/* clear the bits we are changing the status of */ | 	/* clear the bits we are changing the status of */ | ||||||
| 	fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); | 	fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); | ||||||
| 
 | 	vlnctrl &= ~(IXGBE_VLNCTRL_VFE | IXGBE_VLNCTRL_CFIEN); | ||||||
| 	if (netdev->flags & IFF_PROMISC) { | 	if (netdev->flags & IFF_PROMISC) { | ||||||
| 		hw->addr_ctrl.user_set_promisc = true; | 		hw->addr_ctrl.user_set_promisc = true; | ||||||
| 		fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); | 		fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); | ||||||
| @ -3958,15 +3931,13 @@ void ixgbe_set_rx_mode(struct net_device *netdev) | |||||||
| 		 */ | 		 */ | ||||||
| 		if (!(adapter->flags & (IXGBE_FLAG_VMDQ_ENABLED | | 		if (!(adapter->flags & (IXGBE_FLAG_VMDQ_ENABLED | | ||||||
| 					IXGBE_FLAG_SRIOV_ENABLED))) | 					IXGBE_FLAG_SRIOV_ENABLED))) | ||||||
| 			ixgbe_vlan_filter_disable(adapter); | 			vlnctrl |= (IXGBE_VLNCTRL_VFE | IXGBE_VLNCTRL_CFIEN); | ||||||
| 		else |  | ||||||
| 			ixgbe_vlan_filter_enable(adapter); |  | ||||||
| 	} else { | 	} else { | ||||||
| 		if (netdev->flags & IFF_ALLMULTI) { | 		if (netdev->flags & IFF_ALLMULTI) { | ||||||
| 			fctrl |= IXGBE_FCTRL_MPE; | 			fctrl |= IXGBE_FCTRL_MPE; | ||||||
| 			vmolr |= IXGBE_VMOLR_MPE; | 			vmolr |= IXGBE_VMOLR_MPE; | ||||||
| 		} | 		} | ||||||
| 		ixgbe_vlan_filter_enable(adapter); | 		vlnctrl |= IXGBE_VLNCTRL_VFE; | ||||||
| 		hw->addr_ctrl.user_set_promisc = false; | 		hw->addr_ctrl.user_set_promisc = false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -4010,6 +3981,7 @@ void ixgbe_set_rx_mode(struct net_device *netdev) | |||||||
| 		/* NOTE:  VLAN filtering is disabled by setting PROMISC */ | 		/* NOTE:  VLAN filtering is disabled by setting PROMISC */ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl); | ||||||
| 	IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); | 	IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); | ||||||
| 
 | 
 | ||||||
| 	if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) | 	if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Jacob Keller
						Jacob Keller