diff --git a/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp b/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp index ccb707e78e..36270b8422 100644 --- a/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp +++ b/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp @@ -709,6 +709,8 @@ cd_uninit_device(void* _cookie) delete info->io_scheduler; delete info->dma_resource; + info->io_scheduler = NULL; + info->dma_resource = NULL; } @@ -772,6 +774,9 @@ cd_read(void* cookie, off_t pos, void* buffer, size_t* _length) if (status != B_OK) return status; + if (handle->info->io_scheduler == NULL) + return B_DEV_NO_MEDIA; + status = handle->info->io_scheduler->ScheduleRequest(&request); if (status != B_OK) return status; @@ -800,6 +805,9 @@ cd_write(void* cookie, off_t pos, const void* buffer, size_t* _length) if (status != B_OK) return status; + if (handle->info->io_scheduler == NULL) + return B_DEV_NO_MEDIA; + status = handle->info->io_scheduler->ScheduleRequest(&request); if (status != B_OK) return status;