Browse Source

usbatm_heavy_init: don't use CLONE_SIGHAND

usbatm_do_heavy_init() calls allow_signal() which plays with parent process's
->sighand.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Duncan Sands <duncan.sands@free.fr>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Oleg Nesterov 18 năm trước cách đây
mục cha
commit
b8a124da92
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  1. 1 1
      drivers/usb/atm/usbatm.c

+ 1 - 1
drivers/usb/atm/usbatm.c

@@ -1033,7 +1033,7 @@ static int usbatm_do_heavy_init(void *arg)
 
 
 static int usbatm_heavy_init(struct usbatm_data *instance)
 static int usbatm_heavy_init(struct usbatm_data *instance)
 {
 {
-	int ret = kernel_thread(usbatm_do_heavy_init, instance, CLONE_KERNEL);
+	int ret = kernel_thread(usbatm_do_heavy_init, instance, CLONE_FS | CLONE_FILES);
 
 
 	if (ret < 0) {
 	if (ret < 0) {
 		usb_err(instance, "%s: failed to create kernel_thread (%d)!\n", __func__, ret);
 		usb_err(instance, "%s: failed to create kernel_thread (%d)!\n", __func__, ret);