In the Linux kernel, the following vulnerability has been resolved: padata: Always leave BHs disabled when running ->parallel() A deadlock can happen when an overloaded system runs ->parallel() in the context of the current task: padatadoparallel ->parallel() pcryptaeadenc/dec padatadoserial spinlock(&reorder->lock) // BHs still enabled <interrupt> ... _dosoftirq ... padatadoserial spinlock(&reorder->lock) It's a bug for BHs to be on in doserial as Steffen points out, so ensure they're off in the "current task" case like they are in padataparallelworker to avoid this situation.