i40e: fix mac address checking
Remove custom i40e functions around ethernet addresses that are duplicating already existing kernel functionality. Also ends up fixing a bug with multicast addresses. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
Родитель
a45e88c9db
Коммит
f62b5060d6
|
@ -239,33 +239,6 @@ i40e_status i40e_get_mac_addr(struct i40e_hw *hw, u8 *mac_addr)
|
|||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* i40e_validate_mac_addr - Validate MAC address
|
||||
* @mac_addr: pointer to MAC address
|
||||
*
|
||||
* Tests a MAC address to ensure it is a valid Individual Address
|
||||
**/
|
||||
i40e_status i40e_validate_mac_addr(u8 *mac_addr)
|
||||
{
|
||||
i40e_status status = 0;
|
||||
|
||||
/* Make sure it is not a multicast address */
|
||||
if (I40E_IS_MULTICAST(mac_addr)) {
|
||||
hw_dbg(hw, "MAC address is multicast\n");
|
||||
status = I40E_ERR_INVALID_MAC_ADDR;
|
||||
/* Not a broadcast address */
|
||||
} else if (I40E_IS_BROADCAST(mac_addr)) {
|
||||
hw_dbg(hw, "MAC address is broadcast\n");
|
||||
status = I40E_ERR_INVALID_MAC_ADDR;
|
||||
/* Reject the zero address */
|
||||
} else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
|
||||
mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0) {
|
||||
hw_dbg(hw, "MAC address is all zeros\n");
|
||||
status = I40E_ERR_INVALID_MAC_ADDR;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* i40e_get_media_type - Gets media type
|
||||
* @hw: pointer to the hardware structure
|
||||
|
|
|
@ -7644,7 +7644,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
}
|
||||
|
||||
i40e_get_mac_addr(hw, hw->mac.addr);
|
||||
if (i40e_validate_mac_addr(hw->mac.addr)) {
|
||||
if (!is_valid_ether_addr(hw->mac.addr)) {
|
||||
dev_info(&pdev->dev, "invalid MAC address %pM\n", hw->mac.addr);
|
||||
err = -EIO;
|
||||
goto err_mac_addr;
|
||||
|
|
|
@ -205,7 +205,6 @@ void i40e_clear_pxe_mode(struct i40e_hw *hw);
|
|||
bool i40e_get_link_status(struct i40e_hw *hw);
|
||||
i40e_status i40e_get_mac_addr(struct i40e_hw *hw,
|
||||
u8 *mac_addr);
|
||||
i40e_status i40e_validate_mac_addr(u8 *mac_addr);
|
||||
i40e_status i40e_read_lldp_cfg(struct i40e_hw *hw,
|
||||
struct i40e_lldp_variables *lldp_cfg);
|
||||
/* prototype for functions used for NVM access */
|
||||
|
|
Загрузка…
Ссылка в новой задаче