USB: symbolserial: Use usb_get_serial_port_data
authorPhilipp Hachtmann <hachti@hachti.de>
Mon, 17 Aug 2015 15:31:46 +0000 (17:31 +0200)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:09:56 +0000 (13:09 +0000)
commit 951d3793bbfc0a441d791d820183aa3085c83ea9 upstream.

The driver used usb_get_serial_data(port->serial) which compiled but resulted
in a NULL pointer being returned (and subsequently used). I did not go deeper
into this but I guess this is a regression.

Signed-off-by: Philipp Hachtmann <hachti@hachti.de>
Fixes: a85796ee5149 ("USB: symbolserial: move private-data allocation to
port_probe")
Acked-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/symbolserial.c

index 9b1648945e7a854151d260dd79815a8db90f4b12..1e2d86d4f539ee45f424105722f0b1d16d4a3217 100644 (file)
@@ -97,7 +97,7 @@ exit:
 
 static int symbol_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
-       struct symbol_private *priv = usb_get_serial_data(port->serial);
+       struct symbol_private *priv = usb_get_serial_port_data(port);
        unsigned long flags;
        int result = 0;
 
@@ -123,7 +123,7 @@ static void symbol_close(struct usb_serial_port *port)
 static void symbol_throttle(struct tty_struct *tty)
 {
        struct usb_serial_port *port = tty->driver_data;
-       struct symbol_private *priv = usb_get_serial_data(port->serial);
+       struct symbol_private *priv = usb_get_serial_port_data(port);
 
        spin_lock_irq(&priv->lock);
        priv->throttled = true;
@@ -133,7 +133,7 @@ static void symbol_throttle(struct tty_struct *tty)
 static void symbol_unthrottle(struct tty_struct *tty)
 {
        struct usb_serial_port *port = tty->driver_data;
-       struct symbol_private *priv = usb_get_serial_data(port->serial);
+       struct symbol_private *priv = usb_get_serial_port_data(port);
        int result;
        bool was_throttled;