[SCSI] qla2xxx: Properly handle 32 bit mailbox register for ISPFX00.
authorSaurav Kashyap <saurav.kashyap@qlogic.com>
Wed, 26 Feb 2014 09:15:03 +0000 (04:15 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 15 Mar 2014 17:17:49 +0000 (10:17 -0700)
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla2xxx/qla_mr.c

index 9839da866fead4e63990aec6251edb1cf40b32a9..ed44ec68c04db66173a9b5b8e69aa7a689fd9437 100644 (file)
@@ -2916,9 +2916,9 @@ qlafx00_async_event(scsi_qla_host_t *vha)
                break;
 
        case QLAFX00_MBA_PORT_UPDATE:           /* Port database update */
-               ha->aenmb[1] = RD_REG_WORD(&reg->aenmailbox1);
-               ha->aenmb[2] = RD_REG_WORD(&reg->aenmailbox2);
-               ha->aenmb[3] = RD_REG_WORD(&reg->aenmailbox3);
+               ha->aenmb[1] = RD_REG_DWORD(&reg->aenmailbox1);
+               ha->aenmb[2] = RD_REG_DWORD(&reg->aenmailbox2);
+               ha->aenmb[3] = RD_REG_DWORD(&reg->aenmailbox3);
                ql_dbg(ql_dbg_async, vha, 0x5077,
                    "Asynchronous port Update received "
                    "aenmb[0]: %x, aenmb[1]: %x, aenmb[2]: %x, aenmb[3]: %x\n",
@@ -2975,7 +2975,7 @@ static void
 qlafx00_mbx_completion(scsi_qla_host_t *vha, uint32_t mb0)
 {
        uint16_t        cnt;
-       uint16_t __iomem *wptr;
+       uint32_t __iomem *wptr;
        struct qla_hw_data *ha = vha->hw;
        struct device_reg_fx00 __iomem *reg = &ha->iobase->ispfx00;
 
@@ -2985,10 +2985,10 @@ qlafx00_mbx_completion(scsi_qla_host_t *vha, uint32_t mb0)
        /* Load return mailbox registers. */
        ha->flags.mbox_int = 1;
        ha->mailbox_out32[0] = mb0;
-       wptr = (uint16_t __iomem *)&reg->mailbox17;
+       wptr = (uint32_t __iomem *)&reg->mailbox17;
 
        for (cnt = 1; cnt < ha->mbx_count; cnt++) {
-               ha->mailbox_out32[cnt] = RD_REG_WORD(wptr);
+               ha->mailbox_out32[cnt] = RD_REG_DWORD(wptr);
                wptr++;
        }
 }