This patch simply converts direct uses of ->use_sg and ->request_buffer to
use the wrapper macros.  This removes the assumption that the sg list is
overloaded on request_buffer, and that there's an explicit use_sg field.

The ->request_buffer assumption is explicit in scsi_debug.c's paranoid
checking, so that code had to be shuffled a little.

Signed-off-by: Rusty Russell <[EMAIL PROTECTED]>
---
 drivers/scsi/NCR5380.c       |    6 +++---
 drivers/scsi/NCR53C9x.c      |    6 +++---
 drivers/scsi/aha1542.c       |   14 +++++++-------
 drivers/scsi/atari_NCR5380.c |    2 +-
 drivers/scsi/atp870u.c       |   22 +++++++++++-----------
 drivers/scsi/eata_pio.c      |    6 +++---
 drivers/scsi/fd_mcs.c        |    6 +++---
 drivers/scsi/imm.c           |    5 ++---
 drivers/scsi/in2000.c        |    6 +++---
 drivers/scsi/libsrp.c        |   12 ++++++------
 drivers/scsi/pcmcia/nsp_cs.c |    8 ++++----
 drivers/scsi/ppa.c           |    4 ++--
 drivers/scsi/qlogicpti.c     |   12 ++++++------
 drivers/scsi/scsi_debug.c    |   14 +++++++-------
 drivers/scsi/seagate.c       |    4 ++--
 drivers/scsi/sr.c            |    6 +++---
 drivers/scsi/sun3_NCR5380.c  |    6 +++---
 drivers/scsi/sun3x_esp.c     |    4 ++--
 drivers/scsi/wd33c93.c       |    6 +++---
 21 files changed, 77 insertions(+), 76 deletions(-)

diff -r 297d045c5da1 drivers/scsi/NCR5380.c
--- a/drivers/scsi/NCR5380.c    Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/NCR5380.c    Wed Jan 02 18:00:10 2008 +1100
@@ -295,9 +295,9 @@ static __inline__ void initialize_SCp(Sc
         * various queues are valid.
         */
 
-       if (cmd->use_sg) {
-               cmd->SCp.buffer = (struct scatterlist *) cmd->request_buffer;
-               cmd->SCp.buffers_residual = cmd->use_sg - 1;
+       if (scsi_sg_count(cmd)) {
+               cmd->SCp.buffer = scsi_sglist(cmd);
+               cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1;
                cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                cmd->SCp.this_residual = cmd->SCp.buffer->length;
        } else {
diff -r 297d045c5da1 drivers/scsi/NCR53C9x.c
--- a/drivers/scsi/NCR53C9x.c   Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/NCR53C9x.c   Wed Jan 02 18:00:10 2008 +1100
@@ -910,7 +910,7 @@ EXPORT_SYMBOL(esp_proc_info);
 
 static void esp_get_dmabufs(struct NCR_ESP *esp, Scsi_Cmnd *sp)
 {
-       if(sp->use_sg == 0) {
+       if(scsi_sg_count(sp) == 0) {
                sp->SCp.this_residual = sp->request_bufflen;
                sp->SCp.buffer = (struct scatterlist *) sp->request_buffer;
                sp->SCp.buffers_residual = 0;
@@ -920,8 +920,8 @@ static void esp_get_dmabufs(struct NCR_E
                        sp->SCp.ptr =
                                (char *) virt_to_phys(sp->request_buffer);
        } else {
-               sp->SCp.buffer = (struct scatterlist *) sp->request_buffer;
-               sp->SCp.buffers_residual = sp->use_sg - 1;
+               sp->SCp.buffer = scsi_sglist(sp->request_buffer);
+               sp->SCp.buffers_residual = scsi_sg_count(sp) - 1;
                sp->SCp.this_residual = sp->SCp.buffer->length;
                if (esp->dma_mmu_get_scsi_sgl)
                        esp->dma_mmu_get_scsi_sgl(esp, sp);
diff -r 297d045c5da1 drivers/scsi/aha1542.c
--- a/drivers/scsi/aha1542.c    Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/aha1542.c    Wed Jan 02 18:00:10 2008 +1100
@@ -689,7 +689,7 @@ static int aha1542_queuecommand(Scsi_Cmn
 
        memcpy(ccb[mbo].cdb, cmd, ccb[mbo].cdblen);
 
-       if (SCpnt->use_sg) {
+       if (scsi_sg_count(SCpnt)) {
                struct scatterlist *sg;
                struct chain *cptr;
 #ifdef DEBUG
@@ -704,12 +704,12 @@ static int aha1542_queuecommand(Scsi_Cmn
                        HOSTDATA(SCpnt->device->host)->SCint[mbo] = NULL;
                        return SCSI_MLQUEUE_HOST_BUSY;
                }
-               scsi_for_each_sg(SCpnt, sg, SCpnt->use_sg, i) {
-                       if (sg->length == 0 || SCpnt->use_sg > 16 ||
+               scsi_for_each_sg(SCpnt, sg, scsi_sg_count(SCpnt), i) {
+                       if (sg->length == 0 || scsi_sg_count(SCpnt) > 16 ||
                            (((int) sg->offset) & 1) || (sg->length & 1)) {
                                unsigned char *ptr;
-                               printk(KERN_CRIT "Bad segment list supplied to 
aha1542.c (%d, %d)\n", SCpnt->use_sg, i);
-                               scsi_for_each_sg(SCpnt, sg, SCpnt->use_sg, i) {
+                               printk(KERN_CRIT "Bad segment list supplied to 
aha1542.c (%d, %d)\n", scsi_sg_count(SCpnt), i);
+                               scsi_for_each_sg(SCpnt, sg, 
scsi_sg_count(SCpnt), i) {
                                        printk(KERN_CRIT "%d: %p %d\n", i,
                                               sg_virt(sg), sg->length);
                                };
@@ -721,10 +721,10 @@ static int aha1542_queuecommand(Scsi_Cmn
                        };
                        any2scsi(cptr[i].dataptr, SCSI_SG_PA(sg));
                        if (SCSI_SG_PA(sg) + sg->length - 1 > ISA_DMA_THRESHOLD)
-                               BAD_SG_DMA(SCpnt, sg, SCpnt->use_sg, i);
+                               BAD_SG_DMA(SCpnt, sg, scsi_sg_count(SCpnt), i);
                        any2scsi(cptr[i].datalen, sg->length);
                };
-               any2scsi(ccb[mbo].datalen, SCpnt->use_sg * sizeof(struct 
chain));
+               any2scsi(ccb[mbo].datalen, scsi_sg_count(SCpnt) * sizeof(struct 
chain));
                any2scsi(ccb[mbo].dataptr, SCSI_BUF_PA(cptr));
 #ifdef DEBUG
                printk("cptr %x: ", cptr);
diff -r 297d045c5da1 drivers/scsi/atari_NCR5380.c
--- a/drivers/scsi/atari_NCR5380.c      Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/atari_NCR5380.c      Wed Jan 02 18:00:10 2008 +1100
@@ -512,7 +512,7 @@ static inline void initialize_SCp(Scsi_C
         */
 
        if (cmd->use_sg) {
-               cmd->SCp.buffer = (struct scatterlist *)cmd->request_buffer;
+               cmd->SCp.buffer = scsi_sglist(cmd->request_buffer);
                cmd->SCp.buffers_residual = cmd->use_sg - 1;
                cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                cmd->SCp.this_residual = cmd->SCp.buffer->length;
diff -r 297d045c5da1 drivers/scsi/atp870u.c
--- a/drivers/scsi/atp870u.c    Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/atp870u.c    Wed Jan 02 18:00:10 2008 +1100
@@ -471,10 +471,10 @@ go_42:
                        /*
                         *      Complete the command
                         */
-                       if (workreq->use_sg) {
+                       if (scsi_sg_count(workreq)) {
                                pci_unmap_sg(dev->pdev,
-                                       (struct scatterlist 
*)workreq->request_buffer,
-                                       workreq->use_sg,
+                                       scsi_sglist(workreq->request_buffer),
+                                       scsi_sg_count(workreq), 
                                        workreq->sc_data_direction);
                        } else if (workreq->request_bufflen &&
                                        workreq->sc_data_direction != DMA_NONE) 
{
@@ -855,18 +855,18 @@ oktosend:
        /*
         *      Figure out the transfer size
         */
-       if (workreq->use_sg) {
+       if (scsi_sg_count(workreq)) {
 #ifdef ED_DBGP
                printk("Using SGL\n");
 #endif         
                l = 0;
                
-               sgpnt = (struct scatterlist *) workreq->request_buffer;
-               sg_count = pci_map_sg(dev->pdev, sgpnt, workreq->use_sg,
+               sgpnt = scsi_sglist(workreq);
+               sg_count = pci_map_sg(dev->pdev, sgpnt, scsi_sg_count(workreq),
                                workreq->sc_data_direction);            
                
-               for (i = 0; i < workreq->use_sg; i++) {
-                       if (sgpnt[i].length == 0 || workreq->use_sg > 
ATP870U_SCATTER) {
+               for (i = 0; i < scsi_sg_count(workreq); i++) {
+                       if (sgpnt[i].length == 0 || scsi_sg_count(workreq) > 
ATP870U_SCATTER) {
                                panic("Foooooooood fight!");
                        }
                        l += sgpnt[i].length;
@@ -938,10 +938,10 @@ oktosend:
         *      a linear chain.
         */
 
-       if (workreq->use_sg) {
-               sgpnt = (struct scatterlist *) workreq->request_buffer;
+       if (scsi_sg_count(workreq)) {
+               sgpnt = scsi_sglist(workreq->request_buffer);
                i = 0;
-               for (j = 0; j < workreq->use_sg; j++) {
+               for (j = 0; j < scsi_sg_count(workreq); j++) {
                        bttl = sg_dma_address(&sgpnt[j]);
                        l=sg_dma_len(&sgpnt[j]);
 #ifdef ED_DBGP         
diff -r 297d045c5da1 drivers/scsi/eata_pio.c
--- a/drivers/scsi/eata_pio.c   Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/eata_pio.c   Wed Jan 02 18:00:10 2008 +1100
@@ -402,14 +402,14 @@ static int eata_pio_queue(struct scsi_cm
        cp->cmd = cmd;
        cmd->host_scribble = (char *) &hd->ccb[y];
 
-       if (cmd->use_sg == 0) {
+       if (scsi_sg_count(cmd) == 0) {
                cmd->SCp.buffers_residual = 1;
                cmd->SCp.ptr = cmd->request_buffer;
                cmd->SCp.this_residual = cmd->request_bufflen;
                cmd->SCp.buffer = NULL;
        } else {
-               cmd->SCp.buffer = cmd->request_buffer;
-               cmd->SCp.buffers_residual = cmd->use_sg;
+               cmd->SCp.buffer = scsi_sglist(cmd);
+               cmd->SCp.buffers_residual = scsi_sg_count(cmd);
                cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                cmd->SCp.this_residual = cmd->SCp.buffer->length;
        }
diff -r 297d045c5da1 drivers/scsi/fd_mcs.c
--- a/drivers/scsi/fd_mcs.c     Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/fd_mcs.c     Wed Jan 02 18:00:10 2008 +1100
@@ -1107,11 +1107,11 @@ static int fd_mcs_queue(Scsi_Cmnd * SCpn
 
        /* Initialize static data */
 
-       if (current_SC->use_sg) {
-               current_SC->SCp.buffer = (struct scatterlist *) 
current_SC->request_buffer;
+       if (scsi_sg_count(current_SC)) {
+               current_SC->SCp.buffer = 
scsi_sglist(current_SC->request_buffer);
                current_SC->SCp.ptr = sg_virt(current_SC->SCp.buffer);
                current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
-               current_SC->SCp.buffers_residual = current_SC->use_sg - 1;
+               current_SC->SCp.buffers_residual = scsi_sg_count(current_SC) - 
1;
        } else {
                current_SC->SCp.ptr = (char *) current_SC->request_buffer;
                current_SC->SCp.this_residual = current_SC->request_bufflen;
diff -r 297d045c5da1 drivers/scsi/imm.c
--- a/drivers/scsi/imm.c        Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/imm.c        Wed Jan 02 18:00:10 2008 +1100
@@ -837,10 +837,9 @@ static int imm_engine(imm_struct *dev, s
 
                /* Phase 4 - Setup scatter/gather buffers */
        case 4:
-               if (cmd->use_sg) {
+               if (scsi_sg_count(cmd)) {
                        /* if many buffers are available, start filling the 
first */
-                       cmd->SCp.buffer =
-                           (struct scatterlist *) cmd->request_buffer;
+                       cmd->SCp.buffer = scsi_sglist(cmd);
                        cmd->SCp.this_residual = cmd->SCp.buffer->length;
                        cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                } else {
diff -r 297d045c5da1 drivers/scsi/in2000.c
--- a/drivers/scsi/in2000.c     Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/in2000.c     Wed Jan 02 18:00:10 2008 +1100
@@ -369,9 +369,9 @@ static int in2000_queuecommand(Scsi_Cmnd
  *  - SCp.phase records this command's SRCID_ER bit setting
  */
 
-       if (cmd->use_sg) {
-               cmd->SCp.buffer = (struct scatterlist *) cmd->request_buffer;
-               cmd->SCp.buffers_residual = cmd->use_sg - 1;
+       if (scsi_sg_count(cmd)) {
+               cmd->SCp.buffer = scsi_sglist(cmd->request_buffer);
+               cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1;
                cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                cmd->SCp.this_residual = cmd->SCp.buffer->length;
        } else {
diff -r 297d045c5da1 drivers/scsi/libsrp.c
--- a/drivers/scsi/libsrp.c     Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/libsrp.c     Wed Jan 02 18:00:10 2008 +1100
@@ -192,15 +192,15 @@ static int srp_direct_data(struct scsi_c
 
        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);
 
-               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);
@@ -229,7 +229,7 @@ static int srp_indirect_data(struct scsi
 
        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,
@@ -268,9 +268,9 @@ static int srp_indirect_data(struct scsi
 
 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;
                }
diff -r 297d045c5da1 drivers/scsi/pcmcia/nsp_cs.c
--- a/drivers/scsi/pcmcia/nsp_cs.c      Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/pcmcia/nsp_cs.c      Wed Jan 02 18:00:10 2008 +1100
@@ -233,11 +233,11 @@ static int nsp_queuecommand(struct scsi_
           SCp.buffer           : next buffer
           SCp.buffers_residual : left buffers in list
           SCp.phase            : current state of the command */
-       if (SCpnt->use_sg) {
-               SCpnt->SCp.buffer           = (struct scatterlist *) 
SCpnt->request_buffer;
+       if (scsi_sg_count(SCpnt)) {
+               SCpnt->SCp.buffer           = scsi_sglist(SCpnt);
                SCpnt->SCp.ptr              = BUFFER_ADDR;
                SCpnt->SCp.this_residual    = SCpnt->SCp.buffer->length;
-               SCpnt->SCp.buffers_residual = SCpnt->use_sg - 1;
+               SCpnt->SCp.buffers_residual = scsi_sg_count(SCpnt) - 1;
        } else {
                SCpnt->SCp.ptr              = (char *) SCpnt->request_buffer;
                SCpnt->SCp.this_residual    = SCpnt->request_bufflen;
@@ -911,7 +911,7 @@ static int nsp_nexus(struct scsi_cmnd *S
        nsp_index_write(base, SYNCREG,  sync->SyncRegister);
        nsp_index_write(base, ACKWIDTH, sync->AckWidth);
 
-       if (SCpnt->use_sg    == 0        ||
+       if (scsi_sg_count(SCpnt) == 0    ||
            SCpnt->resid % 4 != 0        ||
            SCpnt->resid     <= PAGE_SIZE ) {
                data->TransferMode = MODE_IO8;
diff -r 297d045c5da1 drivers/scsi/ppa.c
--- a/drivers/scsi/ppa.c        Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/ppa.c        Wed Jan 02 18:00:10 2008 +1100
@@ -750,9 +750,9 @@ static int ppa_engine(ppa_struct *dev, s
                cmd->SCp.phase++;
 
        case 4:         /* Phase 4 - Setup scatter/gather buffers */
-               if (cmd->use_sg) {
+               if (scsi_sg_count(cmd)) {
                        /* if many buffers are available, start filling the 
first */
-                       cmd->SCp.buffer = (struct scatterlist *) 
cmd->request_buffer;
+                       cmd->SCp.buffer = scsi_sglist(cmd);
                        cmd->SCp.this_residual = cmd->SCp.buffer->length;
                        cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                } else {
diff -r 297d045c5da1 drivers/scsi/qlogicpti.c
--- a/drivers/scsi/qlogicpti.c  Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/qlogicpti.c  Wed Jan 02 18:00:10 2008 +1100
@@ -871,11 +871,11 @@ static inline int load_cmd(struct scsi_c
        struct scatterlist *sg, *s;
        int i, n;
 
-       if (Cmnd->use_sg) {
+       if (scsi_sg_count(Cmnd)) {
                int sg_count;
 
-               sg = (struct scatterlist *) Cmnd->request_buffer;
-               sg_count = sbus_map_sg(qpti->sdev, sg, Cmnd->use_sg, 
Cmnd->sc_data_direction);
+               sg = scsi_sglist(Cmnd);
+               sg_count = sbus_map_sg(qpti->sdev, sg, scsi_sg_count(Cmnd), 
Cmnd->sc_data_direction);
 
                ds = cmd->dataseg;
                cmd->segment_cnt = sg_count;
@@ -1159,10 +1159,10 @@ static struct scsi_cmnd *qlogicpti_intr_
                else
                        Cmnd->result = DID_ERROR << 16;
 
-               if (Cmnd->use_sg) {
+               if (scsi_sg_count(Cmnd)) {
                        sbus_unmap_sg(qpti->sdev,
-                                     (struct scatterlist 
*)Cmnd->request_buffer,
-                                     Cmnd->use_sg,
+                                     scsi_sglist(Cmnd->request_buffer),
+                                     scsi_sg_count(Cmnd),
                                      Cmnd->sc_data_direction);
                } else if (Cmnd->request_bufflen) {
                        sbus_unmap_single(qpti->sdev,
diff -r 297d045c5da1 drivers/scsi/scsi_debug.c
--- a/drivers/scsi/scsi_debug.c Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/scsi_debug.c Wed Jan 02 18:00:10 2008 +1100
@@ -605,12 +605,10 @@ static int fill_from_dev_buffer(struct s
 
        if (0 == scp->request_bufflen)
                return 0;
-       if (NULL == scp->request_buffer)
-               return (DID_ERROR << 16);
        if (! ((scp->sc_data_direction == DMA_BIDIRECTIONAL) ||
              (scp->sc_data_direction == DMA_FROM_DEVICE)))
                return (DID_ERROR << 16);
-       if (0 == scp->use_sg) {
+       if (0 == scsi_sg_count(scp)) {
                req_len = scp->request_bufflen;
                act_len = (req_len < arr_len) ? req_len : arr_len;
                memcpy(scp->request_buffer, arr, act_len);
@@ -620,9 +618,11 @@ static int fill_from_dev_buffer(struct s
                        scp->resid = req_len - act_len;
                return 0;
        }
+       if (!scsi_sglist(scp))
+               return (DID_ERROR << 16);
        active = 1;
        req_len = act_len = 0;
-       scsi_for_each_sg(scp, sg, scp->use_sg, k) {
+       scsi_for_each_sg(scp, sg, scsi_sg_count(scp), k) {
                if (active) {
                        kaddr = (unsigned char *)
                                kmap_atomic(sg_page(sg), KM_USER0);
@@ -658,12 +658,12 @@ static int fetch_to_dev_buffer(struct sc
 
        if (0 == scp->request_bufflen)
                return 0;
-       if (NULL == scp->request_buffer)
+       if (NULL == scsi_sglist(scp))
                return -1;
        if (! ((scp->sc_data_direction == DMA_BIDIRECTIONAL) ||
              (scp->sc_data_direction == DMA_TO_DEVICE)))
                return -1;
-       if (0 == scp->use_sg) {
+       if (0 == scsi_sg_count(scp)) {
                req_len = scp->request_bufflen;
                len = (req_len < max_arr_len) ? req_len : max_arr_len;
                memcpy(arr, scp->request_buffer, len);
@@ -671,7 +671,7 @@ static int fetch_to_dev_buffer(struct sc
        }
        sg = scsi_sglist(scp);
        req_len = fin = 0;
-       for (k = 0; k < scp->use_sg; ++k, sg = sg_next(sg)) {
+       for (k = 0; k < scsi_sg_count(scp); ++k, sg = sg_next(sg)) {
                kaddr = (unsigned char *)kmap_atomic(sg_page(sg), KM_USER0);
                if (NULL == kaddr)
                        return -1;
diff -r 297d045c5da1 drivers/scsi/seagate.c
--- a/drivers/scsi/seagate.c    Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/seagate.c    Wed Jan 02 18:00:10 2008 +1100
@@ -991,7 +991,7 @@ connect_loop:
 
                /* Establish current pointers.  Take into account scatter / 
gather */
 
-               if ((nobuffs = SCint->use_sg)) {
+               if ((nobuffs = scsi_sg_count(SCint))) {
 #if (DEBUG & DEBUG_SG)
                        {
                                int i;
@@ -1004,7 +1004,7 @@ connect_loop:
                        }
 #endif
 
-                       buffer = (struct scatterlist *) SCint->request_buffer;
+                       buffer = scsi_sglist(SCint->request_buffer);
                        len = buffer->length;
                        data = sg_virt(buffer);
                } else {
diff -r 297d045c5da1 drivers/scsi/sr.c
--- a/drivers/scsi/sr.c Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/sr.c Wed Jan 02 18:00:10 2008 +1100
@@ -366,12 +366,12 @@ static int sr_prep_fn(struct request_que
        }
 
        {
-               struct scatterlist *sg = SCpnt->request_buffer;
+               struct scatterlist *sg = scsi_sglist(SCpnt);
                int i, size = 0;
-               for (i = 0; i < SCpnt->use_sg; i++)
+               for (i = 0; i < scsi_sg_count(SCpnt); i++)
                        size += sg[i].length;
 
-               if (size != SCpnt->request_bufflen && SCpnt->use_sg) {
+               if (size != SCpnt->request_bufflen && scsi_sg_count(SCpnt)) {
                        scmd_printk(KERN_ERR, SCpnt,
                                "mismatch count %d, bytes %d\n",
                                size, SCpnt->request_bufflen);
diff -r 297d045c5da1 drivers/scsi/sun3_NCR5380.c
--- a/drivers/scsi/sun3_NCR5380.c       Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/sun3_NCR5380.c       Wed Jan 02 18:00:10 2008 +1100
@@ -515,9 +515,9 @@ static __inline__ void initialize_SCp(st
      * various queues are valid.
      */
 
-    if (cmd->use_sg) {
-       cmd->SCp.buffer = (struct scatterlist *) cmd->request_buffer;
-       cmd->SCp.buffers_residual = cmd->use_sg - 1;
+    if (scsi_sg_count(cmd)) {
+       cmd->SCp.buffer = scsi_sglist(cmd);
+       cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1;
        cmd->SCp.ptr = (char *) SGADDR(cmd->SCp.buffer);
        cmd->SCp.this_residual = cmd->SCp.buffer->length;
 
diff -r 297d045c5da1 drivers/scsi/sun3x_esp.c
--- a/drivers/scsi/sun3x_esp.c  Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/sun3x_esp.c  Wed Jan 02 18:00:10 2008 +1100
@@ -346,8 +346,8 @@ static void dma_mmu_release_scsi_one (st
 
 static void dma_mmu_release_scsi_sgl (struct NCR_ESP *esp, Scsi_Cmnd *sp)
 {
-    int sz = sp->use_sg - 1;
-    struct scatterlist *sg = (struct scatterlist *)sp->request_buffer;
+    int sz = scsi_sg_count(sp) - 1;
+    struct scatterlist *sg = scsi_sglist(sp);
                         
     while(sz >= 0) {
         dvma_unmap((char *)sg[sz].dma_address);
diff -r 297d045c5da1 drivers/scsi/wd33c93.c
--- a/drivers/scsi/wd33c93.c    Wed Jan 02 17:18:59 2008 +1100
+++ b/drivers/scsi/wd33c93.c    Wed Jan 02 18:00:10 2008 +1100
@@ -407,9 +407,9 @@ wd33c93_queuecommand(struct scsi_cmnd *c
  *  - SCp.phase records this command's SRCID_ER bit setting
  */
 
-       if (cmd->use_sg) {
-               cmd->SCp.buffer = (struct scatterlist *) cmd->request_buffer;
-               cmd->SCp.buffers_residual = cmd->use_sg - 1;
+       if (scsi_sgcount(cmd)) {
+               cmd->SCp.buffer = scsi_sg_list(cmd);
+               cmd->SCp.buffers_residual = scsi_sgcount(cmd) - 1;
                cmd->SCp.ptr = sg_virt(cmd->SCp.buffer);
                cmd->SCp.this_residual = cmd->SCp.buffer->length;
        } else {
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to