USB: fix concurrent buffer access in the hub driver
[powerpc.git] / drivers / usb / serial / mct_u232.c
index b7582cc..4cd839b 100644 (file)
@@ -98,7 +98,7 @@ static void mct_u232_close             (struct usb_serial_port *port,
                                          struct file *filp);
 static void mct_u232_read_int_callback   (struct urb *urb);
 static void mct_u232_set_termios         (struct usb_serial_port *port,
-                                         struct termios * old);
+                                         struct ktermios * old);
 static int  mct_u232_ioctl              (struct usb_serial_port *port,
                                          struct file * file,
                                          unsigned int cmd,
@@ -137,6 +137,7 @@ static struct usb_serial_driver mct_u232_device = {
                .name =         "mct_u232",
        },
        .description =       "MCT U232",
+       .usb_driver =        &mct_u232_driver,
        .id_table =          id_table_combined,
        .num_interrupt_in =  2,
        .num_bulk_in =       0,
@@ -358,10 +359,8 @@ static int mct_u232_startup (struct usb_serial *serial)
        /* Puh, that's dirty */
        port = serial->port[0];
        rport = serial->port[1];
-       if (port->read_urb) {
-               /* No unlinking, it wasn't submitted yet. */
-               usb_free_urb(port->read_urb);
-       }
+       /* No unlinking, it wasn't submitted yet. */
+       usb_free_urb(port->read_urb);
        port->read_urb = rport->interrupt_in_urb;
        rport->interrupt_in_urb = NULL;
        port->read_urb->context = port;
@@ -558,7 +557,7 @@ exit:
 } /* mct_u232_read_int_callback */
 
 static void mct_u232_set_termios (struct usb_serial_port *port,
-                                 struct termios *old_termios)
+                                 struct ktermios *old_termios)
 {
        struct usb_serial *serial = port->serial;
        struct mct_u232_private *priv = usb_get_serial_port_data(port);