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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to