diff options
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index c4d861b557ca..fd922e7db1d5 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -4659,12 +4659,13 @@ static int igb_set_vf_promisc(struct igb_adapter *adapter, u32 *msgbuf, u32 vf) | |||
4659 | u32 vmolr = rd32(E1000_VMOLR(vf)); | 4659 | u32 vmolr = rd32(E1000_VMOLR(vf)); |
4660 | struct vf_data_storage *vf_data = &adapter->vf_data[vf]; | 4660 | struct vf_data_storage *vf_data = &adapter->vf_data[vf]; |
4661 | 4661 | ||
4662 | vf_data->flags |= ~(IGB_VF_FLAG_UNI_PROMISC | | 4662 | vf_data->flags &= ~(IGB_VF_FLAG_UNI_PROMISC | |
4663 | IGB_VF_FLAG_MULTI_PROMISC); | 4663 | IGB_VF_FLAG_MULTI_PROMISC); |
4664 | vmolr &= ~(E1000_VMOLR_ROPE | E1000_VMOLR_ROMPE | E1000_VMOLR_MPME); | 4664 | vmolr &= ~(E1000_VMOLR_ROPE | E1000_VMOLR_ROMPE | E1000_VMOLR_MPME); |
4665 | 4665 | ||
4666 | if (*msgbuf & E1000_VF_SET_PROMISC_MULTICAST) { | 4666 | if (*msgbuf & E1000_VF_SET_PROMISC_MULTICAST) { |
4667 | vmolr |= E1000_VMOLR_MPME; | 4667 | vmolr |= E1000_VMOLR_MPME; |
4668 | vf_data->flags |= IGB_VF_FLAG_MULTI_PROMISC; | ||
4668 | *msgbuf &= ~E1000_VF_SET_PROMISC_MULTICAST; | 4669 | *msgbuf &= ~E1000_VF_SET_PROMISC_MULTICAST; |
4669 | } else { | 4670 | } else { |
4670 | /* | 4671 | /* |