Re: More on the IDE multiwrite problem

Mark Lord (mlord@pobox.com)
Sat, 18 Dec 1999 11:40:02 -0500


Mark Lord wrote:
>
> Alan Cox wrote:
..
> > I'll keep on poking around the code. The obvious path for an error would
> > seem to be
> >
> > hwgroup->wrq = *rq;
> > ide_set_handler(drive, &multiwrite_intr, WAIT_CMD)
> > -> IRQ here <-.
> > multiwrite_intr gets an error
> > completes the request
> > => END IRQ <-
> > ide_multiwrite ....
> > BOOM!
>
> But that path, and IRQ-masking etc.. doesn't seem to be any different
> from before.. darn it! Mmm...

Ahh.. but it *is* slightly different..
The old code used to do:

disable_irq_nosync(hwif->irq); /* from ide.c:ide_do_request() */
...
/* insert code fragment from above */
...
enable_irq(hwif->irq); /* from ide.c:ide_do_request() */

Dumdedum.. I wonder if adding those two lines into
that part of the code cures the problem for those that see it?

If so, then we have a plausable solution.

But the real question for this scenario is,
why is multwrite_intr() reporting an error?

-- 
Mark Lord
Real-Time Remedies Inc.
mlord@pobox.com

- 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/