summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-01-23 01:48:03 +0100
committerTejun Heo <tj@kernel.org>2013-01-23 01:48:03 +0100
commit0fdff3ec6d87856cdcc99e69cf42143fdd6c56b4 (patch)
tree361b0d7f16f03c4e9f196882df5245faa4ac7138 /init
parentblock: don't request module during elevator init (diff)
downloadlinux-0fdff3ec6d87856cdcc99e69cf42143fdd6c56b4.tar.xz
linux-0fdff3ec6d87856cdcc99e69cf42143fdd6c56b4.zip
async, kmod: warn on synchronous request_module() from async workers
Synchronous requet_module() from an async worker can lead to deadlock because module init path may invoke async_synchronize_full(). The async worker waits for request_module() to complete and the module loading waits for the async task to finish. This bug happened in the block layer because of default elevator auto-loading. Block layer has been updated not to do default elevator auto-loading and it has been decided to disallow synchronous request_module() from async workers. Trigger WARN_ON_ONCE() on synchronous request_module() from async workers. For more details, please refer to the following thread. http://thread.gmane.org/gmane.linux.kernel/1420814 Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Alex Riesen <raa.lkml@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Arjan van de Ven <arjan@linux.intel.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions