diff --git a/src/add-ons/kernel/bus_managers/scsi/devices.c b/src/add-ons/kernel/bus_managers/scsi/devices.c index 68cd34fb2f..c980a77722 100644 --- a/src/add-ons/kernel/bus_managers/scsi/devices.c +++ b/src/add-ons/kernel/bus_managers/scsi/devices.c @@ -502,15 +502,23 @@ static uchar scsi_reset_device( scsi_device_info *device ) } -static status_t std_ops( int32 op, ... ) +static status_t +std_ops(int32 op, ...) { - switch( op ) { - case B_MODULE_INIT: - case B_MODULE_UNINIT: - return B_OK; - - default: - return B_ERROR; + switch (op) { + case B_MODULE_INIT: + { + // Link to SCSI bus. + // SCSI device driver must have SCSI bus loaded, but it calls its functions + // directly instead via official interface, so this pointer is never read. + module_info *dummy; + return get_module(SCSI_BUS_MODULE_NAME, &dummy); + } + case B_MODULE_UNINIT: + return put_module(SCSI_BUS_MODULE_NAME); + + default: + return B_ERROR; } } diff --git a/src/add-ons/kernel/bus_managers/scsi/scsi.c b/src/add-ons/kernel/bus_managers/scsi/scsi.c index 10b5519a04..3ec4a4375c 100644 --- a/src/add-ons/kernel/bus_managers/scsi/scsi.c +++ b/src/add-ons/kernel/bus_managers/scsi/scsi.c @@ -16,16 +16,10 @@ locked_pool_interface *locked_pool; device_manager_info *pnp; fast_log_info *fast_log; -// Link to SCSI bus. -// SCSI device driver must have SCSI bus loaded, but it calls its functions -// directly instead via official interface, so this pointer is never read. -static module_info *scsi_bus_dummy; - module_dependency module_dependencies[] = { { DEVICE_MANAGER_MODULE_NAME, (module_info **)&pnp }, { LOCKED_POOL_MODULE_NAME, (module_info **)&locked_pool }, { FAST_LOG_MODULE_NAME, (module_info **)&fast_log }, - { SCSI_BUS_MODULE_NAME, &scsi_bus_dummy }, {} };