From d688a5ad65b76856d53f3059b9e06868049ab122 Mon Sep 17 00:00:00 2001 From: Marcus Overhagen Date: Wed, 9 Jan 2008 19:45:44 +0000 Subject: [PATCH] set bus state to ata_state_busy during device scanning git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23327 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/ata/ata.c | 6 ++++-- src/add-ons/kernel/bus_managers/ata/ide_sim.c | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/bus_managers/ata/ata.c b/src/add-ons/kernel/bus_managers/ata/ata.c index 64f7ae8da0..6f2b3862e8 100644 --- a/src/add-ons/kernel/bus_managers/ata/ata.c +++ b/src/add-ons/kernel/bus_managers/ata/ata.c @@ -1023,16 +1023,18 @@ ata_read_infoblock(ide_device_info *device, bool isAtapi) goto error; } + // XXX fix me IDE_LOCK(bus); - bus->state = ata_state_idle; + bus->state = ata_state_busy; IDE_UNLOCK(bus); TRACE("ata_read_infoblock: success\n"); return B_OK; error: + // XXX fix me IDE_LOCK(bus); - bus->state = ata_state_idle; + bus->state = ata_state_busy; IDE_UNLOCK(bus); return B_ERROR; } diff --git a/src/add-ons/kernel/bus_managers/ata/ide_sim.c b/src/add-ons/kernel/bus_managers/ata/ide_sim.c index 4b383b4777..c7a124fb53 100644 --- a/src/add-ons/kernel/bus_managers/ata/ide_sim.c +++ b/src/add-ons/kernel/bus_managers/ata/ide_sim.c @@ -191,6 +191,14 @@ scan_bus(ide_bus_info *bus) if (bus->disconnected) return; + + // XXX fix me + IDE_LOCK(bus); + ASSERT(bus->state == ata_state_idle); + bus->state = ata_state_busy; + IDE_UNLOCK(bus); + + for (i = 0; i < bus->max_devices; ++i) { if (bus->devices[i]) destroy_device(bus->devices[i]); @@ -220,6 +228,13 @@ scan_bus(ide_bus_info *bus) } } + + // XXX fix me + IDE_LOCK(bus); + ASSERT(bus->state == ata_state_busy); + bus->state = ata_state_idle; + IDE_UNLOCK(bus); + TRACE("ATA: scan_bus: bus %p finished\n", bus); }