Fixed some IRQ sharing bugs. There may be more that are still undetected.
Unfortunately, IDE in compatiblitiy (non-native) mode doesn't use IRQ sharing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12676 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -119,7 +119,7 @@ ide_irq_handler(ide_bus_info *bus, uint8 status)
|
|||||||
IDE_UNLOCK(bus);
|
IDE_UNLOCK(bus);
|
||||||
|
|
||||||
TRACE(("IRQ though there is no active device\n"));
|
TRACE(("IRQ though there is no active device\n"));
|
||||||
return B_DO_NOT_RESCHEDULE;
|
return B_UNHANDLED_INTERRUPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((status & ide_status_bsy) != 0) {
|
if ((status & ide_status_bsy) != 0) {
|
||||||
@@ -128,7 +128,7 @@ ide_irq_handler(ide_bus_info *bus, uint8 status)
|
|||||||
IDE_UNLOCK(bus);
|
IDE_UNLOCK(bus);
|
||||||
|
|
||||||
TRACE(("IRQ though device is busy\n"));
|
TRACE(("IRQ though device is busy\n"));
|
||||||
return B_DO_NOT_RESCHEDULE;
|
return B_UNHANDLED_INTERRUPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE(("state: %d\n", bus->state));
|
TRACE(("state: %d\n", bus->state));
|
||||||
@@ -176,14 +176,14 @@ ide_irq_handler(ide_bus_info *bus, uint8 status)
|
|||||||
TRACE(("spurious IRQ - there is a command being executed\n"));
|
TRACE(("spurious IRQ - there is a command being executed\n"));
|
||||||
|
|
||||||
IDE_UNLOCK(bus);
|
IDE_UNLOCK(bus);
|
||||||
return B_DO_NOT_RESCHEDULE;
|
return B_UNHANDLED_INTERRUPT;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
dprintf("BUG: unknown state (%d)\n", bus->state);
|
dprintf("BUG: unknown state (%d)\n", bus->state);
|
||||||
|
|
||||||
IDE_UNLOCK(bus);
|
IDE_UNLOCK(bus);
|
||||||
|
|
||||||
return B_DO_NOT_RESCHEDULE;
|
return B_UNHANDLED_INTERRUPT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user