On Tue, 7 Sep 2021, Michael Schmitz wrote:
Does anyone know what causes this?Our practice to run interrupt handlers at the IPL of the current interrupt under service, instead of disabling local interrupts for the duration of the handler?
Lock contention will happen anyway. If using spin_trylock() outside of "atomic" context was a bug (really?) then it can't be used here. Perhaps add_interrupt_randomness() should use the lock in irq mode, like the rest of drivers/char/random.c does.