Skip to content

misc: rp1-pio: release DMA channel outside pio->lock#7513

Merged
pelwell merged 1 commit into
raspberrypi:rpi-6.18.yfrom
nbuchwitz:devel/rp1-pio-dma-free
Jul 22, 2026
Merged

misc: rp1-pio: release DMA channel outside pio->lock#7513
pelwell merged 1 commit into
raspberrypi:rpi-6.18.yfrom
nbuchwitz:devel/rp1-pio-dma-free

Conversation

@nbuchwitz

Copy link
Copy Markdown
Contributor

Fix candidate for #7512

rp1_pio_sm_dma_free() ends in dma_release_channel(), which sleeps while
removing the sysfs links. Running it under pio->lock in SM_CONFIG_XFER
triggers "BUG: scheduling while atomic" and hangs the machine when a
client keeps reconfiguring a transfer.

The claim bit stays set for this client across the unlock, so the
channel remains reserved against other clients while it is released.

Fixes: 0b7a604 ("misc: Add RP1 PIO driver")
Link: raspberrypi#7512
Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
@pelwell
pelwell merged commit 77f88e9 into raspberrypi:rpi-6.18.y Jul 22, 2026
12 checks passed
@pelwell

pelwell commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants