From: Shannon Nelson <snel...@pensando.io> Date: Mon, 22 Jul 2019 14:40:15 -0700
> + if (in_interrupt()) { > + work = kzalloc(sizeof(*work), GFP_ATOMIC); > + if (!work) { > + netdev_err(lif->netdev, "%s OOM\n", __func__); > + return -ENOMEM; > + } > + work->type = add ? DW_TYPE_RX_ADDR_ADD : DW_TYPE_RX_ADDR_DEL; > + memcpy(work->addr, addr, ETH_ALEN); > + netdev_dbg(lif->netdev, "deferred: rx_filter %s %pM\n", > + add ? "add" : "del", addr); > + ionic_lif_deferred_enqueue(&lif->deferred, work); > + } else { > + netdev_dbg(lif->netdev, "rx_filter %s %pM\n", > + add ? "add" : "del", addr); > + if (add) > + return ionic_lif_addr_add(lif, addr); > + else > + return ionic_lif_addr_del(lif, addr); > + } I don't know about this. Generally interface address changes are expected to be synchronous.