ionic: fill mac addr earlier in add_addr
authorShannon Nelson <snelson@pensando.io>
Fri, 27 Aug 2021 18:55:09 +0000 (11:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 28 Aug 2021 10:23:09 +0000 (11:23 +0100)
Make sure the ctx struct has the new mac address before
any save operations happen.

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 df0137044c033a361ae80eefd786dc6b1de3a9b1..d69c80c3eaa23b4474433c1a061fe7f31979ffe4 100644 (file)
@@ -1268,6 +1268,8 @@ int ionic_lif_addr_add(struct ionic_lif *lif, const u8 *addr)
        struct ionic_rx_filter *f;
        int err = 0;
 
+       memcpy(ctx.cmd.rx_filter_add.mac.addr, addr, ETH_ALEN);
+
        spin_lock_bh(&lif->rx_filters.lock);
        f = ionic_rx_filter_by_addr(lif, addr);
        if (f) {
@@ -1281,7 +1283,6 @@ int ionic_lif_addr_add(struct ionic_lif *lif, const u8 *addr)
                f->state = IONIC_FILTER_STATE_SYNCED;
        } else {
                /* save as SYNCED to catch any DEL requests while processing */
-               memcpy(ctx.cmd.rx_filter_add.mac.addr, addr, ETH_ALEN);
                err = ionic_rx_filter_save(lif, 0, IONIC_RXQ_INDEX_ANY, 0, &ctx,
                                           IONIC_FILTER_STATE_SYNCED);
        }