]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cxgb4: fix MPS index overwrite when setting MAC address
authorHerat Ramani <herat@chelsio.com>
Tue, 31 Mar 2020 19:46:09 +0000 (01:16 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Apr 2020 11:17:48 +0000 (13:17 +0200)
[ Upstream commit 41aa8561ca3fc5748391f08cc5f3e561923da52c ]

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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

index 97f90edbc06831303813eb1a70db61e8c620fc34..6767c73c87a1edb6a9cddbcc8d020352a97ea3ea 100644 (file)
@@ -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;
 }