diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c index d44b4d21268..97e33669c0b 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c @@ -1049,6 +1049,12 @@ int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos)  	if ((vf >= adapter->num_vfs) || (vlan > 4095) || (qos > 7))  		return -EINVAL;  	if (vlan || qos) { +		if (adapter->vfinfo[vf].pf_vlan) +			err = ixgbe_set_vf_vlan(adapter, false, +						adapter->vfinfo[vf].pf_vlan, +						vf); +		if (err) +			goto out;  		err = ixgbe_set_vf_vlan(adapter, true, vlan, vf);  		if (err)  			goto out;  |