ixgbe: Fix a bug in setting VF VLAN via PF
authorGreg Rose <gregory.v.rose@intel.com>
Wed, 17 Apr 2013 20:41:35 +0000 (20:41 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Apr 2013 18:52:18 +0000 (14:52 -0400)
commit026ac677414c62550269d53907ea47412ec2bd81
tree452e0f42da0cb437f6fccbe4f890b68a1231d5ad
parentf9d40f6a9921cc7d9385f64362314054e22152bd
ixgbe: Fix a bug in setting VF VLAN via PF

The PF driver does not check if the administrator has already set a VF
VLAN via the PF driver before setting the new VLAN.  This results in
the following scenario:

A) Administrator sets VF <n> to VLAN 100
B) Administrator sets VF <x> to VLAN 100
C) Administrator sets VF <n> to VLAN 200
D) The VF <n> driver continues to be able to receive traffic on VLAN
   100 because the VLVFB pool enable bit for that VF was left set
   instead of being cleared as it should be.

This fix ensures that the old VLAN filter for VF <n> is first removed
and the pool bit enable for VF <n> is cleared so that it no longer
receives traffic on VLAN 100.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c