From patchwork Tue Jan 5 14:51:28 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Dumon X-Patchwork-Id: 42121 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 140D9B6F06 for ; Wed, 6 Jan 2010 02:02:49 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754619Ab0AEPBl (ORCPT ); Tue, 5 Jan 2010 10:01:41 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754692Ab0AEPBi (ORCPT ); Tue, 5 Jan 2010 10:01:38 -0500 Received: from mailer2.option.com ([81.246.70.163]:46230 "EHLO mailer2.option.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754727Ab0AEPBY (ORCPT ); Tue, 5 Jan 2010 10:01:24 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au0AAN/gQksKAAAZ/2dsb2JhbAAIg1fCIY1VgSyCLlYE Received: from unknown (HELO smtp3.option.com) ([10.0.0.25]) by mailer2.option.local with ESMTP; 05 Jan 2010 15:51:30 +0100 Received: from raptor ([10.30.11.23]) by smtp3.option.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 5 Jan 2010 15:51:28 +0100 Received: by raptor (sSMTP sendmail emulation); Tue, 05 Jan 2010 15:51:28 +0100 Date: Tue, 5 Jan 2010 15:51:28 +0100 From: Jan Dumon To: linux-usb@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH 3/6] hso: don't change the state of a closed port Message-ID: <20100105145127.GC19825@raptor> MIME-Version: 1.0 Content-Disposition: inline Organization: Option User-Agent: Mutt/1.5.20 (2009-06-14) X-OriginalArrivalTime: 05 Jan 2010 14:51:28.0432 (UTC) FILETIME=[8FAC0300:01CA8E16] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jan Dumon 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 --- 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); }