| From 3cd1ba921f5e57d1ec9b220615419561fe0da942 Mon Sep 17 00:00:00 2001 |
| From: Herat Ramani <herat@chelsio.com> |
| Date: Wed, 1 Apr 2020 01:16:09 +0530 |
| Subject: [PATCH] cxgb4: fix MPS index overwrite when setting MAC address |
| |
| commit 41aa8561ca3fc5748391f08cc5f3e561923da52c upstream. |
| |
| 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> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c |
| index 715e4edcf4a2..31b98f36a8c9 100644 |
| --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c |
| +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c |
| @@ -2940,7 +2940,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; |
| } |
| |
| -- |
| 2.7.4 |
| |