Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bc1ebfba1a3a27122462fd342d11216e3faea53f
Commit:     bc1ebfba1a3a27122462fd342d11216e3faea53f
Parent:     fea97f9ab26a17c29eadc102c04b88776d6262d4
Author:     FUJITA Tomonori <[EMAIL PROTECTED]>
AuthorDate: Mon May 14 19:24:01 2007 +0900
Committer:  James Bottomley <[EMAIL PROTECTED]>
CommitDate: Sat May 26 19:21:09 2007 -0500

    [SCSI] qlogicfas408: convert to use the data buffer accessors
    
    - remove the unnecessary map_single path.
    
    - convert to use the new accessors for the sg lists and the
    parameters.
    
    Jens Axboe <[EMAIL PROTECTED]> did the for_each_sg cleanup.
    
    Signed-off-by: FUJITA Tomonori <[EMAIL PROTECTED]>
    Signed-off-by: James Bottomley <[EMAIL PROTECTED]>
---
 drivers/scsi/qlogicfas408.c |   30 +++++++++++-------------------
 1 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/drivers/scsi/qlogicfas408.c b/drivers/scsi/qlogicfas408.c
index 2e7db18..2bfbf26 100644
--- a/drivers/scsi/qlogicfas408.c
+++ b/drivers/scsi/qlogicfas408.c
@@ -265,8 +265,6 @@ static unsigned int ql_pcmd(struct scsi_cmnd *cmd)
        unsigned int message;   /* scsi returned message */
        unsigned int phase;     /* recorded scsi phase */
        unsigned int reqlen;    /* total length of transfer */
-       struct scatterlist *sglist;     /* scatter-gather list pointer */
-       unsigned int sgcount;   /* sg counter */
        char *buf;
        struct qlogicfas408_priv *priv = get_priv_by_cmd(cmd);
        int qbase = priv->qbase;
@@ -301,9 +299,10 @@ static unsigned int ql_pcmd(struct scsi_cmnd *cmd)
        if (inb(qbase + 7) & 0x1f)      /* if some bytes in fifo */
                outb(1, qbase + 3);     /* clear fifo */
        /* note that request_bufflen is the total xfer size when sg is used */
-       reqlen = cmd->request_bufflen;
+       reqlen = scsi_bufflen(cmd);
        /* note that it won't work if transfers > 16M are requested */
        if (reqlen && !((phase = inb(qbase + 4)) & 6)) {        /* data phase */
+               struct scatterlist *sg;
                rtrc(2)
                outb(reqlen, qbase);    /* low-mid xfer cnt */
                outb(reqlen >> 8, qbase + 1);   /* low-mid xfer cnt */
@@ -311,23 +310,16 @@ static unsigned int ql_pcmd(struct scsi_cmnd *cmd)
                outb(0x90, qbase + 3);  /* command do xfer */
                /* PIO pseudo DMA to buffer or sglist */
                REG1;
-               if (!cmd->use_sg)
-                       ql_pdma(priv, phase, cmd->request_buffer,
-                               cmd->request_bufflen);
-               else {
-                       sgcount = cmd->use_sg;
-                       sglist = cmd->request_buffer;
-                       while (sgcount--) {
-                               if (priv->qabort) {
-                                       REG0;
-                                       return ((priv->qabort == 1 ?
-                                               DID_ABORT : DID_RESET) << 16);
-                               }
-                               buf = page_address(sglist->page) + 
sglist->offset;
-                               if (ql_pdma(priv, phase, buf, sglist->length))
-                                       break;
-                               sglist++;
+
+               scsi_for_each_sg(cmd, sg, scsi_sg_count(cmd), i) {
+                       if (priv->qabort) {
+                               REG0;
+                               return ((priv->qabort == 1 ?
+                                        DID_ABORT : DID_RESET) << 16);
                        }
+                       buf = page_address(sg->page) + sg->offset;
+                       if (ql_pdma(priv, phase, buf, sg->length))
+                               break;
                }
                REG0;
                rtrc(2)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to