]> git.karo-electronics.de Git - linux-beck.git/commitdiff
target: remove target_get_task_cdb
authorChristoph Hellwig <hch@infradead.org>
Mon, 23 Apr 2012 15:35:29 +0000 (11:35 -0400)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sun, 6 May 2012 22:02:59 +0000 (15:02 -0700)
Now that tasks are always the same size as the command there is no need
to rewrite a CDB in common code.  Notw that we keep the separately allocated
CDB in the pscsi and stgt backends for now, to easy reintroducing any
command splitting local to these backends if nessecary.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_cdb.c
drivers/target/target_core_pscsi.c
include/target/target_core_backend.h

index f6f6059f7f748d12370ad21c37fb5feb8589c389..8e6b91d0380dfb0505d8cca25d62958d7092f428 100644 (file)
@@ -1148,52 +1148,3 @@ int target_emulate_noop(struct se_task *task)
        transport_complete_task(task, 1);
        return 0;
 }
-
-/*
- * Write a CDB into @cdb that is based on the one the intiator sent us,
- * but updated to only cover the sectors that the current task handles.
- */
-void target_get_task_cdb(struct se_task *task, unsigned char *cdb)
-{
-       struct se_cmd *cmd = task->task_se_cmd;
-       unsigned int cdb_len = scsi_command_size(cmd->t_task_cdb);
-
-       memcpy(cdb, cmd->t_task_cdb, cdb_len);
-       if (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB) {
-               unsigned long long lba = task->task_lba;
-               u32 sectors = task->task_sectors;
-
-               switch (cdb_len) {
-               case 6:
-                       /* 21-bit LBA and 8-bit sectors */
-                       cdb[1] = (lba >> 16) & 0x1f;
-                       cdb[2] = (lba >> 8) & 0xff;
-                       cdb[3] = lba & 0xff;
-                       cdb[4] = sectors & 0xff;
-                       break;
-               case 10:
-                       /* 32-bit LBA and 16-bit sectors */
-                       put_unaligned_be32(lba, &cdb[2]);
-                       put_unaligned_be16(sectors, &cdb[7]);
-                       break;
-               case 12:
-                       /* 32-bit LBA and 32-bit sectors */
-                       put_unaligned_be32(lba, &cdb[2]);
-                       put_unaligned_be32(sectors, &cdb[6]);
-                       break;
-               case 16:
-                       /* 64-bit LBA and 32-bit sectors */
-                       put_unaligned_be64(lba, &cdb[2]);
-                       put_unaligned_be32(sectors, &cdb[10]);
-                       break;
-               case 32:
-                       /* 64-bit LBA and 32-bit sectors, extended CDB */
-                       put_unaligned_be64(lba, &cdb[12]);
-                       put_unaligned_be32(sectors, &cdb[28]);
-                       break;
-               default:
-                       BUG();
-               }
-       }
-}
-EXPORT_SYMBOL(target_get_task_cdb);
index 94c905fcbceb39d665c2fdee4131176ee712464c..94c7a464963260b302d6d4ed6ce08b119d1e1f60 100644 (file)
@@ -1070,7 +1070,8 @@ static int pscsi_do_task(struct se_task *task)
        struct bio *hbio;
        int ret;
 
-       target_get_task_cdb(task, pt->pscsi_cdb);
+       memcpy(pt->pscsi_cdb, cmd->t_task_cdb,
+               scsi_command_size(cmd->t_task_cdb));
 
        if (task->task_se_cmd->se_cmd_flags & SCF_SCSI_NON_DATA_CDB) {
                req = blk_get_request(pdv->pdv_sd->request_queue,
index 8c9ff1b143960d77619720183db06140cfaab99b..55da17b48d9dc2f33d7a2b3f4fd0c1fac4c8c423 100644 (file)
@@ -51,8 +51,6 @@ struct se_device *transport_add_device_to_core_hba(struct se_hba *,
 void   transport_complete_sync_cache(struct se_cmd *, int);
 void   transport_complete_task(struct se_task *, int);
 
-void   target_get_task_cdb(struct se_task *, unsigned char *);
-
 void   transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
 int    transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
 int    transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *);