浏览代码

USB: race fixes for usb-serial, step 3

- fix an error code returned if a device has been disconnected

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Oliver Neukum 18 年之前
父节点
当前提交
3ff4fd94c8
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/usb/serial/usb-serial.c

+ 2 - 1
drivers/usb/serial/usb-serial.c

@@ -281,7 +281,7 @@ static void serial_close(struct tty_struct *tty, struct file * filp)
 static int serial_write (struct tty_struct * tty, const unsigned char *buf, int count)
 static int serial_write (struct tty_struct * tty, const unsigned char *buf, int count)
 {
 {
 	struct usb_serial_port *port = tty->driver_data;
 	struct usb_serial_port *port = tty->driver_data;
-	int retval = -EINVAL;
+	int retval = -ENODEV;
 
 
 	if (!port || port->serial->dev->state == USB_STATE_NOTATTACHED)
 	if (!port || port->serial->dev->state == USB_STATE_NOTATTACHED)
 		goto exit;
 		goto exit;
@@ -289,6 +289,7 @@ static int serial_write (struct tty_struct * tty, const unsigned char *buf, int
 	dbg("%s - port %d, %d byte(s)", __FUNCTION__, port->number, count);
 	dbg("%s - port %d, %d byte(s)", __FUNCTION__, port->number, count);
 
 
 	if (!port->open_count) {
 	if (!port->open_count) {
+		retval = -EINVAL;
 		dbg("%s - port not opened", __FUNCTION__);
 		dbg("%s - port not opened", __FUNCTION__);
 		goto exit;
 		goto exit;
 	}
 	}