ionic: ignore eexist on rx filter add
authorShannon Nelson <snelson@pensando.io>
Fri, 20 Mar 2020 02:31:51 +0000 (19:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 22 Mar 2020 02:56:04 +0000 (19:56 -0700)
Don't worry if the rx filter add firmware request fails on
EEXIST, at least we know the filter is there.  Same for
the delete request, at least we know it isn't there.

Fixes: 2a654540be10 ("ionic: Add Rx filter and rx_mode ndo support")
Signed-off-by: Shannon Nelson <snelson@pensando.io>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/pensando/ionic/ionic_lif.c

index c62d3d0..ea44f51 100644 (file)
@@ -832,7 +832,7 @@ static int ionic_lif_addr_add(struct ionic_lif *lif, const u8 *addr)
 
        memcpy(ctx.cmd.rx_filter_add.mac.addr, addr, ETH_ALEN);
        err = ionic_adminq_post_wait(lif, &ctx);
-       if (err)
+       if (err && err != -EEXIST)
                return err;
 
        return ionic_rx_filter_save(lif, 0, IONIC_RXQ_INDEX_ANY, 0, &ctx);
@@ -862,7 +862,7 @@ static int ionic_lif_addr_del(struct ionic_lif *lif, const u8 *addr)
        spin_unlock_bh(&lif->rx_filters.lock);
 
        err = ionic_adminq_post_wait(lif, &ctx);
-       if (err)
+       if (err && err != -EEXIST)
                return err;
 
        netdev_dbg(lif->netdev, "rx_filter del ADDR %pM (id %d)\n", addr,