Hi, On Mon, Feb 26, 2007 at 07:51:19AM -0800, Linus Torvalds wrote: > > > On Mon, 26 Feb 2007, Jiri Slaby wrote: > > > > Ok, this commit is the culprit: > > Commit: 2ff2d3d74705d34ab71b21f54634fcf50d57bdd5 > > Author: Stephane Eranian <[EMAIL PROTECTED]> Tue, 13 Feb 2007 13:26:22 +0100 > > > > [PATCH] i386: add idle notifier > > Interesting. It doesn't touch floppy at all, but it *does* seem to play > around with irq state. > > In particular, the floppy uses IRQF_DISABLED (which means that it doesn't > want interrupts enabled when in the irq handler), and I get the feeling > that the poll_idle() stuff made that not work. > > That said, the only thing that *really* seems to change (as far as a > floopy driver could notice) is the added "exit_idle()" in the do_IRQ() > sequence, and I'm not seeing that one enabling interrupts. > > But the idle sequence definitely does (ie now we disable/enable interrupts > in cpu_idle(). I'm not seeing why that should matter, though. > > Stephane, any ideas? > I think this may be related to the issue fixed by Venkatesh here: http://www.ussg.iu.edu/hypermail/linux/kernel/0611.3/1264.html
The same code was used for i386 but I think for both architectures, the patch is missing default_idle(). I believe deault idle should look as follows: void default_idle(void) { if (!hlt_counter && boot_cpu_data.hlt_works_ok) { current_thread_info()->status &= ~TS_POLLING; /* * TS_POLLING-cleared state must be visible before we * test NEED_RESCHED: */ smp_mb(); local_irq_disable(); if (!need_resched()) safe_halt(); /* enables interrupts racelessly */ else local_irq_enable(); current_thread_info()->status |= TS_POLLING; } else { /* loop is done by the caller */ ----> local_irq_enable(); cpu_relax(); } } I do not have any machine with floppy drives. Could you try this? Thanks. -- -Stephane - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/