From: Qiming Yang Date: Wed, 3 May 2017 05:51:32 +0000 (+0800) Subject: net/igb: fix VF MAC address setting X-Git-Tag: spdx-start~3279 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=580b85f6ba4cf38268c50185a6f5becce8b69846;p=dpdk.git net/igb: fix VF MAC address setting VF default MAC address be added in PF Mac address list instead of VF MAC address list, makes VF can't receive packets. This patch fixes this issue. Fixes: be2d648a2dd3 ("igb: add PF support") Cc: stable@dpdk.org Signed-off-by: Qiming Yang Acked-by: Wenzhuo Lu --- diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c index 67da3c24c4..923c78a102 100644 --- a/drivers/net/e1000/igb_pf.c +++ b/drivers/net/e1000/igb_pf.c @@ -332,12 +332,16 @@ igb_vf_set_mac_addr(struct rte_eth_dev *dev, uint32_t vf, uint32_t *msgbuf) *(E1000_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private)); int rar_entry = hw->mac.rar_entry_count - (vf + 1); uint8_t *new_mac = (uint8_t *)(&msgbuf[1]); + int rah; if (is_unicast_ether_addr((struct ether_addr *)new_mac)) { if (!is_zero_ether_addr((struct ether_addr *)new_mac)) rte_memcpy(vfinfo[vf].vf_mac_addresses, new_mac, sizeof(vfinfo[vf].vf_mac_addresses)); hw->mac.ops.rar_set(hw, new_mac, rar_entry); + rah = E1000_READ_REG(hw, E1000_RAH(rar_entry)); + rah |= (0x1 << (E1000_RAH_POOLSEL_SHIFT + vf)); + E1000_WRITE_REG(hw, E1000_RAH(rar_entry), rah); return 0; } return -1;