The 'data_addr' field is accessed by the board, and needs
to be kept in little endian format.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 drivers/scsi/advansys.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 9e09008..d9052f3 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -8232,8 +8232,8 @@ AscPutReadySgListQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q 
*scsiq, uchar q_no)
        sg_head = scsiq->sg_head;
        saved_data_addr = scsiq->q1.data_addr;
        saved_data_cnt = scsiq->q1.data_cnt;
-       scsiq->q1.data_addr = sg_head->sg_list[0].addr;
-       scsiq->q1.data_cnt = sg_head->sg_list[0].bytes;
+       scsiq->q1.data_addr = cpu_to_le32(sg_head->sg_list[0].addr);
+       scsiq->q1.data_cnt = cpu_to_le32(sg_head->sg_list[0].bytes);
 #if CC_VERY_LONG_SG_LIST
        /*
         * If sg_head->entry_cnt is greater than ASC_MAX_SG_LIST
@@ -8469,8 +8469,8 @@ static int AscExeScsiQueue(ASC_DVC_VAR *asc_dvc, 
ASC_SCSI_Q *scsiq)
                }
 #endif /* !CC_VERY_LONG_SG_LIST */
                if (sg_entry_cnt == 1) {
-                       scsiq->q1.data_addr = sg_head->sg_list[0].addr;
-                       scsiq->q1.data_cnt = sg_head->sg_list[0].bytes;
+                       scsiq->q1.data_addr = 
cpu_to_le32(sg_head->sg_list[0].addr);
+                       scsiq->q1.data_cnt = 
cpu_to_le32(sg_head->sg_list[0].bytes);
                        scsiq->q1.cntl &= ~(QC_SG_HEAD | QC_SG_SWAP_QUEUE);
                }
                sg_entry_cnt_minus_one = sg_entry_cnt - 1;
-- 
1.8.5.2

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to