ixgbe: store permanent address before initializing Rx addresses
We were reading the address after it had been initialized and this results in the permanent address on the system being changed. This change corrects that by storing the address before we re-initialize it. Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Stephen Ko <stephen.s.ko@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
		
				
					committed by
					
						
						Jeff Kirsher
					
				
			
			
				
	
			
			
			
						parent
						
							8c7bea32c4
						
					
				
				
					commit
					278675d855
				
			@@ -831,15 +831,15 @@ mac_reset_top:
 | 
			
		||||
		IXGBE_WRITE_REG(hw, IXGBE_AUTOC, hw->mac.orig_autoc);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Store the permanent mac address */
 | 
			
		||||
	hw->mac.ops.get_mac_addr(hw, hw->mac.perm_addr);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Store MAC address from RAR0, clear receive address registers, and
 | 
			
		||||
	 * clear the multicast table
 | 
			
		||||
	 */
 | 
			
		||||
	hw->mac.ops.init_rx_addrs(hw);
 | 
			
		||||
 | 
			
		||||
	/* Store the permanent mac address */
 | 
			
		||||
	hw->mac.ops.get_mac_addr(hw, hw->mac.perm_addr);
 | 
			
		||||
 | 
			
		||||
reset_hw_out:
 | 
			
		||||
	if (phy_status)
 | 
			
		||||
		status = phy_status;
 | 
			
		||||
 
 | 
			
		||||
@@ -965,6 +965,9 @@ mac_reset_top:
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Store the permanent mac address */
 | 
			
		||||
	hw->mac.ops.get_mac_addr(hw, hw->mac.perm_addr);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Store MAC address from RAR0, clear receive address registers, and
 | 
			
		||||
	 * clear the multicast table.  Also reset num_rar_entries to 128,
 | 
			
		||||
@@ -973,9 +976,6 @@ mac_reset_top:
 | 
			
		||||
	hw->mac.num_rar_entries = 128;
 | 
			
		||||
	hw->mac.ops.init_rx_addrs(hw);
 | 
			
		||||
 | 
			
		||||
	/* Store the permanent mac address */
 | 
			
		||||
	hw->mac.ops.get_mac_addr(hw, hw->mac.perm_addr);
 | 
			
		||||
 | 
			
		||||
	/* Store the permanent SAN mac address */
 | 
			
		||||
	hw->mac.ops.get_san_mac_addr(hw, hw->mac.san_addr);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user