From ad13bfbbd73580fbe17bf2f77056d84d1e036cee Mon Sep 17 00:00:00 2001 From: Marcus Overhagen Date: Sat, 27 Jan 2007 22:52:09 +0000 Subject: [PATCH] Added unconditional debug output. You will most likely see it when "sync" is stalled, git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19990 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/ide/basic_protocol.c | 9 +++++++++ src/add-ons/kernel/bus_managers/ide/sync.c | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/add-ons/kernel/bus_managers/ide/basic_protocol.c b/src/add-ons/kernel/bus_managers/ide/basic_protocol.c index 2237866645..d4c2a1a572 100644 --- a/src/add-ons/kernel/bus_managers/ide/basic_protocol.c +++ b/src/add-ons/kernel/bus_managers/ide/basic_protocol.c @@ -64,6 +64,8 @@ reset_bus(ide_device_info *device, ide_qrequest *ignore) ide_controller_interface *controller = bus->controller; ide_channel_cookie channel = bus->channel_cookie; + dprintf("ide: reset_bus() device %p, bus %p\n", device, bus); + FAST_LOG0(bus->log, ev_ide_reset_bus); if (device->reconnect_timer_installed) { @@ -109,6 +111,7 @@ reset_bus(ide_device_info *device, ide_qrequest *ignore) finish_all_requests(bus->devices[0], ignore, SCSI_SCSI_BUS_RESET, true); finish_all_requests(bus->devices[1], ignore, SCSI_SCSI_BUS_RESET, true); + dprintf("ide: reset_bus() device %p, bus %p success\n", device, bus); return true; err0: @@ -119,6 +122,8 @@ err1: finish_all_requests(bus->devices[1], ignore, SCSI_SCSI_BUS_RESET, true); //xpt->call_async( bus->xpt_cookie, -1, -1, AC_BUS_RESET, NULL, 0 ); + + dprintf("ide: reset_bus() device %p, bus %p failed\n", device, bus); return false; } @@ -135,6 +140,8 @@ reset_device(ide_device_info *device, ide_qrequest *ignore) status_t res; uint8 orig_command; + dprintf("ide: reset_device() device %p\n", device); + FAST_LOG1(bus->log, ev_ide_reset_device, device->is_device1); SHOW_FLOW0(3, ""); @@ -173,10 +180,12 @@ reset_device(ide_device_info *device, ide_qrequest *ignore) finish_all_requests(device, ignore, SCSI_SCSI_BUS_RESET, true); SHOW_FLOW0(3, "done"); + dprintf("ide: reset_device() device %p success\n", device); return true; err: // do the hard way + dprintf("ide: reset_device() device %p failed, calling reset_bus\n", device); return reset_bus(device, ignore); } diff --git a/src/add-ons/kernel/bus_managers/ide/sync.c b/src/add-ons/kernel/bus_managers/ide/sync.c index 41ce439b58..d6b22115d5 100644 --- a/src/add-ons/kernel/bus_managers/ide/sync.c +++ b/src/add-ons/kernel/bus_managers/ide/sync.c @@ -263,6 +263,8 @@ ide_timeout_dpc(void *arg) qrequest = bus->active_qrequest; device = qrequest->device; + dprintf("ide: ide_timeout_dpc() bus %p, decide %p\n", bus, device); + FAST_LOG1(bus->log, ev_ide_timeout_dpc, (uint32)qrequest); // this also resets overlapped commands @@ -294,6 +296,8 @@ ide_timeout(timer *arg) TRACE(("ide_timeout(): %p\n", bus)); + dprintf("ide: ide_timeout() bus %p\n", bus); + // we need to lock bus to have a solid bus state // (side effect: we lock out the IRQ handler) IDE_LOCK(bus);