From e6fa983600820b7159a1c3d480416f2813b2a7f0 Mon Sep 17 00:00:00 2001 From: Elina Pasheva Date: Wed, 29 Apr 2009 10:29:21 -0700 Subject: [PATCH] --- yaml --- r: 151363 b: refs/heads/master c: b0cda8c5f7b652c6c27bcb3891d174534d2f1a91 h: refs/heads/master i: 151361: 13a866291a296e2867bbd256caa31746eca6554c 151359: 648c969c802571bd696b05af747686e8321be126 v: v3 --- [refs] | 2 +- trunk/drivers/usb/serial/sierra.c | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 1ead6a9bb6be..35ec36941436 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 40d2ff32f102e69d482480265ec60ffb86b028de +refs/heads/master: b0cda8c5f7b652c6c27bcb3891d174534d2f1a91 diff --git a/trunk/drivers/usb/serial/sierra.c b/trunk/drivers/usb/serial/sierra.c index 27f41f95aefb..f494c5f659e2 100644 --- a/trunk/drivers/usb/serial/sierra.c +++ b/trunk/drivers/usb/serial/sierra.c @@ -509,10 +509,10 @@ static void sierra_indat_callback(struct urb *urb) unsigned char *data = urb->transfer_buffer; int status = urb->status; - dbg("%s: %p", __func__, urb); - endpoint = usb_pipeendpoint(urb->pipe); - port = urb->context; + port = urb->context; + + dev_dbg(&port->dev, "%s: %p\n", __func__, urb); if (status) { dev_dbg(&port->dev, "%s: nonzero status: %d on" @@ -520,22 +520,28 @@ static void sierra_indat_callback(struct urb *urb) } else { if (urb->actual_length) { tty = tty_port_tty_get(&port->port); + tty_buffer_request_room(tty, urb->actual_length); tty_insert_flip_string(tty, data, urb->actual_length); tty_flip_buffer_push(tty); + tty_kref_put(tty); - } else + usb_serial_debug_data(debug, &port->dev, __func__, + urb->actual_length, data); + } else { dev_dbg(&port->dev, "%s: empty read urb" " received\n", __func__); - - /* Resubmit urb so we continue receiving */ - if (port->port.count && status != -ESHUTDOWN && status != -EPERM) { - err = usb_submit_urb(urb, GFP_ATOMIC); - if (err) - dev_err(&port->dev, "resubmit read urb failed." - "(%d)\n", err); } } + + /* Resubmit urb so we continue receiving */ + if (port->port.count && status != -ESHUTDOWN && status != -EPERM) { + err = usb_submit_urb(urb, GFP_ATOMIC); + if (err) + dev_err(&port->dev, "resubmit read urb failed." + "(%d)\n", err); + } + return; }