|
From: Royce M. I. <ro...@ev...> - 2002-09-04 20:48:12
|
Eric,
I put in the following code where you suggested. The OS is locking up
before it gets to the page fault. I don't have the screen capture, but
will get it to you as soon as I get a chance.
> if (DeviceStatus & IDE_SR_BUSY)
> {
> /* Wait for BUSY to drop */
> for (Retries = 0; Retries < IDE_MAX_BUSY_RETRIES; Retries)
> {
> DeviceStatus = IDEReadStatus(CommandPortBase);
> if (!(DeviceStatus & IDE_SR_BUSY))
> {
> break;
> }
> ScsiPortStallExecution(10);
> }
> if (Retries >= IDE_MAX_BUSY_RETRIES)
> {
> DPRINT1("Drive is BUSY for too long\n");
> /* FIXME: handle timeout */
> }
> }
|