From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753229Ab0ASOTS (ORCPT ); Tue, 19 Jan 2010 09:19:18 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752654Ab0ASOTR (ORCPT ); Tue, 19 Jan 2010 09:19:17 -0500 Received: from earthlight.etchedpixels.co.uk ([81.2.110.250]:49838 "EHLO www.etchedpixels.co.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751271Ab0ASOTR (ORCPT ); Tue, 19 Jan 2010 09:19:17 -0500 Date: Tue, 19 Jan 2010 14:21:24 +0000 From: Alan Cox To: Oliver Neukum Cc: Matthew Garrett , dvomlehn@cisco.com, gregkh@suse.de, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [REGRESSION] "USB: use kfifo to buffer usb-generic serial writes" causes gobi_loader to hang Message-ID: <20100119142124.6f2a7034@lxorguk.ukuu.org.uk> In-Reply-To: <201001191457.00504.oliver@neukum.org> References: <20100117025535.GB7045@srcf.ucam.org> <201001191420.29652.oliver@neukum.org> <20100119132934.0c1688f7@lxorguk.ukuu.org.uk> <201001191457.00504.oliver@neukum.org> X-Mailer: Claws Mail 3.7.3 (GTK+ 2.18.5; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 19 Jan 2010 14:57:00 +0100 Oliver Neukum wrote: > Am Dienstag, 19. Januar 2010 14:29:34 schrieb Alan Cox: > > On Tue, 19 Jan 2010 14:20:29 +0100 > > Oliver Neukum wrote: > > > > > Am Montag, 18. Januar 2010 21:14:16 schrieb Matthew Garrett: > > > > > > > drivers/usb/serial/generic.c: usb_serial_generic_write - port 0, 1565 > > > > bytes > > > > drivers/usb/serial/generic.c: usb_serial_generic_write - put 0 bytes > > > > into fifo > > > > drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - > > > > port 0 > > > > > > If the FIFO is full we can do nothing. Please try the attached patch. > > > > If the FIFO is full how are we getting called - we should have throttled > > earlier if there is any flow control (including 'look no URBs' cases) ? > > The log shows no call to usb_serial_generic_write_room() > Do you consider this a bug in the tty layer? Some of the line disciplines just throw data at the board but not n_tty (the normal one) - so for PPP you wouldn't see checks on room but the loader I assume is using the normal tty layer - if so something is up because the ldisc shouldn't have written more than there is room for.