From: Alexandru Tachici <alexandru.tachici@xxxxxxxxxx> The bcm2835_spi_transfer_one function can create a deadlock if it is called while another thread already has the CCF lock. This behavior was observed at boot and when trying to print the clk_summary debugfs. I had registered at the time multiple clocks of AD9545 through the CCF. Tested this using an RPi 4 connected to AD9545 through SPI. See upstream attempt here: https://lore.kernel.org/lkml/20210614070718.78041-3-alexandru.tachici@xxxxxxxxxx/T/ This can happen to any other clock that needs to read the rate/phase from hardware using the SPI. Because when issuing a clk_get_rate/phase, the requesting thread already holds the CCF lock. If another thread, in this case the one that does the spi transfer tries the same, it will cause a deadlock. This happens by chance because not always every spi request gets deferred to a khthread. Alexandru Tachici (1): spi: spi-bcm2835: Fix deadlock drivers/spi/spi-bcm2835.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) -- 2.25.1