The mcx ioctl callback runs on IPL_NET. Fix the error cases that return early, without lowering the IPL again. --- sys/dev/pci/if_mcx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys/dev/pci/if_mcx.c b/sys/dev/pci/if_mcx.c index 99930d7a2fe..b9baac3989a 100644 --- a/sys/dev/pci/if_mcx.c +++ b/sys/dev/pci/if_mcx.c @@ -7515,7 +7515,7 @@ mcx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ether_addmulti(ifr, &sc->sc_ac) == ENETRESET) { error = ether_multiaddr(&ifr->ifr_addr, addrlo, addrhi); if (error != 0) - return (error); + break; dest = MCX_FLOW_CONTEXT_DEST_TYPE_TABLE | sc->sc_rss_flow_table_id; @@ -7553,7 +7553,7 @@ mcx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ether_delmulti(ifr, &sc->sc_ac) == ENETRESET) { error = ether_multiaddr(&ifr->ifr_addr, addrlo, addrhi); if (error != 0) - return (error); + break; for (i = 0; i < MCX_NUM_MCAST_FLOWS; i++) { if (memcmp(sc->sc_mcast_flows[i], addrlo, -- 2.35.1
smime.p7s
Description: S/MIME cryptographic signature