* Don't call into the ATA stack if we're not transferring data since the
interrupt could be triggered early in the boot process where the ATA channel might not yet be fully set up leading to KDLs accessing uninitialized memory. * Automatic whitespace cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35087 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -218,6 +218,13 @@ ata_adapter_inthand(void *arg)
|
||||
pci->write_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG,
|
||||
(statusBM & 0xf8) | ATA_BM_STATUS_INTERRUPT);
|
||||
|
||||
if (!channel->dmaing) {
|
||||
// we check this late so that potential spurious interrupts
|
||||
// are acknoledged above
|
||||
TRACE_INT("ata_adapter_inthand: no DMA transfer active\n");
|
||||
return B_UNHANDLED_INTERRUPT;
|
||||
}
|
||||
|
||||
// signal interrupt to ATA stack
|
||||
return sATA->interrupt_handler(channel->ataChannel, statusATA);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user