Message ID | 20100105145127.GC19825@raptor |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Jan Dumon <j.dumon@option.com> Date: Tue, 5 Jan 2010 15:51:28 +0100 > From: Jan Dumon <j.dumon@option.com> > > Don't change the state of a port if it's not open. This fixes an issue where a > port sometimes has to be opened twice before data can be received. > > Signed-off-by: Jan Dumon <j.dumon@option.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- linux-2.6.orig/drivers/net/usb/hso.c +++ linux-2.6/drivers/net/usb/hso.c @@ -1915,18 +1915,18 @@ static void intr_callback(struct urb *ur if (serial != NULL) { D1("Pending read interrupt on port %d\n", i); spin_lock(&serial->serial_lock); - if (serial->rx_state == RX_IDLE) { + if (serial->rx_state == RX_IDLE && + serial->open_count > 0) { /* Setup and send a ctrl req read on * port i */ - if (!serial->rx_urb_filled[0]) { + if (!serial->rx_urb_filled[0]) { serial->rx_state = RX_SENT; hso_mux_serial_read(serial); } else serial->rx_state = RX_PENDING; - } else { - D1("Already pending a read on " - "port %d\n", i); + D1("Already a read pending on " + "port %d or port not open\n", i); } spin_unlock(&serial->serial_lock); }