diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/atm/ueagle-atm.c | 1 | ||||
-rw-r--r-- | drivers/usb/core/hub.c | 1 | ||||
-rw-r--r-- | drivers/usb/gadget/file_storage.c | 3 | ||||
-rw-r--r-- | drivers/usb/storage/usb.c | 3 |
4 files changed, 6 insertions, 2 deletions
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c index 4973e147bc79..8f046659b4e9 100644 --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c | |||
@@ -1168,6 +1168,7 @@ static int uea_kthread(void *data) | |||
1168 | struct uea_softc *sc = data; | 1168 | struct uea_softc *sc = data; |
1169 | int ret = -EAGAIN; | 1169 | int ret = -EAGAIN; |
1170 | 1170 | ||
1171 | set_freezable(); | ||
1171 | uea_enters(INS_TO_USBDEV(sc)); | 1172 | uea_enters(INS_TO_USBDEV(sc)); |
1172 | while (!kthread_should_stop()) { | 1173 | while (!kthread_should_stop()) { |
1173 | if (ret < 0 || sc->reset) | 1174 | if (ret < 0 || sc->reset) |
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 50e79010401c..fd74c50b1804 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -2728,6 +2728,7 @@ loop: | |||
2728 | 2728 | ||
2729 | static int hub_thread(void *__unused) | 2729 | static int hub_thread(void *__unused) |
2730 | { | 2730 | { |
2731 | set_freezable(); | ||
2731 | do { | 2732 | do { |
2732 | hub_events(); | 2733 | hub_events(); |
2733 | wait_event_interruptible(khubd_wait, | 2734 | wait_event_interruptible(khubd_wait, |
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c index 8712ef987179..be7a1bd2823b 100644 --- a/drivers/usb/gadget/file_storage.c +++ b/drivers/usb/gadget/file_storage.c | |||
@@ -3434,6 +3434,9 @@ static int fsg_main_thread(void *fsg_) | |||
3434 | allow_signal(SIGKILL); | 3434 | allow_signal(SIGKILL); |
3435 | allow_signal(SIGUSR1); | 3435 | allow_signal(SIGUSR1); |
3436 | 3436 | ||
3437 | /* Allow the thread to be frozen */ | ||
3438 | set_freezable(); | ||
3439 | |||
3437 | /* Arrange for userspace references to be interpreted as kernel | 3440 | /* Arrange for userspace references to be interpreted as kernel |
3438 | * pointers. That way we can pass a kernel pointer to a routine | 3441 | * pointers. That way we can pass a kernel pointer to a routine |
3439 | * that expects a __user pointer and it will work okay. */ | 3442 | * that expects a __user pointer and it will work okay. */ |
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index bef8bcd9bd98..28842d208bb0 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c | |||
@@ -311,8 +311,6 @@ static int usb_stor_control_thread(void * __us) | |||
311 | struct Scsi_Host *host = us_to_host(us); | 311 | struct Scsi_Host *host = us_to_host(us); |
312 | int autopm_rc; | 312 | int autopm_rc; |
313 | 313 | ||
314 | current->flags |= PF_NOFREEZE; | ||
315 | |||
316 | for(;;) { | 314 | for(;;) { |
317 | US_DEBUGP("*** thread sleeping.\n"); | 315 | US_DEBUGP("*** thread sleeping.\n"); |
318 | if(down_interruptible(&us->sema)) | 316 | if(down_interruptible(&us->sema)) |
@@ -920,6 +918,7 @@ static int usb_stor_scan_thread(void * __us) | |||
920 | printk(KERN_DEBUG | 918 | printk(KERN_DEBUG |
921 | "usb-storage: device found at %d\n", us->pusb_dev->devnum); | 919 | "usb-storage: device found at %d\n", us->pusb_dev->devnum); |
922 | 920 | ||
921 | set_freezable(); | ||
923 | /* Wait for the timeout to expire or for a disconnect */ | 922 | /* Wait for the timeout to expire or for a disconnect */ |
924 | if (delay_use > 0) { | 923 | if (delay_use > 0) { |
925 | printk(KERN_DEBUG "usb-storage: waiting for device " | 924 | printk(KERN_DEBUG "usb-storage: waiting for device " |