lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ