[dpdk-dev,v2] net/e1000: fix VF MAC address set problem
Checks
Commit Message
We find that VF receive address register is not set
if MAC address is assigned by PF. This patch fixes it.
Fixes: d82170d27918 ("igb: add VF support")
Signed-off-by: Qiming Yang <qiming.yang@intel.com>
---
drivers/net/e1000/igb_ethdev.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Comments
Hi,
> -----Original Message-----
> From: Yang, Qiming
> Sent: Wednesday, May 3, 2017 1:53 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Lu, Wenzhuo; Yang, Qiming
> Subject: [PATCH v2] net/e1000: fix VF MAC address set problem
>
> We find that VF receive address register is not set if MAC address is assigned
> by PF. This patch fixes it.
>
> Fixes: d82170d27918 ("igb: add VF support")
>
> Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
03/05/2017 09:13, Lu, Wenzhuo:
> Hi,
>
> > We find that VF receive address register is not set if MAC address is assigned
> > by PF. This patch fixes it.
> >
> > Fixes: d82170d27918 ("igb: add VF support")
> >
> > Signed-off-by: Qiming Yang <qiming.yang@intel.com>
> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Applied, thanks
@@ -1031,12 +1031,6 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
/* Generate a random MAC address, if none was assigned by PF. */
if (is_zero_ether_addr(perm_addr)) {
eth_random_addr(perm_addr->addr_bytes);
- diag = e1000_rar_set(hw, perm_addr->addr_bytes, 0);
- if (diag) {
- rte_free(eth_dev->data->mac_addrs);
- eth_dev->data->mac_addrs = NULL;
- return diag;
- }
PMD_INIT_LOG(INFO, "\tVF MAC address not assigned by Host PF");
PMD_INIT_LOG(INFO, "\tAssign randomly generated MAC address "
"%02x:%02x:%02x:%02x:%02x:%02x",
@@ -1048,6 +1042,12 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
perm_addr->addr_bytes[5]);
}
+ diag = e1000_rar_set(hw, perm_addr->addr_bytes, 0);
+ if (diag) {
+ rte_free(eth_dev->data->mac_addrs);
+ eth_dev->data->mac_addrs = NULL;
+ return diag;
+ }
/* Copy the permanent MAC address */
ether_addr_copy((struct ether_addr *) hw->mac.perm_addr,
ð_dev->data->mac_addrs[0]);