scsi_periph: use synchronous command.

* The call waited anyway, so there is no reason to make it async.
This commit is contained in:
Axel Dörfler
2013-11-07 19:06:24 +01:00
parent 547cd462f8
commit e6bde50a07
@@ -122,9 +122,6 @@ status_t
periph_trim_device(scsi_periph_device_info *device, scsi_ccb *request, periph_trim_device(scsi_periph_device_info *device, scsi_ccb *request,
scsi_block_range* ranges, uint32 rangeCount) scsi_block_range* ranges, uint32 rangeCount)
{ {
err_res res;
int retries = 0;
size_t unmapBlockSize = (rangeCount - 1) size_t unmapBlockSize = (rangeCount - 1)
* sizeof(scsi_unmap_block_descriptor) * sizeof(scsi_unmap_block_descriptor)
+ sizeof(scsi_unmap_parameter_list); + sizeof(scsi_unmap_parameter_list);
@@ -155,7 +152,6 @@ periph_trim_device(scsi_periph_device_info *device, scsi_ccb *request,
ranges[i].size / device->block_size); ranges[i].size / device->block_size);
} }
do {
request->flags = SCSI_DIR_OUT; request->flags = SCSI_DIR_OUT;
request->sort = ranges[0].offset / device->block_size; request->sort = ranges[0].offset / device->block_size;
request->timeout = device->std_timeout; request->timeout = device->std_timeout;
@@ -171,19 +167,12 @@ periph_trim_device(scsi_periph_device_info *device, scsi_ccb *request,
request->cdb_length = sizeof(*cmd); request->cdb_length = sizeof(*cmd);
device->scsi->async_io(request); status_t status = periph_safe_exec(device, request);
acquire_sem(request->completion_sem);
// ask generic peripheral layer what to do now
res = periph_check_error(device, request);
} while ((res.action == err_act_retry && retries++ < 3)
|| (res.action == err_act_many_retries && retries++ < 30));
// peripheral layer only creates "read" error // peripheral layer only creates "read" error
if (res.error_code == B_DEV_READ_ERROR) if (status == B_DEV_READ_ERROR)
return B_DEV_WRITE_ERROR; return B_DEV_WRITE_ERROR;
return res.error_code; return status;
} }