Panic on boot with today's CURRENT, ata related
Søren Schmidt
sos at DeepCore.dk
Fri Aug 6 15:33:22 PDT 2004
Nate Lawson wrote:
> I took a quick look at this ATA panic. The exact same one occurs for
> Ceri. A quick dissassemble shows that the testb is the check for the
> DMA flag at the very end of ata_generic_transaction(). The bug appears
> to be that this may be a PIO request (since the DMA check is outside the
> switch() statement). The fix is to make sure it's a DMA request before
> dereferencing an element of the DMA struct. Try the attached patch.
No, the fix is to make sure there is a valid ch->dma pointer, the below
is the correct fix.
--- ata-lowlevel.c 5 Aug 2004 21:13:41 -0000 1.41
+++ ata-lowlevel.c 6 Aug 2004 22:31:16 -0000
@@ -295,7 +295,7 @@
}
/* request finish here */
- if (ch->dma->flags & ATA_DMA_LOADED)
+ if (ch->dma && ch->dma->flags & ATA_DMA_LOADED)
ch->dma->unload(ch);
return ATA_OP_FINISHED;
}
More information about the freebsd-current
mailing list