Messages in this thread | | | Date | Tue, 6 Apr 1999 21:30:01 +0200 (CEST) | From | Geert Uytterhoeven <> | Subject | Re: ide_set_handler: timer already active |
| |
On Mon, 5 Apr 1999, Gadi Oxman wrote: > I think I see it; looks like start_request() in ide_do_request() resulted > in a completion interrupt calling ide_do_request() again before we exited > it. That completion interrupt decided to exit the driver now, and set a > timer to wake us up later. Meanwhile, when we returned, ide_do_request() > thought that it has just serviced a request which was completed immediately, > without waiting for any interrupts at all, and we then went again to check > if we can exit the driver, and set the sleep timer again.. > > Does the following patch eliminate the warning messages?
Yes it does!
> If it helps, we need to verify that the irq is really masked in the > interrupt controller while the handler is being called. This can also > explain the 'eth0: Re-entering the interrupt handler' warnings from the > ethernet driver.
Now `eth0: Re-entering the interrupt handler' is the only warning message left...
> --- ide.c~ Fri Mar 26 03:13:28 1999 > +++ ide.c Mon Apr 5 21:16:47 1999 > @@ -1090,7 +1090,7 @@ > unsigned long io_flags; > > hwgroup->busy = 1; > - while (hwgroup->handler == NULL) { > + while (hwgroup->handler == NULL && hwgroup->busy) { > spin_lock_irqsave(&io_request_lock, io_flags); > drive = choose_drive(hwgroup); > if (drive == NULL) {
Greetings,
Geert
-- Geert Uytterhoeven Geert.Uytterhoeven@thomas.kotnet.org Linux/m68k on Amiga, Wavelets http://www.thomas.kotnet.org/~geert/ KotNET@Thomas Network Administration -- Make your bed part of Cyberspace!!
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |