The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=adf4c3336c319cd14de9f45a7a44465aca3a9f36
commit adf4c3336c319cd14de9f45a7a44465aca3a9f36 Author: Christos Margiolis <[email protected]> AuthorDate: 2026-08-21 00:47:03 +0000 Commit: Christos Margiolis <[email protected]> CommitDate: 2026-08-24 20:47:13 +0000 bcm2835_audio: Remove wrong chn_intr() chn_trigger() calls bcmchan_trigger() with the channel lock held. However, bcmchan_trigger() calls chn_intr(), which also tries to lock, which results in a lock recursion panic. chn_intr() is meant to be called by the interrupt handler and not inside CHANNEL_TRIGGER() methods. Remove the call altogether, the bcm2835_worker_play_start() call that comes after is enough. Fixes: 69cab2d1bfb5 ("Fix locking in bcm2835_audio driver") Reported by: Marco Devesas Campos <[email protected]> Tested by: Marco Devesas Campos <[email protected]> Sponsored by: The FreeBSD Foundation MFC after: 3 days Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D59055 (cherry picked from commit f0778a6f9ba7045239a0055ebfbd7965d1f162c9) --- sys/arm/broadcom/bcm2835/bcm2835_audio.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/arm/broadcom/bcm2835/bcm2835_audio.c b/sys/arm/broadcom/bcm2835/bcm2835_audio.c index 4b138de58238..0915bee677ef 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_audio.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_audio.c @@ -679,7 +679,6 @@ bcmchan_trigger(kobj_t obj, void *data, int go) switch (go) { case PCMTRIG_START: /* kickstart data flow */ - chn_intr(sc->pch.channel); ch->submitted_samples = 0; ch->retrieved_samples = 0; bcm2835_worker_play_start(sc);
