Re: [PATCH] mfd/rk8xx: fix sleep during RCU read side critical section

From: Pavel Skripkin

Date: Fri Oct 30 2026 - 10:46:08 EST


Hi Eric,

Eric Anderson <ejona86@xxxxxxxxx> says:
On Thu, Oct 29, 2026 at 12:22 PM Pavel Skripkin <paskripkin@xxxxxxxxx> wrote:
SPI does not support atomic transfers, so it's dangerous to call from
atomic notif chains, since it can cause stall during reboot on
orangepi5 (see trace below).

For my curiosity, is the hang during reboot/shutdown random or consistent?


They are basically the same, since they both trigger sleeping SPI I/O. I agree, I should have used studown/reboot more consistently in commit message...

You are explicitly mentioning reboot, although the stack trace is for
shutdown. I'd have expected reboot to have always been broken for you.

Likely. I've just bought it, so cannot say if it was always broken. Based on code I believe that it was indeed broken from the beginning. Also I've found previous attempt to fix it [1], so looks like problem is known for quite a long time

In my change I noticed that reboot and shutdown didn't agree on
whether to use _PREPARE, and my change adjusted shutdown to agree with
reboot. Since you apparently need the opposite, prior to my change I'd
assume shutdown was working but reboot broken.

>> I don't have rk3288 board to test. However, I strongly suspect that>> patch does not affect your case.

I'll test it this weekend. I suspect it would work fine on Veyron/rk3288.


[1] https://lists.infradead.org/pipermail/linux-rockchip/2024-July/049312.html


With regards,
Pavel Skripkin