scsi_disk: Deletes info->dma_resource in uninit_driver()
... because it is owned by the driver, not the device. * Fixed 64bit build with TRACE_SCSI_DISK
This commit is contained in:
@@ -107,9 +107,10 @@ get_geometry(das_handle* handle, device_geometry* geometry)
|
|||||||
geometry->read_only = false;
|
geometry->read_only = false;
|
||||||
geometry->write_once = false;
|
geometry->write_once = false;
|
||||||
|
|
||||||
TRACE("scsi_disk: get_geometry(): %ld, %ld, %ld, %ld, %d, %d, %d, %d\n",
|
TRACE("scsi_disk: get_geometry(): %" B_PRId32 ", %" B_PRId32 ", %" B_PRId32
|
||||||
geometry->bytes_per_sector, geometry->sectors_per_track,
|
", %" B_PRId32 ", %d, %d, %d, %d\n", geometry->bytes_per_sector,
|
||||||
geometry->cylinder_count, geometry->head_count, geometry->device_type,
|
geometry->sectors_per_track, geometry->cylinder_count,
|
||||||
|
geometry->head_count, geometry->device_type,
|
||||||
geometry->removable, geometry->read_only, geometry->write_once);
|
geometry->removable, geometry->read_only, geometry->write_once);
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
@@ -209,7 +210,6 @@ das_uninit_device(void* _cookie)
|
|||||||
das_driver_info* info = (das_driver_info*)_cookie;
|
das_driver_info* info = (das_driver_info*)_cookie;
|
||||||
|
|
||||||
delete info->io_scheduler;
|
delete info->io_scheduler;
|
||||||
delete info->dma_resource;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -324,7 +324,7 @@ das_ioctl(void* cookie, uint32 op, void* buffer, size_t length)
|
|||||||
das_handle* handle = (das_handle*)cookie;
|
das_handle* handle = (das_handle*)cookie;
|
||||||
das_driver_info* info = handle->info;
|
das_driver_info* info = handle->info;
|
||||||
|
|
||||||
TRACE("ioctl(op = %ld)\n", op);
|
TRACE("ioctl(op = %" B_PRIu32 ")\n", op);
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case B_GET_DEVICE_SIZE:
|
case B_GET_DEVICE_SIZE:
|
||||||
@@ -398,8 +398,8 @@ das_ioctl(void* cookie, uint32 op, void* buffer, size_t length)
|
|||||||
static void
|
static void
|
||||||
das_set_capacity(das_driver_info* info, uint64 capacity, uint32 blockSize)
|
das_set_capacity(das_driver_info* info, uint64 capacity, uint32 blockSize)
|
||||||
{
|
{
|
||||||
TRACE("das_set_capacity(device = %p, capacity = %Ld, blockSize = %ld)\n",
|
TRACE("das_set_capacity(device = %p, capacity = %" B_PRIu64
|
||||||
info, capacity, blockSize);
|
", blockSize = %" B_PRIu32 ")\n", info, capacity, blockSize);
|
||||||
|
|
||||||
// get log2, if possible
|
// get log2, if possible
|
||||||
uint32 blockShift = log2(blockSize);
|
uint32 blockShift = log2(blockSize);
|
||||||
@@ -555,6 +555,7 @@ das_init_driver(device_node *node, void **cookie)
|
|||||||
&callbacks, info->scsi_device, info->scsi, info->node,
|
&callbacks, info->scsi_device, info->scsi, info->node,
|
||||||
info->removable, 10, &info->scsi_periph_device);
|
info->removable, 10, &info->scsi_periph_device);
|
||||||
if (status != B_OK) {
|
if (status != B_OK) {
|
||||||
|
delete info->dma_resource;
|
||||||
free(info);
|
free(info);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -570,6 +571,7 @@ das_uninit_driver(void *_cookie)
|
|||||||
das_driver_info* info = (das_driver_info*)_cookie;
|
das_driver_info* info = (das_driver_info*)_cookie;
|
||||||
|
|
||||||
sSCSIPeripheral->unregister_device(info->scsi_periph_device);
|
sSCSIPeripheral->unregister_device(info->scsi_periph_device);
|
||||||
|
delete info->dma_resource;
|
||||||
free(info);
|
free(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user