aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/class
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-04-05 19:41:22 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-05 19:41:22 -0400
commit9efe21cb82b5dbe3b0b2ae4de4eccc64ecb94e95 (patch)
tree7ff8833745d2f268f897f6fa4a27263b4a572245 /drivers/usb/class
parentde18836e447c2dc30120c0919b8db8ddc0401cc4 (diff)
parent0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c (diff)
Merge branch 'linus' into irq/threaded
Conflicts: include/linux/irq.h kernel/irq/handle.c
Diffstat (limited to 'drivers/usb/class')
-rw-r--r--drivers/usb/class/usblp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index 3f3ee1351930..d2747a49b974 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -880,16 +880,19 @@ static int usblp_wwait(struct usblp *usblp, int nonblock)
880 if (rc <= 0) 880 if (rc <= 0)
881 break; 881 break;
882 882
883 if (usblp->flags & LP_ABORT) { 883 if (schedule_timeout(msecs_to_jiffies(1500)) == 0) {
884 if (schedule_timeout(msecs_to_jiffies(5000)) == 0) { 884 if (usblp->flags & LP_ABORT) {
885 err = usblp_check_status(usblp, err); 885 err = usblp_check_status(usblp, err);
886 if (err == 1) { /* Paper out */ 886 if (err == 1) { /* Paper out */
887 rc = -ENOSPC; 887 rc = -ENOSPC;
888 break; 888 break;
889 } 889 }
890 } else {
891 /* Prod the printer, Gentoo#251237. */
892 mutex_lock(&usblp->mut);
893 usblp_read_status(usblp, usblp->statusbuf);
894 mutex_unlock(&usblp->mut);
890 } 895 }
891 } else {
892 schedule();
893 } 896 }
894 } 897 }
895 set_current_state(TASK_RUNNING); 898 set_current_state(TASK_RUNNING);