]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/libsrp.c
Merge branch 'yinghai' into test
[linux-2.6-omap-h63xx.git] / drivers / scsi / libsrp.c
index 732446e63963557dab5136c10c361acbc1a18a9a..15e2d132e8b9e07b99d39c4079557a3d16604cc3 100644 (file)
@@ -39,7 +39,7 @@ enum srp_task_attributes {
 /* tmp - will replace with SCSI logging stuff */
 #define eprintk(fmt, args...)                                  \
 do {                                                           \
-       printk("%s(%d) " fmt, __FUNCTION__, __LINE__, ##args);  \
+       printk("%s(%d) " fmt, __func__, __LINE__, ##args);      \
 } while (0)
 /* #define dprintk eprintk */
 #define dprintk(fmt, args...)
@@ -192,18 +192,18 @@ static int srp_direct_data(struct scsi_cmnd *sc, struct srp_direct_buf *md,
 
        if (dma_map) {
                iue = (struct iu_entry *) sc->SCp.ptr;
-               sg = sc->request_buffer;
+               sg = scsi_sglist(sc);
 
-               dprintk("%p %u %u %d\n", iue, sc->request_bufflen,
-                       md->len, sc->use_sg);
+               dprintk("%p %u %u %d\n", iue, scsi_bufflen(sc),
+                       md->len, scsi_sg_count(sc));
 
-               nsg = dma_map_sg(iue->target->dev, sg, sc->use_sg,
+               nsg = dma_map_sg(iue->target->dev, sg, scsi_sg_count(sc),
                                 DMA_BIDIRECTIONAL);
                if (!nsg) {
-                       printk("fail to map %p %d\n", iue, sc->use_sg);
+                       printk("fail to map %p %d\n", iue, scsi_sg_count(sc));
                        return 0;
                }
-               len = min(sc->request_bufflen, md->len);
+               len = min(scsi_bufflen(sc), md->len);
        } else
                len = md->len;
 
@@ -229,10 +229,10 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd,
 
        if (dma_map || ext_desc) {
                iue = (struct iu_entry *) sc->SCp.ptr;
-               sg = sc->request_buffer;
+               sg = scsi_sglist(sc);
 
                dprintk("%p %u %u %d %d\n",
-                       iue, sc->request_bufflen, id->len,
+                       iue, scsi_bufflen(sc), id->len,
                        cmd->data_in_desc_cnt, cmd->data_out_desc_cnt);
        }
 
@@ -268,13 +268,14 @@ static int srp_indirect_data(struct scsi_cmnd *sc, struct srp_cmd *cmd,
 
 rdma:
        if (dma_map) {
-               nsg = dma_map_sg(iue->target->dev, sg, sc->use_sg, DMA_BIDIRECTIONAL);
+               nsg = dma_map_sg(iue->target->dev, sg, scsi_sg_count(sc),
+                                DMA_BIDIRECTIONAL);
                if (!nsg) {
-                       eprintk("fail to map %p %d\n", iue, sc->use_sg);
+                       eprintk("fail to map %p %d\n", iue, scsi_sg_count(sc));
                        err = -EIO;
                        goto free_mem;
                }
-               len = min(sc->request_bufflen, id->len);
+               len = min(scsi_bufflen(sc), id->len);
        } else
                len = id->len;
 
@@ -392,7 +393,7 @@ static int vscsis_data_length(struct srp_cmd *cmd, enum dma_data_direction dir)
 }
 
 int srp_cmd_queue(struct Scsi_Host *shost, struct srp_cmd *cmd, void *info,
-                 u64 addr)
+                 u64 itn_id, u64 addr)
 {
        enum dma_data_direction dir;
        struct scsi_cmnd *sc;
@@ -425,10 +426,11 @@ int srp_cmd_queue(struct Scsi_Host *shost, struct srp_cmd *cmd, void *info,
 
        sc->SCp.ptr = info;
        memcpy(sc->cmnd, cmd->cdb, MAX_COMMAND_SIZE);
-       sc->request_bufflen = len;
-       sc->request_buffer = (void *) (unsigned long) addr;
+       sc->sdb.length = len;
+       sc->sdb.table.sgl = (void *) (unsigned long) addr;
        sc->tag = tag;
-       err = scsi_tgt_queue_command(sc, (struct scsi_lun *) &cmd->lun, cmd->tag);
+       err = scsi_tgt_queue_command(sc, itn_id, (struct scsi_lun *)&cmd->lun,
+                                    cmd->tag);
        if (err)
                scsi_host_put_command(shost, sc);