--- x/net/bridge/br_multicast.c +++ y/net/bridge/br_multicast.c @@ -1757,7 +1757,9 @@ br_multicast_port_query_expired(struct n if (query->startup_sent < brmctx->multicast_startup_query_count) query->startup_sent++; + spin_unlock(&br->multicast_lock); br_multicast_send_query(brmctx, pmctx, query); + return; out: spin_unlock(&br->multicast_lock);