Commit 0e1ff306 authored by Tony Nguyen's avatar Tony Nguyen Committed by Jeff Kirsher

ixgbe: Ensure MAC filter was added before setting MACVLAN

This patch adds a check to ensure that adding the MAC filter was
successful before setting the MACVLAN.  If it was unsuccessful, propagate
the error.
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 34c8c10a
...@@ -679,8 +679,9 @@ static void ixgbe_clear_vf_vlans(struct ixgbe_adapter *adapter, u32 vf) ...@@ -679,8 +679,9 @@ static void ixgbe_clear_vf_vlans(struct ixgbe_adapter *adapter, u32 vf)
static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter, static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter,
int vf, int index, unsigned char *mac_addr) int vf, int index, unsigned char *mac_addr)
{ {
struct list_head *pos;
struct vf_macvlans *entry; struct vf_macvlans *entry;
struct list_head *pos;
int retval = 0;
if (index <= 1) { if (index <= 1) {
list_for_each(pos, &adapter->vf_mvs.l) { list_for_each(pos, &adapter->vf_mvs.l) {
...@@ -721,13 +722,15 @@ static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter, ...@@ -721,13 +722,15 @@ static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter,
if (!entry || !entry->free) if (!entry || !entry->free)
return -ENOSPC; return -ENOSPC;
retval = ixgbe_add_mac_filter(adapter, mac_addr, vf);
if (retval < 0)
return retval;
entry->free = false; entry->free = false;
entry->is_macvlan = true; entry->is_macvlan = true;
entry->vf = vf; entry->vf = vf;
memcpy(entry->vf_macvlan, mac_addr, ETH_ALEN); memcpy(entry->vf_macvlan, mac_addr, ETH_ALEN);
ixgbe_add_mac_filter(adapter, mac_addr, vf);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment