[SCSI] initio: fix big endian problems for auto request sense
authorGrant Grundler <grundler@parisc-linux.org>
Sat, 5 Apr 2008 16:14:22 +0000 (10:14 -0600)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 11 Apr 2008 21:16:28 +0000 (17:16 -0400)
Most of the cpu_to_le32() usage was wrong in one way or another.
Compiler warning on BE builds was just the tip of the iceberg.
This patch attempts to make this driver work on BE though I
don't have the HW to test it.

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/initio.c

index 0cc8868ea35d03de01ebfbf25df8ab25f634f5b8..dbae3fdb85065c92819443b0046c3fc81e5785a6 100644 (file)
@@ -2581,8 +2581,8 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
        /* Map the sense buffer into bus memory */
        dma_addr = dma_map_single(&host->pci_dev->dev, cmnd->sense_buffer,
                                  SENSE_SIZE, DMA_FROM_DEVICE);
-       cblk->senseptr = cpu_to_le32((u32)dma_addr);
-       cblk->senselen = cpu_to_le32(SENSE_SIZE);
+       cblk->senseptr = (u32)dma_addr;
+       cblk->senselen = SENSE_SIZE;
        cmnd->SCp.ptr = (char *)(unsigned long)dma_addr;
        cblk->cdblen = cmnd->cmd_len;
 
@@ -2606,7 +2606,7 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
                dma_addr = dma_map_single(&host->pci_dev->dev, &cblk->sglist[0],
                                          sizeof(struct sg_entry) * TOTAL_SG_ENTRY,
                                          DMA_BIDIRECTIONAL);
-               cblk->bufptr = cpu_to_le32((u32)dma_addr);
+               cblk->bufptr = (u32)dma_addr;
                cmnd->SCp.dma_handle = dma_addr;
 
                cblk->sglen = nseg;
@@ -2616,7 +2616,8 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
                sg = &cblk->sglist[0];
                scsi_for_each_sg(cmnd, sglist, cblk->sglen, i) {
                        sg->data = cpu_to_le32((u32)sg_dma_address(sglist));
-                       total_len += sg->len = cpu_to_le32((u32)sg_dma_len(sglist));
+                       sg->len = cpu_to_le32((u32)sg_dma_len(sglist));
+                       total_len += sg_dma_len(sglist);
                        ++sg;
                }