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 _at__at_ -295,7 +295,7 _at__at_ } /* 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; }Received on Fri Aug 06 2004 - 20:33:22 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:05 UTC