diff options
author | Oliver Neukum <oliver@neukum.org> | 2012-04-30 09:57:31 +0200 |
---|---|---|
committer | Bjørn Mork <bjorn@mork.no> | 2012-06-04 21:58:14 +0200 |
commit | 40cf3da826816d3727757a51bcee0d4e07ade808 (patch) | |
tree | 7e0444373717a6fa0364fd7d9b9ac39403d8804a | |
parent | 2a8b6ee5cd04420ea4a980e87d932055cc3c7c18 (diff) |
USB: cdc-wdm: cleanup error codes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The internal error codes returned in the write() code
path cannot be simply passed on to user space.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Tested-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 12a98b2bd8050b3cf28b50da612c484cdf174368)
Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rw-r--r-- | drivers/usb/class/cdc-wdm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c index 32a2017ef47..26178e431eb 100644 --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c @@ -369,6 +369,7 @@ static ssize_t wdm_write r = usb_autopm_get_interface(desc->intf); if (r < 0) { kfree(buf); + rv = usb_translate_errors(r); goto outnp; } @@ -384,6 +385,7 @@ static ssize_t wdm_write if (r < 0) { kfree(buf); + rv = r; goto out; } @@ -415,6 +417,7 @@ static ssize_t wdm_write desc->outbuf = NULL; clear_bit(WDM_IN_USE, &desc->flags); dev_err(&desc->intf->dev, "Tx URB error: %d\n", rv); + rv = usb_translate_errors(rv); } else { dev_dbg(&desc->intf->dev, "Tx URB has been submitted index=%d", req->wIndex); @@ -596,6 +599,7 @@ static int wdm_open(struct inode *inode, struct file *file) desc->count--; dev_err(&desc->intf->dev, "Error submitting int urb - %d\n", rv); + rv = usb_translate_errors(rv); } } else { rv = 0; |