From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qiming Yang Subject: [PATCH v2] net/e1000: fix VF received problem Date: Wed, 3 May 2017 13:51:32 +0800 Message-ID: <1493790692-58671-1-git-send-email-qiming.yang@intel.com> References: <1493269649-56200-1-git-send-email-qiming.yang@intel.com> Cc: stable@dpdk.org, wenzhuo.lu@intel.com, Qiming Yang To: dev@dpdk.org Return-path: In-Reply-To: <1493269649-56200-1-git-send-email-qiming.yang@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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") Signed-off-by: Qiming Yang --- drivers/net/e1000/igb_pf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c index 67da3c2..923c78a 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; -- 2.7.4