[dpdk-dev,v2] net/e1000: fix VF MAC address set problem

Message ID 1493790767-58836-1-git-send-email-qiming.yang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Qiming Yang May 3, 2017, 5:52 a.m. UTC
  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

Wenzhuo Lu May 3, 2017, 7:13 a.m. UTC | #1
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>
  
Thomas Monjalon May 5, 2017, 2:45 p.m. UTC | #2
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
  

Patch

diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index ca9f98c..967805b 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -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,
 			&eth_dev->data->mac_addrs[0]);