Prarit Bhargava wrote: > Replace call_smp_function with stop_machine_run in the Intel RNG driver. > > CPU A has done read_lock(&lock) > CPU B has done write_lock_irq(&lock) and is waiting for A to release the lock. > > A third CPU calls call_smp_function and issues the IPI. CPU A takes CPU C's > IPI. CPU B is waiting with interrupts disabled and does not see the IPI. > CPU C is stuck waiting for CPU B to respond to the IPI. > > Deadlock. > > The solution is to use stop_machine_run instead of call_smp_function > (call_smp_function should not be called in situations where the CPUs may > be suspended). > > > Updated patch to latest-and-greatest git ... P.