X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fpatches%2Fsuse-2.6.27.25%2Fpatches.drivers%2Fqla2xxx-correct-endianness-issue-during-flash;fp=src%2Fpatches%2Fsuse-2.6.27.25%2Fpatches.drivers%2Fqla2xxx-correct-endianness-issue-during-flash;h=7ce80caa1657de77fe70752d4b409735700c6b7d;hb=2e4178199a697105e827d68d66ab7101acd1dd8c;hp=0000000000000000000000000000000000000000;hpb=df2a9a46c7db6362520343d6ec70fbcfe40b2795;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/src/patches/suse-2.6.27.25/patches.drivers/qla2xxx-correct-endianness-issue-during-flash b/src/patches/suse-2.6.27.25/patches.drivers/qla2xxx-correct-endianness-issue-during-flash new file mode 100644 index 0000000000..7ce80caa16 --- /dev/null +++ b/src/patches/suse-2.6.27.25/patches.drivers/qla2xxx-correct-endianness-issue-during-flash @@ -0,0 +1,48 @@ +From ccac18563cb9ba20a4afc722878804bcf2936170 Mon Sep 17 00:00:00 2001 +From: Andrew Vasquez +Date: Mon, 16 Feb 2009 08:19:31 -0800 +Subject: qla2xxx: Correct endianness issue during flash manipulation. +References: bnc#476206 + +The flash data was incorrectly being converted (cpu_to_le32()) +when using the bulk-flash-write mailbox command (ISP25xx and +above). + +Signed-off-by: Andrew Vasquez +Signed-off-by: Hannes Reinecke +--- + drivers/scsi/qla2xxx/qla_sup.c | 7 ++----- + 1 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c +index 6729a39..a0b5ece 100644 +--- a/drivers/scsi/qla2xxx/qla_sup.c ++++ b/drivers/scsi/qla2xxx/qla_sup.c +@@ -957,12 +957,11 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr, + uint32_t dwords) + { + int ret; +- uint32_t liter, miter; ++ uint32_t liter; + uint32_t sec_mask, rest_addr; + uint32_t fdata, findex; + dma_addr_t optrom_dma; + void *optrom = NULL; +- uint32_t *s, *d; + + ret = QLA_SUCCESS; + +@@ -1010,9 +1009,7 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr, + /* Go with burst-write. */ + if (optrom && (liter + OPTROM_BURST_DWORDS) <= dwords) { + /* Copy data to DMA'ble buffer. */ +- for (miter = 0, s = optrom, d = dwptr; +- miter < OPTROM_BURST_DWORDS; miter++, s++, d++) +- *s = cpu_to_le32(*d); ++ memcpy(optrom, dwptr, OPTROM_BURST_SIZE); + + ret = qla2x00_load_ram(ha, optrom_dma, + flash_data_to_access_addr(faddr), +-- +1.6.0.4.781.gf2070 +