[dpdk-dev] igbvf: fix MAC address set problem

Message ID 1493283743-71883-1-git-send-email-qiming.yang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers

Checks

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

Commit Message

Qiming Yang April 27, 2017, 9:02 a.m. UTC
  We find that VF receive address register is not set
if MAC address is assigned by PF. This patch fixes it.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>

Fixes: 2a3cf07108b4 ("igbvf: fix MAC address if none assigned by PF")
---
 drivers/net/e1000/igb_ethdev.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
  

Comments

Wenzhuo Lu April 28, 2017, 12:39 a.m. UTC | #1
Hi Qiming,

> -----Original Message-----
> From: Yang, Qiming
> Sent: Thursday, April 27, 2017 5:02 PM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo; stable@dpdk.org; Yang, Qiming
> Subject: [PATCH] igbvf: fix 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.
> 
> Signed-off-by: Qiming Yang <qiming.yang@intel.com>
> 
> Fixes: 2a3cf07108b4 ("igbvf: fix MAC address if none assigned by PF")
A little confused about the Fixes. You said this patch is for when mac address is set by PF. But the fixes said the previous patch is for not set by PF. Seems they're different scenarios. Why this can a fix for a different scenario?
Thanks.
  
Qiming Yang April 28, 2017, 6:53 a.m. UTC | #2
Hi, Wenzhuo

> -----Original Message-----
> From: Lu, Wenzhuo
> Sent: Friday, April 28, 2017 8:39 AM
> To: Yang, Qiming <qiming.yang@intel.com>; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: RE: [PATCH] igbvf: fix MAC address set problem
> 
> Hi Qiming,
> 
> > -----Original Message-----
> > From: Yang, Qiming
> > Sent: Thursday, April 27, 2017 5:02 PM
> > To: dev@dpdk.org
> > Cc: Lu, Wenzhuo; stable@dpdk.org; Yang, Qiming
> > Subject: [PATCH] igbvf: fix 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.
> >
> > Signed-off-by: Qiming Yang <qiming.yang@intel.com>
> >
> > Fixes: 2a3cf07108b4 ("igbvf: fix MAC address if none assigned by PF")
> A little confused about the Fixes. You said this patch is for when mac address
> is set by PF. But the fixes said the previous patch is for not set by PF. Seems
> they're different scenarios. Why this can a fix for a different scenario?
> Thanks.

Previous patch only do rar set when random a MAC for VF, when MAC address is
assigned by PF, register is not set.
Maybe I should correct the fix line, the issue I fixed is exist before 2a3cf07108b4.
  
Wenzhuo Lu April 28, 2017, 7:20 a.m. UTC | #3
Hi Qiming,

> -----Original Message-----
> From: Yang, Qiming
> Sent: Friday, April 28, 2017 2:54 PM
> To: Lu, Wenzhuo; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: RE: [PATCH] igbvf: fix MAC address set problem
> 
> Hi, Wenzhuo
> 
> > -----Original Message-----
> > From: Lu, Wenzhuo
> > Sent: Friday, April 28, 2017 8:39 AM
> > To: Yang, Qiming <qiming.yang@intel.com>; dev@dpdk.org
> > Cc: stable@dpdk.org
> > Subject: RE: [PATCH] igbvf: fix MAC address set problem
> >
> > Hi Qiming,
> >
> > > -----Original Message-----
> > > From: Yang, Qiming
> > > Sent: Thursday, April 27, 2017 5:02 PM
> > > To: dev@dpdk.org
> > > Cc: Lu, Wenzhuo; stable@dpdk.org; Yang, Qiming
> > > Subject: [PATCH] igbvf: fix 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.
> > >
> > > Signed-off-by: Qiming Yang <qiming.yang@intel.com>
> > >
> > > Fixes: 2a3cf07108b4 ("igbvf: fix MAC address if none assigned by
> > > PF")
> > A little confused about the Fixes. You said this patch is for when mac
> > address is set by PF. But the fixes said the previous patch is for not
> > set by PF. Seems they're different scenarios. Why this can a fix for a
> different scenario?
> > Thanks.
> 
> Previous patch only do rar set when random a MAC for VF, when MAC
> address is assigned by PF, register is not set.
> Maybe I should correct the fix line, the issue I fixed is exist before
> 2a3cf07108b4.
Better if you can find the previous patch :)
  

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]);