Messages in this thread | | | Date | Sat, 18 Dec 1999 11:33:22 -0500 | From | Mark Lord <> | Subject | Re: More on the IDE multiwrite problem |
| |
Alan Cox wrote: > > I've been doing some more digging. Having been over the multiwrite code > (with the io unlock fix in it) Im mystified what is going on. .. > The error case appears to have a definite pattern. It is always > > multiwrite_intr status=0x50 (or 52) { DriveReady SeekCompete } > buffer list corrupted > [maybe a repeat of the error code] > then either a crash or an I/O error log from end_request
Mmm.. are you sure about the status bits? There is no DRQ (datarequest). I wonder if we are just responding incorrectly to the final "I/O complete" interrupt or something? Because without the DRQ bit set, the drive is NOT expecting any more output data. .. > 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... -- 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/
| |