From 06819dfe35fbeb88342e47bc54bc6e108f05dd16 Mon Sep 17 00:00:00 2001 From: Oliver Neukum Date: Mon, 8 Dec 2003 17:53:21 -0800 Subject: [PATCH] [PATCH] USB: fix error return codes in usblp this fixes the questionable error return codes Paulo noticed in usblp. I hope I really got all cases now. --- drivers/usb/class/usblp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c index 0246c91cf8713..d034a60c06ff0 100644 --- a/drivers/usb/class/usblp.c +++ b/drivers/usb/class/usblp.c @@ -610,7 +610,7 @@ static ssize_t usblp_write(struct file *file, const char __user *buffer, size_t if (!usblp->wcomplete) { barrier(); if (file->f_flags & O_NONBLOCK) - return -EAGAIN; + return writecount ? writecount : -EAGAIN; timeout = USBLP_WRITE_TIMEOUT; add_wait_queue(&usblp->wait, &wait); @@ -673,8 +673,8 @@ static ssize_t usblp_write(struct file *file, const char __user *buffer, size_t usblp->writeurb->dev = usblp->dev; usblp->wcomplete = 0; - if (usb_submit_urb(usblp->writeurb, GFP_KERNEL)) { - count = -EIO; + if (err = usb_submit_urb(usblp->writeurb, GFP_KERNEL)) { + count = err != -ENOMEM ? -EIO : (writecount ? writecount : -ENOMEM); up (&usblp->sem); break; } -- 2.53.0