From 79ebd6829a7a95a0cacc0fe4c5be3e2e7bd3a2ad Mon Sep 17 00:00:00 2001 From: Bryant Ly Date: Tue, 26 Apr 2016 10:20:57 -0500 Subject: [PATCH] Ibmvscsis: checkpatch.pl cleanup This patch contains cleanup ran from checkpatch.pl. for SCSI/LIBSRP changes --- drivers/scsi/ibmvscsi/ibmvscsis.c | 89 +++++++------------- drivers/scsi/libsrp.c | 112 ++++++++----------------- drivers/scsi/scsi_lib.c | 4 +- drivers/scsi/scsi_priv.h | 4 +- drivers/scsi/scsi_tgt_if.c | 37 ++++---- drivers/scsi/scsi_tgt_lib.c | 55 ++++++------ drivers/scsi/scsi_tgt_priv.h | 19 ++--- drivers/scsi/scsi_transport_srp.c | 3 + drivers/target/target_core_spc.c | 3 + drivers/target/target_core_transport.c | 5 ++ include/scsi/libsrp.h | 12 +-- include/scsi/scsi_cmnd.h | 40 +++++---- include/scsi/scsi_host.h | 2 +- include/scsi/scsi_tgt.h | 3 +- include/scsi/scsi_tgt_if.h | 4 +- 15 files changed, 166 insertions(+), 226 deletions(-) diff --git a/drivers/scsi/ibmvscsi/ibmvscsis.c b/drivers/scsi/ibmvscsi/ibmvscsis.c index ac4cd6b806954d..341fad6817492b 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsis.c +++ b/drivers/scsi/ibmvscsi/ibmvscsis.c @@ -72,14 +72,6 @@ #define GETBUS(x) ((int)((((u64)(x)) >> 53) & 0x0007)) #define GETLUN(x) ((int)((((u64)(x)) >> 48) & 0x001f)) -#define BUILD_BUG_ON_NOT_POWER_OF_2(n) \ - BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0)) - -/* - * These are fixed for the system and come from the Open Firmware device tree. - * We just store them here to save getting them every time. - */ - static unsigned max_vdma_size = MAX_H_COPY_RDMA; static const char ibmvscsis_driver_name[] = "ibmvscsis"; @@ -87,6 +79,7 @@ static char system_id[64] = ""; static char partition_name[97] = "UNKNOWN"; static unsigned int partition_number = -1; +/* Adapter list and lock to control it */ static DEFINE_SPINLOCK(ibmvscsis_dev_lock); static LIST_HEAD(ibmvscsis_dev_list); @@ -135,13 +128,11 @@ struct ibmvscsis_adapter { struct list_head siblings; struct crq_queue crq_queue; -// struct tasklet_struct work_task; struct work_struct crq_work; u32 liobn; u32 riobn; - //TODO: FIX LIBSRP TO WORK WITH TCM struct srp_target target; struct list_head list; @@ -202,15 +193,6 @@ static inline union viosrp_iu *vio_iu(struct iu_entry *iue) return (union viosrp_iu *)(iue->sbuf->buf); } -static u64 make_lun(unsigned int bus, unsigned int target, unsigned int lun) -{ - u16 result = (0x8000 | - ((target & 0x003f) << 8) | - ((bus & 0x0007) << 5) | - (lun & 0x001f)); - return ((u64) result) << 48; -} - static int ibmvscsis_check_true(struct se_portal_group *se_tpg) { return 1; @@ -310,9 +292,9 @@ static struct configfs_attribute *ibmvscsis_wwn_attrs[] = { NULL, }; -static ssize_t ibmvscsis_tpg_enable_show(struct config_item *item, char *page) +static ssize_t ibmvscsis_tpg_enable_show(struct config_item *item, + char *page) { - struct se_portal_group *se_tpg = to_tpg(item); struct ibmvscsis_tport *tport = container_of(se_tpg, struct ibmvscsis_tport, se_tpg); @@ -337,7 +319,8 @@ static ssize_t ibmvscsis_tpg_enable_store(struct config_item *item, } if ((tmp != 0) && (tmp != 1)) { - pr_err("Illegal value for srpt_tpg_store_enable: %lu\n", tmp); + pr_err("Illegal value for srpt_tpg_store_enable: %lu\n", + tmp); return -EINVAL; } if (tmp == 1) @@ -390,7 +373,8 @@ static struct se_portal_group *ibmvscsis_make_nexus(struct ibmvscsis_tport *tpor pr_debug("ibmvscsis: make_nexus: se_sess:%p, tport(%p)\n", tport->se_sess, tport); pr_debug("ibmvsciss: initiator name:%s, se_tpg:%p\n", - tport->se_sess->se_node_acl->initiatorname, tport->se_sess->se_tpg); + tport->se_sess->se_node_acl->initiatorname, + tport->se_sess->se_tpg); /* * Since we are running in 'demo mode' this call will generate a * struct se_node_acl for the ibmvscsis struct se_portal_group with @@ -409,8 +393,9 @@ static struct se_portal_group *ibmvscsis_make_nexus(struct ibmvscsis_tport *tpor /* * Now register the TCM ibmvscsis virtual I_T Nexus as active. */ - transport_register_session(&tport->se_tpg, tport->se_sess->se_node_acl, - tport->se_sess, tport); + transport_register_session(&tport->se_tpg, + tport->se_sess->se_node_acl, + tport->se_sess, tport); return &tport->se_tpg; @@ -448,7 +433,6 @@ static void ibmvscsis_drop_tpg(struct se_portal_group *se_tpg) struct ibmvscsis_tport, se_tpg); tport->releasing = true; - //TODO: Add a release mechanism to remove vio /* * Release the virtual I_T Nexus for this ibmvscsis TPG */ @@ -785,7 +769,8 @@ static int process_mad_iu(struct iu_entry *iue) break; default: pr_err("ibmvscsis: Unknown type %u\n", iu->srp.rsp.opcode); - iu->mad.empty_iu.common.status = VIOSRP_MAD_NOT_SUPPORTED; + iu->mad.empty_iu.common.status = + cpu_to_be16(VIOSRP_MAD_NOT_SUPPORTED); send_iu(iue, sizeof(iu->mad), VIOSRP_MAD_FORMAT); break; } @@ -1000,7 +985,7 @@ static int tcm_queuecommand(struct ibmvscsis_adapter *adapter, unpacked_lun = ibmvscsis_unpack_lun((uint8_t *)&scmd->lun, sizeof(scmd->lun)); - pr_err("ibmvscsis: tcm_queuecommand- se_cmd(%p), se_sess(%p)," + pr_debug("ibmvscsis: tcm_queuecommand- se_cmd(%p), se_sess(%p)," " cdb: %x, sense: %x, unpacked_lun: %llx," " data_length: %llx, task_attr: %x, data_dir: %x" " flags: %x, tag:%llx, packed_lun:%llx\n", @@ -1024,7 +1009,6 @@ static int tcm_queuecommand(struct ibmvscsis_adapter *adapter, send_sense: transport_send_check_condition_and_sense(&vsc->se_cmd, ret, 0); return -1; - } struct inquiry_data { @@ -1046,7 +1030,6 @@ struct inquiry_data { char unique[158]; }; -//TODO: Needs to be rewritten to support TCM static int ibmvscsis_inquiry(struct ibmvscsis_adapter *adapter, struct srp_cmd *cmd, char *data) { @@ -1126,7 +1109,7 @@ static int ibmvscsis_inquiry(struct ibmvscsis_adapter *adapter, return len; } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_mode_sense(struct ibmvscsis_adapter *adapter, struct srp_cmd *cmd, char *mode) { @@ -1142,7 +1125,6 @@ static int ibmvscsis_mode_sense(struct ibmvscsis_adapter *adapter, hlist_for_each_entry(lun, &se_tpg->tpg_lun_hlist, link) { if (lun->unpacked_lun == unpacked_lun) { - // TODO get_blocks seems to be private... blocks = lun->lun_se_dev->transport->get_blocks( lun->lun_se_dev); break; @@ -1191,14 +1173,10 @@ static int ibmvscsis_mode_sense(struct ibmvscsis_adapter *adapter, return bytes; } -/* TODO: Needs to be rewritten to support TCM, have a call back via - * target_core_fabric_ops using existing make_luns encoding format - * to use common code spc_emulate_report_luns(). - */ + static int ibmvscsis_report_luns(struct ibmvscsis_adapter *adapter, struct srp_cmd *cmd, u64 *data) { -// u64 lun; struct se_portal_group *se_tpg = &adapter->tport.se_tpg; int idx; int alen, oalen, nr_luns, rbuflen = 4096; @@ -1220,9 +1198,7 @@ static int ibmvscsis_report_luns(struct ibmvscsis_adapter *adapter, nr_luns = 1; spin_lock(&se_tpg->session_lock); - // TODO Is lun_index the right thing? hlist_for_each_entry(se_lun, &se_tpg->tpg_lun_hlist, link) { -// lun = make_lun(0, se_lun->lun_index & 0x003f, 0); data[idx++] = cpu_to_be64(se_lun->unpacked_lun); alen -= 8; if (!alen) @@ -1238,7 +1214,7 @@ static int ibmvscsis_report_luns(struct ibmvscsis_adapter *adapter, put_unaligned_be32(nr_luns * 8, data); return min(oalen, nr_luns * 8 + 8); } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_rdma(struct scsi_cmnd *sc, struct scatterlist *sg, int nsg, struct srp_direct_buf *md, int nmd, enum dma_data_direction dir, unsigned int rest) @@ -1301,7 +1277,7 @@ static int ibmvscsis_rdma(struct scsi_cmnd *sc, struct scatterlist *sg, int nsg, } return 0; } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_cmnd_done(struct scsi_cmnd *sc) { unsigned long flags; @@ -1324,11 +1300,10 @@ static int ibmvscsis_cmnd_done(struct scsi_cmnd *sc) } else send_rsp(iue, sc, NO_SENSE, 0x00); - /* done(sc); */ srp_iu_put(iue); return 0; } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_write_pending(struct se_cmd *se_cmd) { struct ibmvscsis_cmnd *cmd = container_of(se_cmd, @@ -1354,7 +1329,7 @@ static int ibmvscsis_write_pending(struct se_cmd *se_cmd) target_execute_cmd(se_cmd); return 0; } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_queue_data_in(struct se_cmd *se_cmd) { struct ibmvscsis_cmnd *cmd = container_of(se_cmd, @@ -1381,7 +1356,7 @@ static int ibmvscsis_queue_data_in(struct se_cmd *se_cmd) pr_debug("ibmvscsis: queue_data_in"); return 0; } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_queue_status(struct se_cmd *se_cmd) { struct ibmvscsis_cmnd *cmd = container_of(se_cmd, @@ -1389,7 +1364,7 @@ static int ibmvscsis_queue_status(struct se_cmd *se_cmd) struct scsi_cmnd *sc = &cmd->sc; /* * Copy any generated SENSE data into sc->sense_buffer and - * set the appropiate sc->result to be translated by + * set the appropriate sc->result to be translated by * ibmvscsis_cmnd_done() */ pr_debug("ibmvscsis: ibmvscsis_queue_status\n"); @@ -1408,7 +1383,7 @@ static int ibmvscsis_queue_status(struct se_cmd *se_cmd) ibmvscsis_cmnd_done(sc); return 0; } -//TODO: Needs to be rewritten to support TCM + static int ibmvscsis_queuecommand(struct ibmvscsis_adapter *adapter, struct iu_entry *iue) { @@ -1476,7 +1451,7 @@ static int ibmvscsis_queuecommand(struct ibmvscsis_adapter *adapter, return ret; } -//TODO: Needs to be rewritten to support TCM + static void handle_cmd_queue(struct ibmvscsis_adapter *adapter) { struct srp_target *target = &adapter->target; @@ -1510,7 +1485,6 @@ static irqreturn_t ibmvscsis_interrupt(int dummy, void *data) pr_debug("ibmvscsis: there is an interrupt\n"); vio_disable_interrupts(adapter->dma_dev); -// tasklet_schedule(&adapter->work_task); schedule_work(&adapter->crq_work); return IRQ_HANDLED; @@ -1549,7 +1523,6 @@ static void crq_queue_destroy(struct ibmvscsis_adapter *adapter) free_irq(vdev->irq, (void *)adapter); flush_work(&adapter->crq_work); -// tasklet_kill(&adapter->work_task); h_free_crq(vdev->unit_address); dma_unmap_single(&adapter->dma_dev->dev, queue->msg_token, queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL); @@ -1606,12 +1579,12 @@ static int process_srp_iu(struct iu_entry *iue) { union viosrp_iu *iu = vio_iu(iue); struct srp_target *target = iue->target; -// struct ibmvscsis_adapter *adapter = target->ldata; + struct ibmvscsis_adapter *adapter = target->ldata; u8 opcode = iu->srp.rsp.opcode; unsigned long flags; int err = 1; -/* spin_lock_irqsave(&target->lock, flags); + spin_lock_irqsave(&target->lock, flags); if (adapter->tport.releasing) { spin_unlock_irqrestore(&target->lock, flags); pr_err("ibmvscsis: process_srp_iu, no tpg, releasing:%x\n", @@ -1620,7 +1593,7 @@ static int process_srp_iu(struct iu_entry *iue) goto done; } spin_unlock_irqrestore(&target->lock, flags); -*/ + switch (opcode) { case SRP_LOGIN_REQ: pr_debug("ibmvscsis: srploginreq"); @@ -1652,7 +1625,7 @@ static int process_srp_iu(struct iu_entry *iue) default: pr_err("ibmvscsis: Unknown type %u\n", opcode); } -//done: +done: return err; } @@ -1712,8 +1685,8 @@ static void process_crq(struct viosrp_crq *crq, switch (crq->format) { case VIOSRP_SRP_FORMAT: case VIOSRP_MAD_FORMAT: - pr_debug("ibmvscsis: case viosrp mad crq: 0x%x, 0x%x, \ - 0x%x, 0x%x, 0x%x, 0x%x, 0x%llx\n", + pr_debug("ibmvscsis: case viosrp mad crq: 0x%x, 0x%x," + " 0x%x, 0x%x, 0x%x, 0x%x, 0x%llx\n", crq->valid, crq->format, crq->reserved, crq->status, be16_to_cpu(crq->timeout), be16_to_cpu(crq->IU_length), @@ -1738,11 +1711,9 @@ static void process_crq(struct viosrp_crq *crq, } } -//static void handle_crq(unsigned long data) static void handle_crq(struct work_struct *work) { struct ibmvscsis_adapter *adapter = -// (struct ibmvscsis_adapter *) data; container_of(work, struct ibmvscsis_adapter, crq_work); struct viosrp_crq *crq; int done = 0; @@ -1808,7 +1779,6 @@ static int crq_queue_create(struct crq_queue *queue, queue->cur = 0; spin_lock_init(&queue->lock); -// tasklet_init(&adapter->work_task, handle_crq, (unsigned long)adapter); INIT_WORK(&adapter->crq_work, handle_crq); err = request_irq(vdev->irq, &ibmvscsis_interrupt, @@ -1827,7 +1797,6 @@ static int crq_queue_create(struct crq_queue *queue, return retrc; req_irq_failed: -// tasklet_kill(&adapter->work_task); h_free_crq(vdev->unit_address); reg_crq_failed: dma_unmap_single(&vdev->dev, queue->msg_token, diff --git a/drivers/scsi/libsrp.c b/drivers/scsi/libsrp.c index d0c9fbc13e6aba..0cd02b45cd3e23 100644 --- a/drivers/scsi/libsrp.c +++ b/drivers/scsi/libsrp.c @@ -2,6 +2,7 @@ * SCSI RDMA Protocol lib functions * * Copyright (C) 2006 FUJITA Tomonori + * Copyright (C) 2016 Bryant G. Ly IBM Corp. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -32,14 +33,6 @@ #include #include -/* tmp - will replace with SCSI logging stuff */ -#define eprintk(fmt, args...) \ -do { \ - printk("%s(%d) " fmt, __func__, __LINE__, ##args); \ -} while (0) -/* #define dprintk eprintk */ -#define dprintk(fmt, args...) - static int srp_iu_pool_alloc(struct srp_queue *q, size_t max, struct srp_buf **ring) { @@ -98,8 +91,10 @@ static struct srp_buf **srp_ring_alloc(struct device *dev, out: for (i = 0; i < max && ring[i]; i++) { - if (ring[i]->buf) - dma_free_coherent(dev, size, ring[i]->buf, ring[i]->dma); + if (ring[i]->buf) { + dma_free_coherent(dev, size, ring[i]->buf, + ring[i]->dma); + } kfree(ring[i]); } kfree(ring); @@ -139,7 +134,7 @@ int srp_target_alloc(struct srp_target *target, struct device *dev, if (err) goto free_ring; - dev_set_drvdata(target->dev,target); + dev_set_drvdata(target->dev, target); return 0; free_ring: @@ -163,9 +158,10 @@ struct iu_entry *srp_iu_get(struct srp_target *target) pr_info("libsrp: srp_iu_get\n"); if (kfifo_out_locked(&target->iu_queue.queue, (void *) &iue, - sizeof(void *), &target->iu_queue.lock) != sizeof(void *)) { - WARN_ONCE(1, "unexpected fifo state"); - return NULL; + sizeof(void *), + &target->iu_queue.lock) != sizeof(void *)) { + WARN_ONCE(1, "unexpected fifo state"); + return NULL; } if (!iue) return iue; @@ -196,13 +192,15 @@ static int srp_direct_data(struct scsi_cmnd *sc, struct srp_direct_buf *md, iue = (struct iu_entry *) sc->SCp.ptr; sg = scsi_sglist(sc); - dprintk("%p %u %u %d\n", iue, scsi_bufflen(sc), - md->len, scsi_sg_count(sc)); + pr_debug("libsrp: iue: %p scsi_buff_len: %u srp_buff_len: %u" + " scsi_sg_count: %d\n", + iue, scsi_bufflen(sc), md->len, scsi_sg_count(sc)); nsg = dma_map_sg(iue->target->dev, sg, scsi_sg_count(sc), DMA_BIDIRECTIONAL); if (!nsg) { - printk("fail to map %p %d\n", iue, scsi_sg_count(sc)); + pr_err("libsrp: fail to map %p %d\n", + iue, scsi_sg_count(sc)); return 0; } len = min(scsi_bufflen(sc), md->len); @@ -233,7 +231,8 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, iue = (struct iu_entry *) sc->SCp.ptr; sg = scsi_sglist(sc); - dprintk("%p %u %u %d %d\n", + pr_debug("libsrp: iue: %p scsi_buff_len: %u srp_ind_len: %u" + " in_desc_count: %d out_desc_count: %d\n", iue, scsi_bufflen(sc), id->len, cmd->data_in_desc_cnt, cmd->data_out_desc_cnt); } @@ -250,7 +249,8 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, md = dma_alloc_coherent(iue->target->dev, id->table_desc.len, &token, GFP_KERNEL); if (!md) { - eprintk("Can't get dma memory %u\n", id->table_desc.len); + pr_err("libsrp: Can't get dma memory %u\n", + id->table_desc.len); return -ENOMEM; } @@ -260,11 +260,12 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, err = rdma_io(sc, &dummy, 1, &id->table_desc, 1, DMA_TO_DEVICE, id->table_desc.len); if (err) { - eprintk("Error copying indirect table %d\n", err); + pr_err("libsrp: Error copying indirect table %d\n", + err); goto free_mem; } } else { - eprintk("This command uses external indirect buffer\n"); + pr_err("libsrp: This command uses external indirect buffer\n"); return -EINVAL; } @@ -273,7 +274,8 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, nsg = dma_map_sg(iue->target->dev, sg, scsi_sg_count(sc), DMA_BIDIRECTIONAL); if (!nsg) { - eprintk("fail to map %p %d\n", iue, scsi_sg_count(sc)); + pr_err("libsrp: fail to map %p %d\n", + iue, scsi_sg_count(sc)); err = -EIO; goto free_mem; } @@ -287,9 +289,10 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, dma_unmap_sg(iue->target->dev, sg, nsg, DMA_BIDIRECTIONAL); free_mem: - if (token && dma_map) - dma_free_coherent(iue->target->dev, id->table_desc.len, md, token); - + if (token && dma_map) { + dma_free_coherent(iue->target->dev, id->table_desc.len, + md, token); + } return err; } @@ -309,7 +312,8 @@ static int data_out_desc_size(struct srp_cmd *cmd) sizeof(struct srp_direct_buf) * cmd->data_out_desc_cnt; break; default: - eprintk("client error. Invalid data_out_format %x\n", fmt); + pr_err("libsrp: client error. Invalid data_out_format %x\n", + fmt); break; } return size; @@ -328,7 +332,6 @@ int srp_transfer_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, int offset, err = 0; u8 format; - pr_info("libsrp: srp transfer data\n"); offset = cmd->add_cdb_len & ~3; dir = srp_cmd_direction(cmd); @@ -355,7 +358,7 @@ int srp_transfer_data(struct scsi_cmnd *sc, struct srp_cmd *cmd, ext_desc); break; default: - eprintk("Unknown format %d %x\n", dir, format); + pr_err("libsrp: Unknown format %d %x\n", dir, format); err = -EINVAL; } @@ -390,62 +393,13 @@ u64 srp_data_length(struct srp_cmd *cmd, enum dma_data_direction dir) len = be32_to_cpu(id->len); break; default: - eprintk("invalid data format %x\n", fmt); + pr_err("invalid data format %x\n", fmt); break; } return len; } EXPORT_SYMBOL_GPL(srp_data_length); -int srp_cmd_queue(struct Scsi_Host *shost, struct srp_cmd *cmd, void *info, - u64 itn_id, u64 addr) -{ - enum dma_data_direction dir; - struct scsi_cmnd *sc; - int tag, len, err; - - pr_info("libsrp: srp cmd queue\n"); - switch (cmd->task_attr) { - case SRP_SIMPLE_TASK: - tag = TCM_SIMPLE_TAG; - break; - case SRP_ORDERED_TASK: - tag = TCM_ORDERED_TAG; - break; - case SRP_HEAD_TASK: - tag = TCM_HEAD_TAG; - break; - case SRP_ACA_TASK: - tag = TCM_ACA_TAG; - break; - default: - eprintk("Task attribute %d not supported\n", cmd->task_attr); - tag = TCM_ORDERED_TAG; - } - - dir = srp_cmd_direction(cmd); - len = srp_data_length(cmd, dir); - - dprintk("%p %x %lx %d %d %d %llx\n", info, cmd->cdb[0], - cmd->lun, dir, len, tag, (unsigned long long) cmd->tag); - - sc = scsi_host_get_command(shost, dir, GFP_KERNEL); - if (!sc) - return -ENOMEM; - - sc->SCp.ptr = info; - memcpy(sc->cmnd, cmd->cdb, MAX_COMMAND_SIZE); - sc->sdb.length = len; - sc->sdb.table.sgl = (void *) (unsigned long) addr; - sc->tag = tag; - err = scsi_tgt_queue_command(sc, itn_id, &cmd->lun, cmd->tag); - if (err) - scsi_host_put_command(shost, sc); - - return err; -} -EXPORT_SYMBOL_GPL(srp_cmd_queue); - MODULE_DESCRIPTION("SCSI RDMA Protocol lib functions"); -MODULE_AUTHOR("FUJITA Tomonori"); +MODULE_AUTHOR("Bryant G. Ly"); MODULE_LICENSE("GPL"); diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index a0c80a8e6228bc..8fa6cb446e8649 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -666,7 +666,7 @@ static void scsi_mq_uninit_cmd(struct scsi_cmnd *cmd) * the __init_io() function. Primarily this would involve * the scatter-gather table. */ -void scsi_release_buffers(struct scsi_cmnd *cmd) +static void scsi_release_buffers(struct scsi_cmnd *cmd) { if (cmd->sdb.table.nents) scsi_free_sgtable(&cmd->sdb, false); @@ -676,7 +676,7 @@ void scsi_release_buffers(struct scsi_cmnd *cmd) if (scsi_prot_sg_count(cmd)) scsi_free_sgtable(cmd->prot_sdb, false); } -EXPORT_SYMBOL(scsi_release_buffers); +//EXPORT_SYMBOL(scsi_release_buffers); static void scsi_release_bidi_buffers(struct scsi_cmnd *cmd) { diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h index 27b4d0a6a01dbc..d2fba62f24b66f 100644 --- a/drivers/scsi/scsi_priv.h +++ b/drivers/scsi/scsi_priv.h @@ -35,7 +35,7 @@ extern void scsi_destroy_command_freelist(struct Scsi_Host *shost); void scsi_log_send(struct scsi_cmnd *cmd); void scsi_log_completion(struct scsi_cmnd *cmd, int disposition); #else -static inline void scsi_log_send(struct scsi_cmnd *cmd) +static inline void scsi_log_send(struct scsi_cmnd *cmd) { }; static inline void scsi_log_completion(struct scsi_cmnd *cmd, int disposition) { }; @@ -180,7 +180,7 @@ static inline void scsi_dh_release_device(struct scsi_device *sdev) { } #endif static inline void scsi_dh_remove_device(struct scsi_device *sdev) { } -/* +/* * internal scsi timeout functions: for use by mid-layer and transport * classes. */ diff --git a/drivers/scsi/scsi_tgt_if.c b/drivers/scsi/scsi_tgt_if.c index 6209110f295d22..7eae07f28aed94 100644 --- a/drivers/scsi/scsi_tgt_if.c +++ b/drivers/scsi/scsi_tgt_if.c @@ -94,6 +94,9 @@ static int tgt_uspace_send_event(u32 type, struct tgt_event *p) memcpy(ev, p, sizeof(*ev)); ev->hdr.type = type; + /* Ensure the command buffer is flushed to memory before + * handing it over to the other side to prevent stale data + */ mb(); ev->hdr.status = 1; @@ -120,13 +123,13 @@ int scsi_tgt_uspace_send_cmd(struct scsi_cmnd *cmd, u64 itn_id, ev.p.cmd_req.attribute = cmd->tag; ev.p.cmd_req.tag = tag; - dprintk("%p %d %u %x %llx\n", cmd, shost->host_no, + pr_debug("%p %d %u %x %llx\n", cmd, shost->host_no, ev.p.cmd_req.data_len, cmd->tag, (unsigned long long) ev.p.cmd_req.tag); err = tgt_uspace_send_event(TGT_KEVENT_CMD_REQ, &ev); if (err) - eprintk("tx buf is full, could not send\n"); + pr_err("tx buf is full, could not send\n"); return err; } @@ -143,13 +146,13 @@ int scsi_tgt_uspace_send_status(struct scsi_cmnd *cmd, u64 itn_id, u64 tag) ev.p.cmd_done.tag = tag; ev.p.cmd_done.result = cmd->result; - dprintk("%p %d %llu %u %x\n", cmd, shost->host_no, + pr_debug("%p %d %llu %u %x\n", cmd, shost->host_no, (unsigned long long) ev.p.cmd_req.tag, ev.p.cmd_req.data_len, cmd->tag); err = tgt_uspace_send_event(TGT_KEVENT_CMD_DONE, &ev); if (err) - eprintk("tx buf is full, could not send\n"); + pr_err("tx buf is full, could not send\n"); return err; } @@ -168,12 +171,13 @@ int scsi_tgt_uspace_send_tsk_mgmt(int host_no, u64 itn_id, int function, memcpy(ev.p.tsk_mgmt_req.lun, scsilun, sizeof(ev.p.tsk_mgmt_req.lun)); ev.p.tsk_mgmt_req.mid = (u64) (unsigned long) data; - dprintk("%d %x %llx %llx\n", host_no, function, (unsigned long long) tag, - (unsigned long long) ev.p.tsk_mgmt_req.mid); + pr_debug("%d %x %llx %llx\n", host_no, function, + (unsigned long long)tag, + (unsigned long long)ev.p.tsk_mgmt_req.mid); err = tgt_uspace_send_event(TGT_KEVENT_TSK_MGMT_REQ, &ev); if (err) - eprintk("tx buf is full, could not send\n"); + pr_err("tx buf is full, could not send\n"); return err; } @@ -192,11 +196,11 @@ int scsi_tgt_uspace_send_it_nexus_request(int host_no, u64 itn_id, strncpy(ev.p.it_nexus_req.initiator_id, initiator_id, sizeof(ev.p.it_nexus_req.initiator_id)); - dprintk("%d %x %llx\n", host_no, function, (unsigned long long)itn_id); + pr_debug("%d %x %llx\n", host_no, function, (unsigned long long)itn_id); err = tgt_uspace_send_event(TGT_KEVENT_IT_NEXUS_REQ, &ev); if (err) - eprintk("tx buf is full, could not send\n"); + pr_err("tx buf is full, could not send\n"); return err; } @@ -229,15 +233,15 @@ static int event_recv_msg(struct tgt_event *ev) ev->p.it_nexus_rsp.result); break; default: - eprintk("unknown type %d\n", ev->hdr.type); + pr_err("unknown type %d\n", ev->hdr.type); err = -EINVAL; } return err; } -static ssize_t tgt_write(struct file *file, const char __user * buffer, - size_t count, loff_t * ppos) +static ssize_t tgt_write(struct file *file, const char __user *buffer, + size_t count, loff_t *ppos) { struct tgt_event *ev; struct tgt_ring *ring = &rx_ring; @@ -258,7 +262,7 @@ static ssize_t tgt_write(struct file *file, const char __user * buffer, return count; } -static unsigned int tgt_poll(struct file * file, struct poll_table_struct *wait) +static unsigned int tgt_poll(struct file *file, struct poll_table_struct *wait) { struct tgt_event *ev; struct tgt_ring *ring = &tx_ring; @@ -284,9 +288,10 @@ static int uspace_ring_map(struct vm_area_struct *vma, unsigned long addr, struct tgt_ring *ring) { int i, err; + struct page *page; for (i = 0; i < TGT_RING_PAGES; i++) { - struct page *page = virt_to_page(ring->tr_pages[i]); + page = virt_to_page(ring->tr_pages[i]); err = vm_insert_page(vma, addr, page); if (err) return err; @@ -305,7 +310,7 @@ static int tgt_mmap(struct file *filp, struct vm_area_struct *vma) return -EINVAL; if (vma->vm_end - vma->vm_start != TGT_RING_SIZE * 2) { - eprintk("mmap size must be %lu, not %lu \n", + pr_err("mmap size must be %lu, not %lu\n", TGT_RING_SIZE * 2, vma->vm_end - vma->vm_start); return -EINVAL; } @@ -358,7 +363,7 @@ static int tgt_ring_init(struct tgt_ring *ring) for (i = 0; i < TGT_RING_PAGES; i++) { ring->tr_pages[i] = get_zeroed_page(GFP_KERNEL); if (!ring->tr_pages[i]) { - eprintk("out of memory\n"); + pr_err("out of memory\n"); return -ENOMEM; } } diff --git a/drivers/scsi/scsi_tgt_lib.c b/drivers/scsi/scsi_tgt_lib.c index 95a09ba248d762..50abc53e9ab14c 100644 --- a/drivers/scsi/scsi_tgt_lib.c +++ b/drivers/scsi/scsi_tgt_lib.c @@ -3,6 +3,7 @@ * * Copyright (C) 2005 Mike Christie * Copyright (C) 2005 FUJITA Tomonori + * Copyright (C) 2016 Bryant G. Ly IBM Corp. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -102,7 +103,6 @@ struct scsi_cmnd *scsi_host_get_command(struct Scsi_Host *shost, if (!rq) goto free_tcmd; - //cmd = __scsi_get_command(shost, gfp_mask); cmd = scsi_get_command(sdev, gfp_mask); if (!cmd) goto release_rq; @@ -139,7 +139,7 @@ EXPORT_SYMBOL_GPL(scsi_host_get_command); * Purpose: Free a scsi command block * * Arguments: shost - scsi host - * cmd - command block to free + * cmd - command block to free * * Returns: Nothing. * @@ -158,7 +158,6 @@ void scsi_host_put_command(struct Scsi_Host *shost, struct scsi_cmnd *cmd) __blk_put_request(q, rq); spin_unlock_irqrestore(q->queue_lock, flags); - //__scsi_put_command(shost, cmd); scsi_put_command(cmd); put_device(&shost->shost_gendev); } @@ -187,7 +186,7 @@ static void scsi_tgt_cmd_destroy(struct work_struct *work) container_of(work, struct scsi_tgt_cmd, work); struct scsi_cmnd *cmd = tcmd->rq->special; - dprintk("cmd %p %d %u\n", cmd, cmd->sc_data_direction, + pr_debug("cmd %p %d %u\n", cmd, cmd->sc_data_direction, rq_data_dir(cmd->request)); scsi_unmap_user_pages(tcmd); tcmd->rq->bio = NULL; @@ -300,6 +299,7 @@ EXPORT_SYMBOL_GPL(scsi_tgt_free_queue); struct Scsi_Host *scsi_tgt_cmd_to_host(struct scsi_cmnd *cmd) { struct scsi_tgt_queuedata *queue = cmd->request->q->queuedata; + return queue->shost; } EXPORT_SYMBOL_GPL(scsi_tgt_cmd_to_host); @@ -333,7 +333,7 @@ static void scsi_tgt_cmd_done(struct scsi_cmnd *cmd) { struct scsi_tgt_cmd *tcmd = cmd->request->end_io_data; - dprintk("cmd %p %u\n", cmd, rq_data_dir(cmd->request)); + pr_debug("cmd %p %u\n", cmd, rq_data_dir(cmd->request)); scsi_tgt_uspace_send_status(cmd, tcmd->itn_id, tcmd->tag); @@ -347,7 +347,7 @@ static int scsi_tgt_transfer_response(struct scsi_cmnd *cmd) struct Scsi_Host *shost = scsi_tgt_cmd_to_host(cmd); int err; - dprintk("cmd %p %u\n", cmd, rq_data_dir(cmd->request)); + pr_debug("cmd %p %u\n", cmd, rq_data_dir(cmd->request)); err = shost->hostt->transfer_response(cmd, scsi_tgt_cmd_done); switch (err) { @@ -366,7 +366,7 @@ static int scsi_map_user_pages(struct scsi_tgt_cmd *tcmd, struct scsi_cmnd *cmd, struct request *rq = cmd->request; int err; - dprintk("%lx %u\n", uaddr, len); + pr_debug("%lx %u\n", uaddr, len); err = blk_rq_map_user(q, rq, NULL, (void *)uaddr, len, GFP_KERNEL); if (err) { /* @@ -378,12 +378,11 @@ static int scsi_map_user_pages(struct scsi_tgt_cmd *tcmd, struct scsi_cmnd *cmd, * we can handle and do the slow copy path for really large * IO. */ - eprintk("Could not handle request of size %u.\n", len); + pr_err("Could not handle request of size %u.\n", len); return err; } tcmd->bio = rq->bio; - //err = scsi_init_io(cmd, GFP_KERNEL); err = scsi_init_io(cmd); if (err) { scsi_release_buffers(cmd); @@ -409,7 +408,7 @@ static int scsi_tgt_copy_sense(struct scsi_cmnd *cmd, unsigned long uaddr, if (copy_from_user(cmd->sense_buffer, p, min_t(unsigned, SCSI_SENSE_BUFFERSIZE, len))) { - printk(KERN_ERR "Could not copy the sense buffer\n"); + pr_err("Could not copy the sense buffer\n"); return -EIO; } return 0; @@ -422,7 +421,7 @@ static int scsi_tgt_abort_cmd(struct Scsi_Host *shost, struct scsi_cmnd *cmd) err = shost->hostt->eh_abort_handler(cmd); if (err) - eprintk("fail to abort %p\n", cmd); + pr_err("fail to abort %p\n", cmd); tcmd = cmd->request->end_io_data; scsi_tgt_cmd_destroy(&tcmd->work); @@ -452,8 +451,8 @@ static struct request *tgt_cmd_hash_lookup(struct request_queue *q, u64 tag) } int scsi_tgt_kspace_exec(int host_no, u64 itn_id, int result, u64 tag, - unsigned long uaddr, u32 len, unsigned long sense_uaddr, - u32 sense_len, u8 rw) + unsigned long uaddr, u32 len, + unsigned long sense_uaddr, u32 sense_len, u8 rw) { struct Scsi_Host *shost; struct scsi_cmnd *cmd; @@ -461,31 +460,31 @@ int scsi_tgt_kspace_exec(int host_no, u64 itn_id, int result, u64 tag, struct scsi_tgt_cmd *tcmd; int err = 0; - dprintk("%d %llu %d %u %lx %u\n", host_no, (unsigned long long) tag, + pr_debug("%d %llu %d %u %lx %u\n", host_no, (unsigned long long) tag, result, len, uaddr, rw); /* TODO: replace with a O(1) alg */ shost = scsi_host_lookup(host_no); if (!shost) { - printk(KERN_ERR "Could not find host no %d\n", host_no); + pr_err("Could not find host no %d\n", host_no); return -EINVAL; } if (!shost->uspace_req_q) { - printk(KERN_ERR "Not target scsi host %d\n", host_no); + pr_err("Not target scsi host %d\n", host_no); goto done; } rq = tgt_cmd_hash_lookup(shost->uspace_req_q, tag); if (!rq) { - printk(KERN_ERR "Could not find tag %llu\n", + pr_err("Could not find tag %llu\n", (unsigned long long) tag); err = -EINVAL; goto done; } cmd = rq->special; - dprintk("cmd %p scb %x result %d len %d bufflen %u %u %x\n", + pr_debug("cmd %p scb %x result %d len %d bufflen %u %u %x\n", cmd, cmd->cmnd[0], result, len, scsi_bufflen(cmd), rq_data_dir(rq), cmd->cmnd[0]); @@ -514,7 +513,7 @@ int scsi_tgt_kspace_exec(int host_no, u64 itn_id, int result, u64 tag, struct list_head *head; unsigned long flags; - eprintk("cmd %p ret %d uaddr %lx len %d rw %d\n", + pr_err("cmd %p ret %d uaddr %lx len %d rw %d\n", cmd, err, uaddr, len, rw); qdata = shost->uspace_req_q->queuedata; @@ -543,7 +542,7 @@ int scsi_tgt_tsk_mgmt_request(struct Scsi_Host *shost, u64 itn_id, err = scsi_tgt_uspace_send_tsk_mgmt(shost->host_no, itn_id, function, tag, scsilun, data); if (err < 0) - eprintk("The task management request lost!\n"); + pr_err("The task management request lost!\n"); return err; } EXPORT_SYMBOL_GPL(scsi_tgt_tsk_mgmt_request); @@ -553,16 +552,16 @@ int scsi_tgt_kspace_tsk_mgmt(int host_no, u64 itn_id, u64 mid, int result) struct Scsi_Host *shost; int err = -EINVAL; - dprintk("%d %d %llx\n", host_no, result, (unsigned long long) mid); + pr_debug("%d %d %llx\n", host_no, result, (unsigned long long) mid); shost = scsi_host_lookup(host_no); if (!shost) { - printk(KERN_ERR "Could not find host no %d\n", host_no); + pr_err("Could not find host no %d\n", host_no); return err; } if (!shost->uspace_req_q) { - printk(KERN_ERR "Not target scsi host %d\n", host_no); + pr_err("Not target scsi host %d\n", host_no); goto done; } @@ -581,7 +580,7 @@ int scsi_tgt_it_nexus_create(struct Scsi_Host *shost, u64 itn_id, err = scsi_tgt_uspace_send_it_nexus_request(shost->host_no, itn_id, 0, initiator); if (err < 0) - eprintk("The i_t_neuxs request lost, %d %llx!\n", + pr_err("The i_t_neuxs request lost, %d %llx!\n", shost->host_no, (unsigned long long)itn_id); return err; } @@ -595,7 +594,7 @@ int scsi_tgt_it_nexus_destroy(struct Scsi_Host *shost, u64 itn_id) err = scsi_tgt_uspace_send_it_nexus_request(shost->host_no, itn_id, 1, NULL); if (err < 0) - eprintk("The i_t_neuxs request lost, %d %llx!\n", + pr_err("The i_t_neuxs request lost, %d %llx!\n", shost->host_no, (unsigned long long)itn_id); return err; } @@ -606,16 +605,16 @@ int scsi_tgt_kspace_it_nexus_rsp(int host_no, u64 itn_id, int result) struct Scsi_Host *shost; int err = -EINVAL; - dprintk("%d %d%llx\n", host_no, result, (unsigned long long)itn_id); + pr_debug("%d %d%llx\n", host_no, result, (unsigned long long)itn_id); shost = scsi_host_lookup(host_no); if (!shost) { - printk(KERN_ERR "Could not find host no %d\n", host_no); + pr_err("Could not find host no %d\n", host_no); return err; } if (!shost->uspace_req_q) { - printk(KERN_ERR "Not target scsi host %d\n", host_no); + pr_err("Not target scsi host %d\n", host_no); goto done; } diff --git a/drivers/scsi/scsi_tgt_priv.h b/drivers/scsi/scsi_tgt_priv.h index fe4c62177f78f8..c44309a0e319cc 100644 --- a/drivers/scsi/scsi_tgt_priv.h +++ b/drivers/scsi/scsi_tgt_priv.h @@ -3,15 +3,6 @@ struct scsi_lun; struct Scsi_Host; struct task_struct; -/* tmp - will replace with SCSI logging stuff */ -#define eprintk(fmt, args...) \ -do { \ - printk("%s(%d) " fmt, __func__, __LINE__, ##args); \ -} while (0) - -#define dprintk(fmt, args...) -/* #define dprintk eprintk */ - extern void scsi_tgt_if_exit(void); extern int scsi_tgt_if_init(void); @@ -19,9 +10,10 @@ extern int scsi_tgt_uspace_send_cmd(struct scsi_cmnd *cmd, u64 it_nexus_id, struct scsi_lun *lun, u64 tag); extern int scsi_tgt_uspace_send_status(struct scsi_cmnd *cmd, u64 it_nexus_id, u64 tag); -extern int scsi_tgt_kspace_exec(int host_no, u64 it_nexus_id, int result, u64 tag, - unsigned long uaddr, u32 len, - unsigned long sense_uaddr, u32 sense_len, u8 rw); +extern int scsi_tgt_kspace_exec(int host_no, u64 it_nexus_id, int result, + u64 tag, unsigned long uaddr, u32 len, + unsigned long sense_uaddr, u32 sense_len, + u8 rw); extern int scsi_tgt_uspace_send_tsk_mgmt(int host_no, u64 it_nexus_id, int function, u64 tag, struct scsi_lun *scsilun, void *data); @@ -29,4 +21,5 @@ extern int scsi_tgt_kspace_tsk_mgmt(int host_no, u64 it_nexus_id, u64 mid, int result); extern int scsi_tgt_uspace_send_it_nexus_request(int host_no, u64 it_nexus_id, int function, char *initiator); -extern int scsi_tgt_kspace_it_nexus_rsp(int host_no, u64 it_nexus_id, int result); +extern int scsi_tgt_kspace_it_nexus_rsp(int host_no, u64 it_nexus_id, + int result); diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c index eb4b733530ba3e..6d82a5d0ba7858 100644 --- a/drivers/scsi/scsi_transport_srp.c +++ b/drivers/scsi/scsi_transport_srp.c @@ -130,6 +130,7 @@ show_srp_rport_id(struct device *dev, struct device_attribute *attr, char *buf) { struct srp_rport *rport = transport_class_to_srp_rport(dev); + return sprintf(buf, SRP_PID_FMT "\n", SRP_PID(rport)); } @@ -853,12 +854,14 @@ static int srp_tsk_mgmt_response(struct Scsi_Host *shost, u64 nexus, u64 tm_id, int result) { struct srp_internal *i = to_srp_internal(shost->transportt); + return i->f->tsk_mgmt_response(shost, nexus, tm_id, result); } static int srp_it_nexus_response(struct Scsi_Host *shost, u64 nexus, int result) { struct srp_internal *i = to_srp_internal(shost->transportt); + return i->f->it_nexus_response(shost, nexus, result); } diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c index 2a91ed3ef3801e..891d441caa6aa5 100644 --- a/drivers/target/target_core_spc.c +++ b/drivers/target/target_core_spc.c @@ -1211,6 +1211,7 @@ sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd) u32 lun_count = 0, offset = 8; __be32 len; + pr_debug("spc_emulate_report_luns\n"); buf = transport_kmap_data_sg(cmd); if (cmd->data_length && !buf) return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; @@ -1260,6 +1261,8 @@ sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd) if (buf) { len = cpu_to_be32(lun_count * 8); + pr_debug("spc_emulate_report: len:%x luncount:%x\n", + be32_to_cpu(len), lun_count); memcpy(buf, &len, min_t(int, sizeof len, cmd->data_length)); transport_kunmap_data_sg(cmd); } diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index df01997830f5d6..25de959247f36a 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -1480,6 +1480,11 @@ int target_submit_cmd_map_sgls(struct se_cmd *se_cmd, struct se_session *se_sess sense_reason_t rc; int ret; + pr_debug("target: se_cmd(%p), se_sess(%p), cdb: %x, sense: %x" + " unpacked lun: %llx, data_length: %x, task_attr: %x" + " data_dir: %x, flags: %x\n", se_cmd, se_sess, cdb[0], sense[0], + unpacked_lun, data_length, task_attr, data_dir, flags); + se_tpg = se_sess->se_tpg; BUG_ON(!se_tpg); BUG_ON(se_cmd->se_tfo || se_cmd->se_sess); diff --git a/include/scsi/libsrp.h b/include/scsi/libsrp.h index d8ebd90941face..38ec0fe0cc87c0 100644 --- a/include/scsi/libsrp.h +++ b/include/scsi/libsrp.h @@ -9,10 +9,10 @@ #include enum srp_task_attributes { - SRP_SIMPLE_TASK = 0, - SRP_HEAD_TASK = 1, - SRP_ORDERED_TASK = 2, - SRP_ACA_TASK = 4 + SRP_SIMPLE_TASK = 0, + SRP_HEAD_TASK = 1, + SRP_ORDERED_TASK = 2, + SRP_ACA_TASK = 4 }; enum iue_flags { @@ -63,13 +63,13 @@ struct iu_entry { typedef int (srp_rdma_t)(struct scsi_cmnd *, struct scatterlist *, int, struct srp_direct_buf *, int, enum dma_data_direction, unsigned int); -extern int srp_target_alloc(struct srp_target *, struct device *, size_t, size_t); +extern int srp_target_alloc(struct srp_target *, struct device *, + size_t, size_t); extern void srp_target_free(struct srp_target *); extern struct iu_entry *srp_iu_get(struct srp_target *); extern void srp_iu_put(struct iu_entry *); -extern int srp_cmd_queue(struct Scsi_Host *, struct srp_cmd *, void *, u64, u64); extern int srp_transfer_data(struct scsi_cmnd *, struct srp_cmd *, srp_rdma_t, int, int); diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 8da55b65e47c37..0f1f83345c812c 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -44,7 +44,7 @@ struct scsi_pointer { struct scatterlist *buffer; /* which buffer */ int buffers_residual; /* how many buffers left */ - dma_addr_t dma_handle; + dma_addr_t dma_handle; volatile int Status; volatile int Message; @@ -99,32 +99,38 @@ struct scsi_cmnd { struct scsi_data_buffer *prot_sdb; unsigned underflow; /* Return error if less than - this amount is transferred */ + * this amount is transferred + */ unsigned transfersize; /* How much we are guaranteed to - transfer with each SCSI transfer - (ie, between disconnect / - reconnects. Probably == sector - size */ + * transfer with each SCSI transfer + * (ie, between disconnect / + * reconnects. Probably == sector + * size + */ - struct request *request; /* The command we are - working on */ + /* The command we are working on*/ + struct request *request; -#define SCSI_SENSE_BUFFERSIZE 96 +#define SCSI_SENSE_BUFFERSIZE 96 unsigned char *sense_buffer; /* obtained by REQUEST SENSE when * CHECK CONDITION is received on original - * command (auto-sense) */ + * command (auto-sense) + */ /* Low-level done function - can be used by low-level driver to point - * to completion function. Not used by mid/upper level code. */ - void (*scsi_done) (struct scsi_cmnd *); + * to completion function. Not used by mid/upper level code. + */ + void (*scsi_done)(struct scsi_cmnd *); /* * The following fields can be written to by the host specific code. * Everything else should be left alone. */ - struct scsi_pointer SCp; /* Scratchpad used by some host adapters */ + struct scsi_pointer SCp; /* Scratchpad used by some + * host adapters + */ unsigned char *host_scribble; /* The host adapter is allowed to * call scsi_malloc and get some memory @@ -132,7 +138,8 @@ struct scsi_cmnd { * is also expected to call scsi_free * to release this memory. (The memory * obtained by scsi_malloc is guaranteed - * to be at an address < 16Mb). */ + * to be at an address < 16Mb). + */ int result; /* Status code from lower level driver */ int flags; /* Command flags */ @@ -164,7 +171,7 @@ extern void *scsi_kmap_atomic_sg(struct scatterlist *sg, int sg_count, extern void scsi_kunmap_atomic_sg(void *virt); extern int scsi_init_io(struct scsi_cmnd *cmd); -extern void scsi_release_buffers(struct scsi_cmnd *cmd); +void scsi_release_buffers(struct scsi_cmnd *cmd); extern int scsi_dma_map(struct scsi_cmnd *cmd); extern void scsi_dma_unmap(struct scsi_cmnd *cmd); @@ -280,7 +287,8 @@ enum scsi_prot_target_type { SCSI_PROT_DIF_TYPE3, }; -static inline void scsi_set_prot_type(struct scsi_cmnd *scmd, unsigned char type) +static inline void scsi_set_prot_type(struct scsi_cmnd *scmd, + unsigned char type) { scmd->prot_type = type; } diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index eeefbae110146d..5db0807e877f53 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -145,7 +145,7 @@ struct scsi_host_template { */ /* TODO: rename */ int (* transfer_response)(struct scsi_cmnd *, - void (*done)(struct scsi_cmnd *)); + void (*done)(struct scsi_cmnd *)); /* * This is an error handling strategy routine. You don't need to diff --git a/include/scsi/scsi_tgt.h b/include/scsi/scsi_tgt.h index d0fefb96158f3d..4b9d62f05306c7 100644 --- a/include/scsi/scsi_tgt.h +++ b/include/scsi/scsi_tgt.h @@ -11,7 +11,8 @@ struct scsi_lun; extern struct Scsi_Host *scsi_tgt_cmd_to_host(struct scsi_cmnd *); extern int scsi_tgt_alloc_queue(struct Scsi_Host *); extern void scsi_tgt_free_queue(struct Scsi_Host *); -extern int scsi_tgt_queue_command(struct scsi_cmnd *, u64, struct scsi_lun *, u64); +extern int scsi_tgt_queue_command(struct scsi_cmnd *, u64, + struct scsi_lun *, u64); extern int scsi_tgt_tsk_mgmt_request(struct Scsi_Host *, u64, int, u64, struct scsi_lun *, void *); extern struct scsi_cmnd *scsi_host_get_command(struct Scsi_Host *, diff --git a/include/scsi/scsi_tgt_if.h b/include/scsi/scsi_tgt_if.h index f2ee7c238a4544..cffa54b3eac87e 100644 --- a/include/scsi/scsi_tgt_if.h +++ b/include/scsi/scsi_tgt_if.h @@ -38,7 +38,7 @@ struct tgt_event_hdr { uint16_t status; uint16_t type; uint16_t len; -} __attribute__ ((aligned (sizeof(uint64_t)))); +} __aligned(sizeof(uint64_t)); struct tgt_event { struct tgt_event_hdr hdr; @@ -101,7 +101,7 @@ struct tgt_event { __u8 initiator_id[16]; } it_nexus_req; } p; -} __attribute__ ((aligned (sizeof(uint64_t)))); +} __aligned(sizeof(uint64_t)); #define TGT_RING_SIZE (1UL << 16)