summaryrefslogtreecommitdiff
path: root/drivers/block/DAC960.c
diff options
context:
space:
mode:
authorNeil Horman <nhorman@tuxdriver.com>2009-09-22 16:43:36 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-23 07:39:28 -0700
commitc02e3f361c75da04ca3025b4d19e947e9cc62ed3 (patch)
tree92605809366dda20430fa9dc7d0b9b9f2f3c0bd9 /drivers/block/DAC960.c
parent1fd7317d02ec03c6fdf072317841287933d06d24 (diff)
downloadlinux-3.10-c02e3f361c75da04ca3025b4d19e947e9cc62ed3.tar.gz
linux-3.10-c02e3f361c75da04ca3025b4d19e947e9cc62ed3.tar.bz2
linux-3.10-c02e3f361c75da04ca3025b4d19e947e9cc62ed3.zip
kmod: fix race in usermodehelper code
The user mode helper code has a race in it. call_usermodehelper_exec() takes an allocated subprocess_info structure, which it passes to a workqueue, and then passes it to a kernel thread which it creates, after which it calls complete to signal to the caller of call_usermodehelper_exec() that it can free the subprocess_info struct. But since we use that structure in the created thread, we can't call complete from __call_usermodehelper(), which is where we create the kernel thread. We need to call complete() from within the kernel thread and then not use subprocess_info afterward in the case of UMH_WAIT_EXEC. Tested successfully by me. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/block/DAC960.c')
0 files changed, 0 insertions, 0 deletions