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: <48664C7F.3050202@nokia.com>
Date:	Sat, 28 Jun 2008 17:36:47 +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.

OK, I've now compiled 2.6.26-rc8 with the attached changes. The output I 
collected shows that interrupts are (always) enabled when (e|u)hci_irq() 
is entered.

I aborted the test run, i.e. I didn't run into the bug. But the kernel 
was so busy with dumping stacks that it probably wouldn't have been 
triggered at all.

Regards,

	Stefan

---
Stefan Becker
E-Mail: Stefan.Becker@...ia.com

View attachment "usb-dump-stack.patch" of type "text/plain" (2977 bytes)

Download attachment "dump_stack.txt.bz2" of type "application/x-bzip" (51284 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ