diff mbox series

[net] cxgb4: fix MPS index overwrite when setting MAC address

Message ID 1585683969-17582-1-git-send-email-rahul.lakkireddy@chelsio.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] cxgb4: fix MPS index overwrite when setting MAC address | expand

Commit Message

Rahul Lakkireddy March 31, 2020, 7:46 p.m. UTC
From: Herat Ramani <herat@chelsio.com>

cxgb4_update_mac_filt() earlier requests firmware to add a new MAC
address into MPS TCAM. The MPS TCAM index returned by firmware is
stored in pi->xact_addr_filt. However, the saved MPS TCAM index gets
overwritten again with the return value of cxgb4_update_mac_filt(),
which is wrong.

When trying to update to another MAC address later, the wrong MPS TCAM
index is sent to firmware, which causes firmware to return error,
because it's not the same MPS TCAM index that firmware had sent
earlier to driver.

So, fix by removing the wrong overwrite being done after call to
cxgb4_update_mac_filt().

Fixes: 3f8cfd0d95e6 ("cxgb4/cxgb4vf: Program hash region for {t4/t4vf}_change_mac()")
Signed-off-by: Herat Ramani <herat@chelsio.com>
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
---
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 1 -
 1 file changed, 1 deletion(-)

Comments

David Miller April 1, 2020, 6:19 p.m. UTC | #1
From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Date: Wed,  1 Apr 2020 01:16:09 +0530

> From: Herat Ramani <herat@chelsio.com>
> 
> cxgb4_update_mac_filt() earlier requests firmware to add a new MAC
> address into MPS TCAM. The MPS TCAM index returned by firmware is
> stored in pi->xact_addr_filt. However, the saved MPS TCAM index gets
> overwritten again with the return value of cxgb4_update_mac_filt(),
> which is wrong.
> 
> When trying to update to another MAC address later, the wrong MPS TCAM
> index is sent to firmware, which causes firmware to return error,
> because it's not the same MPS TCAM index that firmware had sent
> earlier to driver.
> 
> So, fix by removing the wrong overwrite being done after call to
> cxgb4_update_mac_filt().
> 
> Fixes: 3f8cfd0d95e6 ("cxgb4/cxgb4vf: Program hash region for {t4/t4vf}_change_mac()")
> Signed-off-by: Herat Ramani <herat@chelsio.com>
> Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>

Applied and queued up for -stable.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 97f90edbc068..6767c73c87a1 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -3138,7 +3138,6 @@  static int cxgb_set_mac_addr(struct net_device *dev, void *p)
 		return ret;
 
 	memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
-	pi->xact_addr_filt = ret;
 	return 0;
 }