aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/pensando/ionic
diff options
context:
space:
mode:
authorShannon Nelson <snelson@pensando.io>2021-08-27 11:55:09 -0700
committerDavid S. Miller <davem@davemloft.net>2021-08-28 11:23:09 +0100
commit92c90dff687f86ca02bcc1bf7d43626fcf06f4c9 (patch)
tree45f4e935ae68913219470fe28310c07157a49fb6 /drivers/net/ethernet/pensando/ionic
parentionic: squelch unnecessary fw halted message (diff)
downloadlinux-dev-92c90dff687f86ca02bcc1bf7d43626fcf06f4c9.tar.xz
linux-dev-92c90dff687f86ca02bcc1bf7d43626fcf06f4c9.zip
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/pensando/ionic')
-rw-r--r--drivers/net/ethernet/pensando/ionic/ionic_lif.c3
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);
}