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
