git: f0778a6f9ba7 - main - bcm2835_audio: Remove wrong chn_intr()
Christos Margiolis <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.src,gmane.os.freebsd.current.scm |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=f0778a6f9ba7045239a0055ebfbd7965d1f162c9 commit f0778a6f9ba7045239a0055ebfbd7965d1f162c9 Author: Christos Margiolis <[email protected]> AuthorDate: 2026-08-21 00:47:03 +0000 Commit: Christos Margiolis <[email protected]> CommitDate: 2026-08-21 00:47:03 +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 --- 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 29808b053b92..82a98d9f6107 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_audio.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_audio.c @@ -840,7 +840,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);