mirror of
https://github.com/SCST-project/scst.git
synced 2026-08-18 13:16:34 +00:00
dev_handlers: Fix multiple checkpatch warnings
This patch does not change any functionality.
This commit is contained in:
@@ -67,9 +67,8 @@ static int cdrom_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -77,7 +76,7 @@ static int cdrom_attach(struct scst_device *dev)
|
||||
buffer = kmalloc(buffer_size, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
PRINT_ERROR("Buffer memory allocation (size %d) failure",
|
||||
buffer_size);
|
||||
buffer_size);
|
||||
res = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
@@ -92,22 +91,20 @@ static int cdrom_attach(struct scst_device *dev)
|
||||
memset(buffer, 0, buffer_size);
|
||||
memset(sense_buffer, 0, sizeof(sense_buffer));
|
||||
|
||||
TRACE_DBG("%s", "Doing READ_CAPACITY");
|
||||
TRACE_DBG("Doing READ_CAPACITY");
|
||||
rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE,
|
||||
buffer, buffer_size, sense_buffer,
|
||||
SCST_GENERIC_CDROM_REG_TIMEOUT, 3, 0);
|
||||
|
||||
TRACE_DBG("READ_CAPACITY done: %x", rc);
|
||||
|
||||
if ((rc == 0) ||
|
||||
!scst_analyze_sense(sense_buffer,
|
||||
sizeof(sense_buffer), SCST_SENSE_KEY_VALID,
|
||||
UNIT_ATTENTION, 0, 0))
|
||||
if (rc == 0 || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer),
|
||||
SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0))
|
||||
break;
|
||||
|
||||
if (!--retries) {
|
||||
PRINT_ERROR("UA not cleared after %d retries",
|
||||
SCST_DEV_RETRIES_ON_UA);
|
||||
SCST_DEV_RETRIES_ON_UA);
|
||||
dev->block_shift = CDROM_DEF_BLOCK_SHIFT;
|
||||
res = -ENODEV;
|
||||
goto out_free_buf;
|
||||
@@ -122,7 +119,7 @@ static int cdrom_attach(struct scst_device *dev)
|
||||
else
|
||||
dev->block_shift = scst_calc_block_shift(sector_size);
|
||||
TRACE_DBG("Sector size is %i scsi_level %d(SCSI_2 %d)",
|
||||
sector_size, dev->scsi_dev->scsi_level, SCSI_2);
|
||||
sector_size, dev->scsi_dev->scsi_level, SCSI_2);
|
||||
if (dev->block_shift < 9) {
|
||||
PRINT_ERROR("READ CAPACITY reported an invalid sector size: %d",
|
||||
sector_size);
|
||||
@@ -131,17 +128,17 @@ static int cdrom_attach(struct scst_device *dev)
|
||||
}
|
||||
} else {
|
||||
dev->block_shift = CDROM_DEF_BLOCK_SHIFT;
|
||||
TRACE(TRACE_MINOR, "Read capacity failed: %x, using default "
|
||||
"sector size %d", rc, dev->block_shift);
|
||||
PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", sense_buffer,
|
||||
sizeof(sense_buffer));
|
||||
TRACE(TRACE_MINOR, "Read capacity failed: %x, using default sector size %d",
|
||||
rc, dev->block_shift);
|
||||
PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense",
|
||||
sense_buffer, sizeof(sense_buffer));
|
||||
}
|
||||
dev->block_size = 1 << dev->block_shift;
|
||||
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s", dev->virt_name);
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s",
|
||||
dev->virt_name);
|
||||
goto out_free_buf;
|
||||
}
|
||||
|
||||
@@ -156,7 +153,6 @@ out:
|
||||
static void cdrom_detach(struct scst_device *dev)
|
||||
{
|
||||
/* Nothing to do */
|
||||
return;
|
||||
}
|
||||
|
||||
static int cdrom_parse(struct scst_cmd *cmd)
|
||||
@@ -191,7 +187,6 @@ static void cdrom_set_block_shift(struct scst_cmd *cmd, int block_shift)
|
||||
dev->block_shift = new_block_shift;
|
||||
dev->block_size = 1 << dev->block_shift;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static int cdrom_done(struct scst_cmd *cmd)
|
||||
@@ -218,11 +213,9 @@ static int __init cdrom_init(void)
|
||||
if (res < 0)
|
||||
goto out;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT();
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
static void __exit cdrom_exit(void)
|
||||
@@ -230,7 +223,6 @@ static void __exit cdrom_exit(void)
|
||||
TRACE_ENTRY();
|
||||
scst_unregister_dev_driver(&cdrom_devtype);
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(cdrom_init);
|
||||
|
||||
@@ -62,9 +62,8 @@ static int changer_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -74,16 +73,16 @@ static int changer_attach(struct scst_device *dev)
|
||||
* of the other stuff
|
||||
*/
|
||||
if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) {
|
||||
TRACE_DBG("%s", "Device is offline");
|
||||
TRACE_DBG("Device is offline");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
||||
retries = SCST_DEV_RETRIES_ON_UA;
|
||||
do {
|
||||
TRACE_DBG("%s", "Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev,
|
||||
SCST_GENERIC_CHANGER_TIMEOUT, CHANGER_RETRIES, NULL);
|
||||
TRACE_DBG("Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_CHANGER_TIMEOUT,
|
||||
CHANGER_RETRIES, NULL);
|
||||
TRACE_DBG("TEST_UNIT_READY done: %x", rc);
|
||||
} while ((--retries > 0) && rc);
|
||||
|
||||
@@ -94,8 +93,8 @@ static int changer_attach(struct scst_device *dev)
|
||||
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s", dev->virt_name);
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s",
|
||||
dev->virt_name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -110,7 +109,6 @@ void changer_detach(struct scst_device *dev)
|
||||
TRACE_ENTRY();
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -167,7 +165,6 @@ static int __init changer_init(void)
|
||||
if (res < 0)
|
||||
goto out;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
@@ -178,7 +175,6 @@ static void __exit changer_exit(void)
|
||||
TRACE_ENTRY();
|
||||
scst_unregister_dev_driver(&changer_devtype);
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(changer_init);
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
static unsigned long dh_trace_flag = SCST_DEFAULT_DEV_LOG_FLAGS;
|
||||
#define trace_flag dh_trace_flag
|
||||
|
||||
|
||||
#endif /* defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) */
|
||||
|
||||
|
||||
#endif /* __SCST_DEV_HANDLER_H */
|
||||
|
||||
@@ -52,9 +52,8 @@ static int disk_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -62,7 +61,7 @@ static int disk_attach(struct scst_device *dev)
|
||||
buffer = kmalloc(buffer_size, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
PRINT_ERROR("Buffer memory allocation (size %d) failure",
|
||||
buffer_size);
|
||||
buffer_size);
|
||||
res = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
@@ -77,21 +76,19 @@ static int disk_attach(struct scst_device *dev)
|
||||
memset(buffer, 0, buffer_size);
|
||||
memset(sense_buffer, 0, sizeof(sense_buffer));
|
||||
|
||||
TRACE_DBG("%s", "Doing READ_CAPACITY");
|
||||
TRACE_DBG("Doing READ_CAPACITY");
|
||||
rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE,
|
||||
buffer, buffer_size, sense_buffer,
|
||||
SCST_GENERIC_DISK_REG_TIMEOUT, 3, 0);
|
||||
|
||||
TRACE_DBG("READ_CAPACITY done: %x", rc);
|
||||
|
||||
if ((rc == 0) ||
|
||||
!scst_analyze_sense(sense_buffer,
|
||||
sizeof(sense_buffer), SCST_SENSE_KEY_VALID,
|
||||
UNIT_ATTENTION, 0, 0))
|
||||
if (rc == 0 || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer),
|
||||
SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0))
|
||||
break;
|
||||
if (!--retries) {
|
||||
PRINT_ERROR("UA not clear after %d retries",
|
||||
SCST_DEV_RETRIES_ON_UA);
|
||||
SCST_DEV_RETRIES_ON_UA);
|
||||
res = -ENODEV;
|
||||
goto out_free_buf;
|
||||
}
|
||||
@@ -111,10 +108,10 @@ static int disk_attach(struct scst_device *dev)
|
||||
}
|
||||
} else {
|
||||
dev->block_shift = DISK_DEF_BLOCK_SHIFT;
|
||||
TRACE(TRACE_MINOR, "Read capacity failed: %x, using default "
|
||||
"sector size %d", rc, dev->block_shift);
|
||||
PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", sense_buffer,
|
||||
sizeof(sense_buffer));
|
||||
TRACE(TRACE_MINOR, "Read capacity failed: %x, using default sector size %d",
|
||||
rc, dev->block_shift);
|
||||
PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense",
|
||||
sense_buffer, sizeof(sense_buffer));
|
||||
}
|
||||
dev->block_size = 1 << dev->block_shift;
|
||||
|
||||
@@ -133,55 +130,51 @@ static int disk_attach(struct scst_device *dev)
|
||||
memset(buffer, 0, buffer_size);
|
||||
memset(sense_buffer, 0, sizeof(sense_buffer));
|
||||
|
||||
TRACE_DBG("%s", "Doing INQUIRY (Unit Serial Number VPD)");
|
||||
TRACE_DBG("Doing INQUIRY (Unit Serial Number VPD)");
|
||||
rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE,
|
||||
buffer, buffer_size, sense_buffer,
|
||||
SCST_GENERIC_DISK_REG_TIMEOUT, 3, 0);
|
||||
|
||||
TRACE_DBG("INQUIRY (Unit Serial Number VPD) done: %x", rc);
|
||||
|
||||
if ((rc == 0) ||
|
||||
!scst_analyze_sense(sense_buffer,
|
||||
sizeof(sense_buffer), SCST_SENSE_KEY_VALID,
|
||||
UNIT_ATTENTION, 0, 0))
|
||||
if (rc == 0 || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer),
|
||||
SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0))
|
||||
break;
|
||||
if (!--retries) {
|
||||
PRINT_WARNING("UA not clear after %d retries",
|
||||
SCST_DEV_RETRIES_ON_UA);
|
||||
SCST_DEV_RETRIES_ON_UA);
|
||||
goto no_serial;
|
||||
}
|
||||
}
|
||||
if (rc == 0) {
|
||||
int32_t serial_length;
|
||||
serial_length = get_unaligned_be16(&buffer[2]);
|
||||
int32_t serial_length = get_unaligned_be16(&buffer[2]);
|
||||
|
||||
/*
|
||||
* Since we only need the serial number we'll
|
||||
* store directly in dh_priv. Failure is OK.
|
||||
*/
|
||||
dev->dh_priv = kzalloc(serial_length+1, GFP_KERNEL);
|
||||
dev->dh_priv = kzalloc(serial_length + 1, GFP_KERNEL);
|
||||
if (!dev->dh_priv) {
|
||||
PRINT_ERROR("Buffer memory allocation (size %d) failure",
|
||||
serial_length+1);
|
||||
serial_length + 1);
|
||||
} else {
|
||||
memcpy(dev->dh_priv, &buffer[4], serial_length);
|
||||
PRINT_INFO("%s: Obtained serial number: %s",
|
||||
dev->virt_name, (char *)dev->dh_priv);
|
||||
}
|
||||
} else {
|
||||
PRINT_WARNING("Failed to obtain serial number for device "
|
||||
"%s", dev->virt_name);
|
||||
PRINT_WARNING("Failed to obtain serial number for device %s",
|
||||
dev->virt_name);
|
||||
}
|
||||
|
||||
no_serial:
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s", dev->virt_name);
|
||||
if (dev->dh_priv) {
|
||||
kfree(dev->dh_priv);
|
||||
dev->dh_priv = NULL;
|
||||
}
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s",
|
||||
dev->virt_name);
|
||||
kfree(dev->dh_priv);
|
||||
dev->dh_priv = NULL;
|
||||
|
||||
goto out_free_buf;
|
||||
}
|
||||
|
||||
@@ -199,7 +192,6 @@ static void disk_detach(struct scst_device *dev)
|
||||
scst_pr_set_cluster_mode(dev, false, dev->dh_priv);
|
||||
kfree(dev->dh_priv);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static int disk_parse(struct scst_cmd *cmd)
|
||||
@@ -218,8 +210,8 @@ static int disk_parse(struct scst_cmd *cmd)
|
||||
case COMPARE_AND_WRITE:
|
||||
case EXTENDED_COPY:
|
||||
case RECEIVE_COPY_RESULTS:
|
||||
TRACE_DBG("Clearing LOCAL CMD flag for cmd %p "
|
||||
"(op %s)", cmd, cmd->op_name);
|
||||
TRACE_DBG("Clearing LOCAL CMD flag for cmd %p (op %s)",
|
||||
cmd, cmd->op_name);
|
||||
cmd->op_flags &= ~SCST_LOCAL_CMD;
|
||||
break;
|
||||
}
|
||||
@@ -247,7 +239,6 @@ static void disk_set_block_shift(struct scst_cmd *cmd, int block_shift)
|
||||
dev->block_shift = new_block_shift;
|
||||
dev->block_size = 1 << dev->block_shift;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static int disk_done(struct scst_cmd *cmd)
|
||||
@@ -310,7 +301,6 @@ static void disk_restore_sg(struct disk_work *work)
|
||||
scst_set_cdb_transf_len(work->cmd, work->save_len);
|
||||
work->cmd->sg = work->save_sg;
|
||||
work->cmd->sg_cnt = work->save_sg_cnt;
|
||||
return;
|
||||
}
|
||||
|
||||
static void disk_cmd_done(void *data, char *sense, int result, int resid)
|
||||
@@ -320,7 +310,7 @@ static void disk_cmd_done(void *data, char *sense, int result, int resid)
|
||||
TRACE_ENTRY();
|
||||
|
||||
TRACE_DBG("work %p, cmd %p, left %d, result %d, sense %p, resid %d",
|
||||
work, work->cmd, work->left, result, sense, resid);
|
||||
work, work->cmd, work->left, result, sense, resid);
|
||||
|
||||
WARN_ON_ONCE(IS_ERR_VALUE((long)result));
|
||||
|
||||
@@ -337,7 +327,6 @@ out_complete:
|
||||
complete_all(&work->disk_work_cmpl);
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
/* Executes command and split CDB, if necessary */
|
||||
@@ -364,7 +353,7 @@ static enum scst_exec_res disk_exec(struct scst_cmd *cmd)
|
||||
case RELEASE:
|
||||
case RELEASE_10:
|
||||
TRACE_DBG("Skipping LOCAL cmd %p (op %s)",
|
||||
cmd, cmd->op_name);
|
||||
cmd, cmd->op_name);
|
||||
goto out_done;
|
||||
case PERSISTENT_RESERVE_IN:
|
||||
case PERSISTENT_RESERVE_OUT:
|
||||
@@ -396,10 +385,9 @@ static enum scst_exec_res disk_exec(struct scst_cmd *cmd)
|
||||
|
||||
if (unlikely((cmd->bufflen >> block_shift) > max_sectors)) {
|
||||
if ((cmd->out_bufflen >> block_shift) > max_sectors) {
|
||||
PRINT_ERROR("Too limited max_sectors %d for "
|
||||
"bidirectional cmd %p (op %s, out_bufflen %d)",
|
||||
max_sectors, cmd, scst_get_opcode_name(cmd),
|
||||
cmd->out_bufflen);
|
||||
PRINT_ERROR("Too limited max_sectors %d for bidirectional cmd %p (op %s, out_bufflen %d)",
|
||||
max_sectors, cmd, scst_get_opcode_name(cmd),
|
||||
cmd->out_bufflen);
|
||||
/* Let lower level handle it */
|
||||
res = SCST_EXEC_NOT_COMPLETED;
|
||||
goto out;
|
||||
@@ -435,11 +423,10 @@ split:
|
||||
cmd->host_status = DID_OK;
|
||||
cmd->driver_status = 0;
|
||||
|
||||
TRACE_DBG("cmd %p, save_sg %p, save_sg_cnt %d, save_lba %lld, "
|
||||
"save_len %d (sg_tablesize %d, max_sectors %d, block_shift %d, "
|
||||
"sizeof(*sg) 0x%zx)", cmd, work.save_sg, work.save_sg_cnt,
|
||||
(unsigned long long)work.save_lba, work.save_len,
|
||||
sg_tablesize, max_sectors, block_shift, sizeof(*sg));
|
||||
TRACE_DBG("cmd %p, save_sg %p, save_sg_cnt %d, save_lba %lld, save_len %d (sg_tablesize %d, max_sectors %d, block_shift %d, sizeof(*sg) 0x%zx)",
|
||||
cmd, work.save_sg, work.save_sg_cnt,
|
||||
(unsigned long long)work.save_lba, work.save_len,
|
||||
sg_tablesize, max_sectors, block_shift, sizeof(*sg));
|
||||
|
||||
/*
|
||||
* If we submit all chunks async'ly, it will be very not trivial what
|
||||
@@ -470,14 +457,11 @@ split:
|
||||
cur_len += l;
|
||||
cur_sg_cnt++;
|
||||
|
||||
TRACE_DBG("l %d, j %d, num %d, offset %d, cur_len %d, "
|
||||
"cur_sg_cnt %d, start_sg %p", l, j, num, offset,
|
||||
cur_len, cur_sg_cnt, start_sg);
|
||||
TRACE_DBG("l %d, j %d, num %d, offset %d, cur_len %d, cur_sg_cnt %d, start_sg %p",
|
||||
l, j, num, offset, cur_len, cur_sg_cnt, start_sg);
|
||||
|
||||
if (((num % sg_tablesize) == 0) ||
|
||||
(num == work.save_sg_cnt) ||
|
||||
(cur_len >= max_sectors)) {
|
||||
TRACE_DBG("%s", "Execing...");
|
||||
if (num % sg_tablesize == 0 || num == work.save_sg_cnt || cur_len >= max_sectors) {
|
||||
TRACE_DBG("Execing...");
|
||||
|
||||
scst_set_cdb_lba(work.cmd, work.save_lba + offset);
|
||||
scst_set_cdb_transf_len(work.cmd, cur_len);
|
||||
@@ -504,7 +488,7 @@ split:
|
||||
offset += cur_len;
|
||||
cur_len = 0;
|
||||
cur_sg_cnt = 0;
|
||||
start_sg = &sg[j+1];
|
||||
start_sg = &sg[j + 1];
|
||||
|
||||
if (num == work.save_sg_cnt)
|
||||
break;
|
||||
@@ -535,7 +519,6 @@ out_error:
|
||||
goto out_done;
|
||||
}
|
||||
|
||||
|
||||
static enum scst_exec_res disk_perf_exec(struct scst_cmd *cmd)
|
||||
{
|
||||
enum scst_exec_res res;
|
||||
@@ -576,8 +559,8 @@ out_complete:
|
||||
goto out;
|
||||
}
|
||||
|
||||
static ssize_t disk_sysfs_cluster_mode_show(struct kobject *kobj,
|
||||
struct kobj_attribute *attr, char *buf)
|
||||
static ssize_t disk_sysfs_cluster_mode_show(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct scst_device *dev = container_of(kobj, struct scst_device,
|
||||
dev_kobj);
|
||||
@@ -587,8 +570,7 @@ static ssize_t disk_sysfs_cluster_mode_show(struct kobject *kobj,
|
||||
SCST_SYSFS_KEY_MARK "\n" : "");
|
||||
}
|
||||
|
||||
static int disk_sysfs_process_cluster_mode_store(
|
||||
struct scst_sysfs_work_item *work)
|
||||
static int disk_sysfs_process_cluster_mode_store(struct scst_sysfs_work_item *work)
|
||||
{
|
||||
struct scst_device *dev = work->dev;
|
||||
long clm;
|
||||
@@ -635,8 +617,8 @@ out:
|
||||
return res;
|
||||
}
|
||||
|
||||
static ssize_t disk_sysfs_cluster_mode_store(struct kobject *kobj,
|
||||
struct kobj_attribute *attr, const char *buf, size_t count)
|
||||
static ssize_t disk_sysfs_cluster_mode_store(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct scst_device *dev = container_of(kobj, struct scst_device,
|
||||
dev_kobj);
|
||||
@@ -681,8 +663,7 @@ out:
|
||||
}
|
||||
|
||||
static struct kobj_attribute disk_cluster_mode_attr =
|
||||
__ATTR(cluster_mode, S_IWUSR|S_IRUGO, disk_sysfs_cluster_mode_show,
|
||||
disk_sysfs_cluster_mode_store);
|
||||
__ATTR(cluster_mode, 0644, disk_sysfs_cluster_mode_show, disk_sysfs_cluster_mode_store);
|
||||
|
||||
static const struct attribute *disk_attrs[] = {
|
||||
&disk_cluster_mode_attr.attr,
|
||||
@@ -743,12 +724,10 @@ static int __init init_scst_disk_driver(void)
|
||||
if (res < 0)
|
||||
goto out_unreg;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
|
||||
|
||||
out_unreg:
|
||||
scst_unregister_dev_driver(&disk_devtype);
|
||||
goto out;
|
||||
@@ -762,7 +741,6 @@ static void __exit exit_scst_disk_driver(void)
|
||||
scst_unregister_dev_driver(&disk_devtype);
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(init_scst_disk_driver);
|
||||
|
||||
@@ -96,12 +96,10 @@ static int __init init_scst_modisk_driver(void)
|
||||
if (res < 0)
|
||||
goto out_unreg;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
|
||||
|
||||
out_unreg:
|
||||
scst_unregister_dev_driver(&modisk_devtype);
|
||||
goto out;
|
||||
@@ -115,7 +113,6 @@ static void __exit exit_scst_modisk_driver(void)
|
||||
scst_unregister_dev_driver(&modisk_devtype);
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(init_scst_modisk_driver);
|
||||
@@ -132,9 +129,8 @@ static int modisk_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -147,7 +143,7 @@ static int modisk_attach(struct scst_device *dev)
|
||||
* of the other stuff
|
||||
*/
|
||||
if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) {
|
||||
TRACE_DBG("%s", "Device is offline");
|
||||
TRACE_DBG("Device is offline");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -155,7 +151,7 @@ static int modisk_attach(struct scst_device *dev)
|
||||
buffer = kmalloc(buffer_size, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
PRINT_ERROR("Buffer memory allocation (size %d) failure",
|
||||
buffer_size);
|
||||
buffer_size);
|
||||
res = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
@@ -173,16 +169,15 @@ static int modisk_attach(struct scst_device *dev)
|
||||
memset(buffer, 0, buffer_size);
|
||||
memset(sense_buffer, 0, sizeof(sense_buffer));
|
||||
|
||||
TRACE_DBG("%s", "Doing READ_CAPACITY");
|
||||
TRACE_DBG("Doing READ_CAPACITY");
|
||||
rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE,
|
||||
buffer, buffer_size, sense_buffer,
|
||||
SCST_GENERIC_MODISK_REG_TIMEOUT, 3, 0);
|
||||
|
||||
TRACE_DBG("READ_CAPACITY done: %x", rc);
|
||||
|
||||
if (!rc || !scst_analyze_sense(sense_buffer,
|
||||
sizeof(sense_buffer), SCST_SENSE_KEY_VALID,
|
||||
UNIT_ATTENTION, 0, 0))
|
||||
if (!rc || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer),
|
||||
SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0))
|
||||
break;
|
||||
|
||||
if (!--retries) {
|
||||
@@ -201,7 +196,7 @@ static int modisk_attach(struct scst_device *dev)
|
||||
else
|
||||
dev->block_shift = scst_calc_block_shift(sector_size);
|
||||
TRACE_DBG("Sector size is %i scsi_level %d(SCSI_2 %d)",
|
||||
sector_size, dev->scsi_dev->scsi_level, SCSI_2);
|
||||
sector_size, dev->scsi_dev->scsi_level, SCSI_2);
|
||||
if (dev->block_shift < 9) {
|
||||
PRINT_ERROR("READ CAPACITY reported an invalid sector size: %d",
|
||||
sector_size);
|
||||
@@ -210,17 +205,17 @@ static int modisk_attach(struct scst_device *dev)
|
||||
}
|
||||
} else {
|
||||
dev->block_shift = MODISK_DEF_BLOCK_SHIFT;
|
||||
TRACE(TRACE_MINOR, "Read capacity failed: %x, using default "
|
||||
"sector size %d", rc, dev->block_shift);
|
||||
PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", sense_buffer,
|
||||
sizeof(sense_buffer));
|
||||
TRACE(TRACE_MINOR, "Read capacity failed: %x, using default sector size %d",
|
||||
rc, dev->block_shift);
|
||||
PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense",
|
||||
sense_buffer, sizeof(sense_buffer));
|
||||
}
|
||||
dev->block_size = 1 << dev->block_shift;
|
||||
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s: %x", dev->virt_name, res);
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s: %x",
|
||||
dev->virt_name, res);
|
||||
goto out_free_buf;
|
||||
}
|
||||
|
||||
@@ -235,7 +230,6 @@ out:
|
||||
static void modisk_detach(struct scst_device *dev)
|
||||
{
|
||||
/* Nothing to do */
|
||||
return;
|
||||
}
|
||||
|
||||
static int modisk_parse(struct scst_cmd *cmd)
|
||||
@@ -270,7 +264,6 @@ static void modisk_set_block_shift(struct scst_cmd *cmd, int block_shift)
|
||||
dev->block_shift = new_block_shift;
|
||||
dev->block_size = 1 << dev->block_shift;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static int modisk_done(struct scst_cmd *cmd)
|
||||
|
||||
@@ -62,9 +62,8 @@ static int processor_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -74,16 +73,16 @@ static int processor_attach(struct scst_device *dev)
|
||||
* of the other stuff
|
||||
*/
|
||||
if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) {
|
||||
TRACE_DBG("%s", "Device is offline");
|
||||
TRACE_DBG("Device is offline");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
||||
retries = SCST_DEV_RETRIES_ON_UA;
|
||||
do {
|
||||
TRACE_DBG("%s", "Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev,
|
||||
SCST_GENERIC_PROCESSOR_TIMEOUT, PROCESSOR_RETRIES, NULL);
|
||||
TRACE_DBG("Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_PROCESSOR_TIMEOUT,
|
||||
PROCESSOR_RETRIES, NULL);
|
||||
TRACE_DBG("TEST_UNIT_READY done: %x", rc);
|
||||
} while ((--retries > 0) && rc);
|
||||
|
||||
@@ -94,8 +93,8 @@ static int processor_attach(struct scst_device *dev)
|
||||
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s", dev->virt_name);
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s",
|
||||
dev->virt_name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -110,7 +109,6 @@ void processor_detach(struct scst_device *dev)
|
||||
TRACE_ENTRY();
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -167,7 +165,6 @@ static int __init processor_init(void)
|
||||
if (res < 0)
|
||||
goto out;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
@@ -178,7 +175,6 @@ static void __exit processor_exit(void)
|
||||
TRACE_ENTRY();
|
||||
scst_unregister_dev_driver(&processor_devtype);
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(processor_init);
|
||||
|
||||
@@ -62,9 +62,8 @@ static int raid_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -74,16 +73,16 @@ static int raid_attach(struct scst_device *dev)
|
||||
* of the other stuff
|
||||
*/
|
||||
if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) {
|
||||
TRACE_DBG("%s", "Device is offline");
|
||||
TRACE_DBG("Device is offline");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
||||
retries = SCST_DEV_RETRIES_ON_UA;
|
||||
do {
|
||||
TRACE_DBG("%s", "Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev,
|
||||
SCST_GENERIC_RAID_TIMEOUT, RAID_RETRIES, NULL);
|
||||
TRACE_DBG("Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_RAID_TIMEOUT,
|
||||
RAID_RETRIES, NULL);
|
||||
TRACE_DBG("TEST_UNIT_READY done: %x", rc);
|
||||
} while ((--retries > 0) && rc);
|
||||
|
||||
@@ -94,8 +93,8 @@ static int raid_attach(struct scst_device *dev)
|
||||
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s", dev->virt_name);
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s",
|
||||
dev->virt_name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -110,7 +109,6 @@ void raid_detach(struct scst_device *dev)
|
||||
TRACE_ENTRY();
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -167,11 +165,9 @@ static int __init raid_init(void)
|
||||
if (res < 0)
|
||||
goto out;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
static void __exit raid_exit(void)
|
||||
@@ -179,7 +175,6 @@ static void __exit raid_exit(void)
|
||||
TRACE_ENTRY();
|
||||
scst_unregister_dev_driver(&raid_devtype);
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(raid_init);
|
||||
|
||||
@@ -101,12 +101,10 @@ static int __init init_scst_tape_driver(void)
|
||||
if (res < 0)
|
||||
goto out_unreg;
|
||||
|
||||
|
||||
out:
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
|
||||
|
||||
out_unreg:
|
||||
scst_unregister_dev_driver(&tape_devtype);
|
||||
goto out;
|
||||
@@ -120,7 +118,6 @@ static void __exit exit_scst_tape_driver(void)
|
||||
scst_unregister_dev_driver(&tape_devtype);
|
||||
|
||||
TRACE_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
module_init(init_scst_tape_driver);
|
||||
@@ -136,9 +133,8 @@ static int tape_attach(struct scst_device *dev)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if (dev->scsi_dev == NULL ||
|
||||
dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("%s", "SCSI device not define or illegal type");
|
||||
if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) {
|
||||
PRINT_ERROR("SCSI device not define or illegal type");
|
||||
res = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
@@ -149,16 +145,16 @@ static int tape_attach(struct scst_device *dev)
|
||||
buffer = kmalloc(buffer_size, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
PRINT_ERROR("Buffer memory allocation (size %d) failure",
|
||||
buffer_size);
|
||||
buffer_size);
|
||||
res = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
retries = SCST_DEV_RETRIES_ON_UA;
|
||||
do {
|
||||
TRACE_DBG("%s", "Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev,
|
||||
SCST_GENERIC_TAPE_SMALL_TIMEOUT, TAPE_RETRIES, NULL);
|
||||
TRACE_DBG("Doing TEST_UNIT_READY");
|
||||
rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_TAPE_SMALL_TIMEOUT,
|
||||
TAPE_RETRIES, NULL);
|
||||
TRACE_DBG("TEST_UNIT_READY done: %x", rc);
|
||||
} while ((--retries > 0) && rc);
|
||||
|
||||
@@ -168,7 +164,7 @@ static int tape_attach(struct scst_device *dev)
|
||||
goto obtain;
|
||||
}
|
||||
|
||||
TRACE_DBG("%s", "Doing MODE_SENSE");
|
||||
TRACE_DBG("Doing MODE_SENSE");
|
||||
rc = scsi_mode_sense(dev->scsi_dev,
|
||||
((dev->scsi_dev->scsi_level <= SCSI_2) ?
|
||||
((dev->scsi_dev->lun << 5) & 0xe0) : 0),
|
||||
@@ -194,9 +190,9 @@ static int tape_attach(struct scst_device *dev)
|
||||
mode = (buffer[2] & 0x70) >> 4;
|
||||
speed = buffer[2] & 0x0f;
|
||||
density = buffer[4];
|
||||
TRACE_DBG("Tape: lun %lld. bs %d. type 0x%02x mode 0x%02x "
|
||||
"speed 0x%02x dens 0x%02x", (u64)dev->scsi_dev->lun,
|
||||
dev->block_size, medium_type, mode, speed, density);
|
||||
TRACE_DBG("Tape: lun %lld. bs %d. type 0x%02x mode 0x%02x speed 0x%02x dens 0x%02x",
|
||||
(u64)dev->scsi_dev->lun, dev->block_size, medium_type, mode, speed,
|
||||
density);
|
||||
} else {
|
||||
PRINT_ERROR("MODE_SENSE failed: %x", rc);
|
||||
res = -ENODEV;
|
||||
@@ -207,8 +203,8 @@ static int tape_attach(struct scst_device *dev)
|
||||
obtain:
|
||||
res = scst_obtain_device_parameters(dev, NULL);
|
||||
if (res != 0) {
|
||||
PRINT_ERROR("Failed to obtain control parameters for device "
|
||||
"%s", dev->virt_name);
|
||||
PRINT_ERROR("Failed to obtain control parameters for device %s",
|
||||
dev->virt_name);
|
||||
goto out_free_buf;
|
||||
}
|
||||
|
||||
@@ -223,7 +219,6 @@ out:
|
||||
static void tape_detach(struct scst_device *dev)
|
||||
{
|
||||
/* Nothing to do */
|
||||
return;
|
||||
}
|
||||
|
||||
static int tape_parse(struct scst_cmd *cmd)
|
||||
@@ -250,7 +245,6 @@ static void tape_set_block_size(struct scst_cmd *cmd, int block_size)
|
||||
*/
|
||||
dev->block_size = block_size;
|
||||
dev->block_shift = scst_calc_block_shift(dev->block_size);
|
||||
return;
|
||||
}
|
||||
|
||||
static int tape_done(struct scst_cmd *cmd)
|
||||
@@ -261,22 +255,19 @@ static int tape_done(struct scst_cmd *cmd)
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
if ((status == SAM_STAT_GOOD) || (status == SAM_STAT_CONDITION_MET))
|
||||
if (status == SAM_STAT_GOOD || status == SAM_STAT_CONDITION_MET) {
|
||||
res = scst_tape_generic_dev_done(cmd, tape_set_block_size);
|
||||
else if ((status == SAM_STAT_CHECK_CONDITION) &&
|
||||
scst_sense_valid(cmd->sense)) {
|
||||
} else if (status == SAM_STAT_CHECK_CONDITION && scst_sense_valid(cmd->sense)) {
|
||||
TRACE_DBG("Extended sense %x", scst_sense_response_code(cmd->sense));
|
||||
|
||||
if (scst_sense_response_code(cmd->sense) != 0x70) {
|
||||
PRINT_ERROR("Sense format 0x%x is not supported",
|
||||
scst_sense_response_code(cmd->sense));
|
||||
scst_set_cmd_error(cmd,
|
||||
SCST_LOAD_SENSE(scst_sense_internal_failure));
|
||||
scst_sense_response_code(cmd->sense));
|
||||
scst_set_cmd_error(cmd, SCST_LOAD_SENSE(scst_sense_internal_failure));
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (opcode == READ_6 && !(cmd->cdb[1] & SILI_BIT) &&
|
||||
(cmd->sense[2] & 0xe0)) {
|
||||
if (opcode == READ_6 && !(cmd->cdb[1] & SILI_BIT) && (cmd->sense[2] & 0xe0)) {
|
||||
/* EOF, EOM, or ILI */
|
||||
unsigned int TransferLength, Residue = 0;
|
||||
|
||||
@@ -287,10 +278,9 @@ static int tape_done(struct scst_cmd *cmd)
|
||||
/* Compute the residual count */
|
||||
if ((cmd->sense[0] & 0x80) != 0)
|
||||
Residue = get_unaligned_be32(&cmd->sense[3]);
|
||||
TRACE_DBG("Checking the sense key "
|
||||
"sn[2]=%x cmd->cdb[0,1]=%x,%x TransLen/Resid"
|
||||
" %d/%d", (int)cmd->sense[2], cmd->cdb[0],
|
||||
cmd->cdb[1], TransferLength, Residue);
|
||||
TRACE_DBG("Checking the sense key sn[2]=%x cmd->cdb[0,1]=%x,%x TransLen/Resid %d/%d",
|
||||
(int)cmd->sense[2], cmd->cdb[0], cmd->cdb[1], TransferLength,
|
||||
Residue);
|
||||
if (TransferLength > Residue) {
|
||||
int resp_data_len = TransferLength - Residue;
|
||||
|
||||
@@ -308,8 +298,8 @@ static int tape_done(struct scst_cmd *cmd)
|
||||
}
|
||||
|
||||
out:
|
||||
TRACE_DBG("cmd->is_send_status=%x, cmd->resp_data_len=%d, "
|
||||
"res=%d", cmd->is_send_status, cmd->resp_data_len, res);
|
||||
TRACE_DBG("cmd->is_send_status=%x, cmd->resp_data_len=%d, res=%d",
|
||||
cmd->is_send_status, cmd->resp_data_len, res);
|
||||
|
||||
TRACE_EXIT_RES(res);
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user