From 7a9831d49606a4e2698891543c05fc26d48f56e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= Date: Sun, 15 Jul 2012 16:47:37 +0200 Subject: [PATCH] --- yaml --- r: 317057 b: refs/heads/master c: d25d5f28828708b81658cff6f676b710c7ee171d h: refs/heads/master i: 317055: c31ed1a30add53d3b7ad0a2a4474bbff2f75627c v: v3 --- [refs] | 2 +- trunk/drivers/usb/serial/qcserial.c | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 96374639978b..315ece7dc204 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2cf69930f03af63731678de79cb1dbe3547a5938 +refs/heads/master: d25d5f28828708b81658cff6f676b710c7ee171d diff --git a/trunk/drivers/usb/serial/qcserial.c b/trunk/drivers/usb/serial/qcserial.c index 74e0b132af3d..7556f343c0f3 100644 --- a/trunk/drivers/usb/serial/qcserial.c +++ b/trunk/drivers/usb/serial/qcserial.c @@ -157,11 +157,10 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) usb_endpoint_is_bulk_out(&intf->endpoint[1].desc)) { dev_dbg(dev, "QDL port found\n"); - if (serial->interface->num_altsetting == 1) { + if (serial->interface->num_altsetting == 1) retval = 0; /* Success */ - break; - } - altsetting = 1; + else + altsetting = 1; } break; @@ -203,8 +202,6 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) default: dev_err(dev, "unknown number of interfaces: %d\n", nintf); - kfree(data); - retval = -ENODEV; } if (altsetting >= 0) { @@ -214,13 +211,15 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) "Could not set interface, error %d\n", retval); retval = -ENODEV; - kfree(data); } } - /* Set serial->private if not returning -ENODEV */ - if (retval != -ENODEV) + /* Set serial->private if not returning error */ + if (retval == 0) usb_set_serial_data(serial, data); + else + kfree(data); + return retval; }