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!

popcornmix added a commit to raspberrypi/firmware that referenced this pull request Jul 23, 2026
kernel: emc2305 / i2c-fan updates for mainline driver
See: raspberrypi/linux#7505

kernel: drm/v3d: Idle AXI transactions before disabling the clock on suspend
See: raspberrypi/linux#7503

kernel: mmc: block: Fix pending_writes underflow on non-CQE hosts
See: raspberrypi/linux#7508

kernel: drm/vc4: hdmi: switch to generic CEC helpers
See: raspberrypi/linux#7490

kernel: misc: rp1-pio: release DMA channel outside pio->lock
See: raspberrypi/linux#7513

firmware: Camera autodetect I2C caching

firmware: sdram: unconditionally trim column bits to 10 on 2835
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