[dpdk-dev] igbvf: fix 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.
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
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.
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.
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 :)
@@ -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]);