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: padata_do_parallel ->parallel() pcrypt_aead_enc/dec padata_do_serial spin_lock(&reorder->lock) // BHs still enabled <interrupt> ... __do_softirq ... padata_do_serial spin_lock(&reorder->lock) It's a bug for BHs to be on in _do_serial as Steffen points out, so ensure they're off in the "current task" case like they are in padata_parallel_worker to avoid this situation.
https://git.kernel.org/stable/c/8e0681dd4eee029eb1d533d06993f7cb091efb73
https://git.kernel.org/stable/c/7337adb20fcc0aebb50eaff2bc5a8dd9a7c6743d
https://git.kernel.org/stable/c/6cfa9e60c0f88fdec6368e081ab968411cc706b1
https://git.kernel.org/stable/c/34c3a47d20ae55b3600fed733bf96eafe9c500d5
https://git.kernel.org/stable/c/17afa98bccec4f52203508b3f49b5f948c6fd6ac