Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754155AbZGLPQm (ORCPT ); Sun, 12 Jul 2009 11:16:42 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754046AbZGLPQc (ORCPT ); Sun, 12 Jul 2009 11:16:32 -0400 Received: from netrider.rowland.org ([192.131.102.5]:37978 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1753804AbZGLPQc (ORCPT ); Sun, 12 Jul 2009 11:16:32 -0400 Date: Sun, 12 Jul 2009 11:16:30 -0400 (EDT) From: Alan Stern X-X-Sender: stern@netrider.rowland.org To: "Michael S. Zick" cc: Oliver Neukum , Jiri Kosina , , Subject: Re: uhci_hcd fails to off-line device/hub on error condition In-Reply-To: <200907111407.54152.lkml@morethan.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1880 Lines: 41 On Sat, 11 Jul 2009, Michael S. Zick wrote: > - - Megabytes of the same snipped - - > uhci_hcd 0000:00:10.2: host controller process error, something bad happened! > uhci_hcd 0000:00:10.1: host system error, PCI problems? > uhci_hcd 0000:00:10.1: host controller process error, something bad happened! > uhci_hcd 0000:00:10.2: host system error, PCI problems? > uhci_hcd 0000:00:10.2: host controller process error, something bad happened! > > - - driver can detect unexpected behavior sufficent to post the messages - - > > uhci_hcd 0000:00:10.1: host system error, PCI problems? > uhci_hcd 0000:00:10.1: host controller process error, something bad happened! > > - - but never does anything about it - other than bitch - - Yep. The problem identified by those messages is supposed to be very rare -- they mean that the PCI bus is overloaded and consequently the USB controller wasn't able to transfer the data it needed sufficiently rapidly. (Except in your case, where they really mean that something is wrong with the hardware. But how can the kernel be expected to realize this?) The driver doesn't do anything about it because there's nothing to be done. Bus overloads are very rare and quickly go away by themselves. It isn't a fatal error. Now, I suppose we could add a test for badly misbehaving hardware. You can do it yourself: In drivers/usb/host/uhci-hcd.c, find the big "if" statement in uhci_irq() that tests for any unexpected bits in the "status" variable. Try printing out the value of status; if it turns out to be 0xffff then we can detect your problem and take the controller offline. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/