diff options
author | Shannon Nelson <snelson@pensando.io> | 2021-08-27 21:55:09 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-08-28 13:23:09 +0300 |
commit | 92c90dff687f86ca02bcc1bf7d43626fcf06f4c9 (patch) | |
tree | 45f4e935ae68913219470fe28310c07157a49fb6 /drivers/net/ethernet | |
parent | 970dfbf428c47b9d91960fc9e30f97c3ce59a22b (diff) | |
download | linux-92c90dff687f86ca02bcc1bf7d43626fcf06f4c9.tar.xz |
ionic: fill mac addr earlier in add_addr
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>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/pensando/ionic/ionic_lif.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index df0137044c03..d69c80c3eaa2 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -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); } |