aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/mct_u232.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/mct_u232.c')
-rw-r--r--drivers/usb/serial/mct_u232.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
index 4446b8d70ac2..885655315de1 100644
--- a/drivers/usb/serial/mct_u232.c
+++ b/drivers/usb/serial/mct_u232.c
@@ -376,14 +376,21 @@ static void mct_u232_msr_to_state(struct usb_serial_port *port,
376 376
377static int mct_u232_port_probe(struct usb_serial_port *port) 377static int mct_u232_port_probe(struct usb_serial_port *port)
378{ 378{
379 struct usb_serial *serial = port->serial;
379 struct mct_u232_private *priv; 380 struct mct_u232_private *priv;
380 381
382 /* check first to simplify error handling */
383 if (!serial->port[1] || !serial->port[1]->interrupt_in_urb) {
384 dev_err(&port->dev, "expected endpoint missing\n");
385 return -ENODEV;
386 }
387
381 priv = kzalloc(sizeof(*priv), GFP_KERNEL); 388 priv = kzalloc(sizeof(*priv), GFP_KERNEL);
382 if (!priv) 389 if (!priv)
383 return -ENOMEM; 390 return -ENOMEM;
384 391
385 /* Use second interrupt-in endpoint for reading. */ 392 /* Use second interrupt-in endpoint for reading. */
386 priv->read_urb = port->serial->port[1]->interrupt_in_urb; 393 priv->read_urb = serial->port[1]->interrupt_in_urb;
387 priv->read_urb->context = port; 394 priv->read_urb->context = port;
388 395
389 spin_lock_init(&priv->lock); 396 spin_lock_init(&priv->lock);