aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/atm/ueagle-atm.c1
-rw-r--r--drivers/usb/core/hub.c1
-rw-r--r--drivers/usb/gadget/file_storage.c3
-rw-r--r--drivers/usb/storage/usb.c3
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
2729static int hub_thread(void *__unused) 2729static 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 "