|
|
| version 1.8, 2003/11/30 20:14:18 | version 1.9, 2003/12/29 03:42:43 |
|---|---|
| Line 673 ad_interrupt(struct ad_request *request) | Line 673 ad_interrupt(struct ad_request *request) |
| (request->flags & (ADR_F_READ | ADR_F_ERROR)) == ADR_F_READ) { | (request->flags & (ADR_F_READ | ADR_F_ERROR)) == ADR_F_READ) { |
| /* ready to receive data? */ | /* ready to receive data? */ |
| if ((adp->device->channel->status & (ATA_S_READY|ATA_S_DSC|ATA_S_DRQ)) | if ((adp->device->channel->status & ATA_S_READY) == 0) { |
| != (ATA_S_READY|ATA_S_DSC|ATA_S_DRQ)) | ata_prtdev(adp->device, "read interrupt arrived early %08x\n", |
| ata_prtdev(adp->device, "read interrupt arrived early"); | (int)adp->device->channel->status); |
| } | |
| if (ata_wait(adp->device, (ATA_S_READY | ATA_S_DSC | ATA_S_DRQ)) != 0) { | if (ata_wait(adp->device, (ATA_S_READY | ATA_S_DSC | ATA_S_DRQ)) != 0) { |
| ata_prtdev(adp->device, "read error detected (too) late"); | ata_prtdev(adp->device, "read error detected (too) late"); |