aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/igb_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r--drivers/net/igb/igb_main.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index f0c3a01452c8..a3c2f83fb495 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3895,10 +3895,15 @@ static s32 igb_vlvf_set(struct igb_adapter *adapter, u32 vid, bool add, u32 vf)
3895 3895
3896 /* if !enabled we need to set this up in vfta */ 3896 /* if !enabled we need to set this up in vfta */
3897 if (!(reg & E1000_VLVF_VLANID_ENABLE)) { 3897 if (!(reg & E1000_VLVF_VLANID_ENABLE)) {
3898 /* add VID to filter table */ 3898 /* add VID to filter table, if bit already set
3899 igb_vfta_set(hw, vid, true); 3899 * PF must have added it outside of table */
3900 if (igb_vfta_set(hw, vid, true))
3901 reg |= 1 << (E1000_VLVF_POOLSEL_SHIFT +
3902 adapter->vfs_allocated_count);
3900 reg |= E1000_VLVF_VLANID_ENABLE; 3903 reg |= E1000_VLVF_VLANID_ENABLE;
3901 } 3904 }
3905 reg &= ~E1000_VLVF_VLANID_MASK;
3906 reg |= vid;
3902 3907
3903 wr32(E1000_VLVF(i), reg); 3908 wr32(E1000_VLVF(i), reg);
3904 return 0; 3909 return 0;