diff options
Diffstat (limited to 'drivers/usb/class/usblp.c')
-rw-r--r-- | drivers/usb/class/usblp.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c index 809d465eb257..6303970e93c1 100644 --- a/drivers/usb/class/usblp.c +++ b/drivers/usb/class/usblp.c | |||
@@ -722,6 +722,7 @@ static ssize_t usblp_write(struct file *file, const char __user *buffer, size_t | |||
722 | usblp->wcomplete = 0; | 722 | usblp->wcomplete = 0; |
723 | err = usb_submit_urb(usblp->writeurb, GFP_KERNEL); | 723 | err = usb_submit_urb(usblp->writeurb, GFP_KERNEL); |
724 | if (err) { | 724 | if (err) { |
725 | usblp->wcomplete = 1; | ||
725 | if (err != -ENOMEM) | 726 | if (err != -ENOMEM) |
726 | count = -EIO; | 727 | count = -EIO; |
727 | else | 728 | else |
@@ -1202,8 +1203,6 @@ static int usblp_suspend (struct usb_interface *intf, pm_message_t message) | |||
1202 | down (&usblp->sem); | 1203 | down (&usblp->sem); |
1203 | /* we take no more IO */ | 1204 | /* we take no more IO */ |
1204 | usblp->sleeping = 1; | 1205 | usblp->sleeping = 1; |
1205 | /* we wait for anything printing */ | ||
1206 | wait_event (usblp->wait, usblp->wcomplete || !usblp->present); | ||
1207 | usblp_unlink_urbs(usblp); | 1206 | usblp_unlink_urbs(usblp); |
1208 | up (&usblp->sem); | 1207 | up (&usblp->sem); |
1209 | mutex_unlock (&usblp_mutex); | 1208 | mutex_unlock (&usblp_mutex); |