[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48665B1A.8000004@nokia.com>
Date: Sat, 28 Jun 2008 18:39:06 +0300
From: Stefan Becker <Stefan.Becker@...ia.com>
To: ext Alan Stern <stern@...land.harvard.edu>,
linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org
Subject: Re: [REGRESSION] 2.6.24/25: random lockups when accessing external
USB harddrive
Hi Alan,
ext Alan Stern wrote:
>
> I don't know, but it's a good start. The IRQs for uhci-hcd and
> ehci-hcd are registered using the IRQF_DISABLED flag, which means that
> the handler routines uhci_irq() and ehci_irq() should always be called
> with interrupts disabled.
>
> So that's the next thing to test. Put a raw_irqs_disabled() test at
> the start of those two routines, just to make sure that interrupts
> don't somehow get enabled by mistake while the routine is running. If
> interrupts are already enabled when the routines are called then the
> bug is somewhere else in the kernel.
Second try, slightly different tack: no dump_stack() in the _irq()
functions, but disabled/enabled indication. Plus debugging code added in
usb_hcd_add() to see the interrupt registration. Again too much data was
printed for the bug to appear.
Looking at the collected data it looks like
- ehci_irq() is always entered with interrupts enabled (WRONG).
- uhci_irq() is entered sometimes with either interrupts enabled
(WRONG) or disabled (OK).
But both interrupts are registered with IRQF_DISABLED...
Regards,
Stefan
---
Stefan Becker
E-Mail: Stefan.Becker@...ia.com
View attachment "usb-dump-stack.patch" of type "text/plain" (3822 bytes)
Download attachment "dump_stack.txt.bz2" of type "application/x-bzip" (40332 bytes)
Powered by blists - more mailing lists