From: Nishanth Aravamudan Use schedule_timeout_{,un}interruptible() instead of set_current_state()/schedule_timeout() to reduce kernel size. Signed-off-by: Nishanth Aravamudan Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/usb/class/audio.c | 13 ++++++++----- drivers/usb/host/ehci-hcd.c | 3 +-- drivers/usb/host/ohci-hcd.c | 3 +-- drivers/usb/serial/cypress_m8.c | 3 +-- drivers/usb/serial/pl2303.c | 3 +-- 5 files changed, 12 insertions(+), 13 deletions(-) diff -puN drivers/usb/class/audio.c~drivers-usb-fix-up-schedule_timeout-usage drivers/usb/class/audio.c --- devel/drivers/usb/class/audio.c~drivers-usb-fix-up-schedule_timeout-usage 2005-09-11 02:06:29.000000000 -0700 +++ devel-akpm/drivers/usb/class/audio.c 2005-09-11 02:06:29.000000000 -0700 @@ -631,8 +631,10 @@ static void usbin_stop(struct usb_audiod i = u->flags; spin_unlock_irqrestore(&as->lock, flags); while (i & (FLG_URB0RUNNING|FLG_URB1RUNNING|FLG_SYNC0RUNNING|FLG_SYNC1RUNNING)) { - set_current_state(notkilled ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); - schedule_timeout(1); + if (notkilled) + schedule_timeout_interruptible(1); + else + schedule_timeout_uninterruptible(1); spin_lock_irqsave(&as->lock, flags); i = u->flags; spin_unlock_irqrestore(&as->lock, flags); @@ -1102,8 +1104,10 @@ static void usbout_stop(struct usb_audio i = u->flags; spin_unlock_irqrestore(&as->lock, flags); while (i & (FLG_URB0RUNNING|FLG_URB1RUNNING|FLG_SYNC0RUNNING|FLG_SYNC1RUNNING)) { - set_current_state(notkilled ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); - schedule_timeout(1); + if (notkilled) + schedule_timeout_interruptible(1); + else + schedule_timeout_uninterruptible(1); spin_lock_irqsave(&as->lock, flags); i = u->flags; spin_unlock_irqrestore(&as->lock, flags); @@ -1119,7 +1123,6 @@ static void usbout_stop(struct usb_audio notkilled = 0; } } - set_current_state(TASK_RUNNING); kfree(u->durb[0].urb->transfer_buffer); kfree(u->durb[1].urb->transfer_buffer); kfree(u->surb[0].urb->transfer_buffer); diff -puN drivers/usb/host/ehci-hcd.c~drivers-usb-fix-up-schedule_timeout-usage drivers/usb/host/ehci-hcd.c --- devel/drivers/usb/host/ehci-hcd.c~drivers-usb-fix-up-schedule_timeout-usage 2005-09-11 02:06:29.000000000 -0700 +++ devel-akpm/drivers/usb/host/ehci-hcd.c 2005-09-11 02:06:29.000000000 -0700 @@ -1126,8 +1126,7 @@ rescan: case QH_STATE_UNLINK: /* wait for hw to finish? */ idle_timeout: spin_unlock_irqrestore (&ehci->lock, flags); - set_current_state (TASK_UNINTERRUPTIBLE); - schedule_timeout (1); + schedule_timeout_uninterruptible(1); goto rescan; case QH_STATE_IDLE: /* fully unlinked */ if (list_empty (&qh->qtd_list)) { diff -puN drivers/usb/host/ohci-hcd.c~drivers-usb-fix-up-schedule_timeout-usage drivers/usb/host/ohci-hcd.c --- devel/drivers/usb/host/ohci-hcd.c~drivers-usb-fix-up-schedule_timeout-usage 2005-09-11 02:06:29.000000000 -0700 +++ devel-akpm/drivers/usb/host/ohci-hcd.c 2005-09-11 02:06:29.000000000 -0700 @@ -382,8 +382,7 @@ sanitize: goto sanitize; } spin_unlock_irqrestore (&ohci->lock, flags); - set_current_state (TASK_UNINTERRUPTIBLE); - schedule_timeout (1); + schedule_timeout_uninterruptible(1); goto rescan; case ED_IDLE: /* fully unlinked */ if (list_empty (&ed->td_list)) { diff -puN drivers/usb/serial/cypress_m8.c~drivers-usb-fix-up-schedule_timeout-usage drivers/usb/serial/cypress_m8.c --- devel/drivers/usb/serial/cypress_m8.c~drivers-usb-fix-up-schedule_timeout-usage 2005-09-11 02:06:29.000000000 -0700 +++ devel-akpm/drivers/usb/serial/cypress_m8.c 2005-09-11 02:06:29.000000000 -0700 @@ -610,8 +610,7 @@ static void cypress_close(struct usb_ser timeout = max((HZ*2560)/bps,HZ/10); else timeout = 2*HZ; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(timeout); + schedule_timeout_interruptible(timeout); dbg("%s - stopping urbs", __FUNCTION__); usb_kill_urb (port->interrupt_in_urb); diff -puN drivers/usb/serial/pl2303.c~drivers-usb-fix-up-schedule_timeout-usage drivers/usb/serial/pl2303.c --- devel/drivers/usb/serial/pl2303.c~drivers-usb-fix-up-schedule_timeout-usage 2005-09-11 02:06:29.000000000 -0700 +++ devel-akpm/drivers/usb/serial/pl2303.c 2005-09-11 02:06:29.000000000 -0700 @@ -652,8 +652,7 @@ static void pl2303_close (struct usb_ser timeout = max((HZ*2560)/bps,HZ/10); else timeout = 2*HZ; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(timeout); + schedule_timeout_interruptible(timeout); /* shutdown our urbs */ dbg("%s - shutting down urbs", __FUNCTION__); _