if (rval == QLA_SUCCESS) {
                dmp_reg = ®->flash_address;
-               for (cnt = 0; cnt < sizeof(fw->pbiu_reg) / 2; cnt++, dmp_reg++)
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->pbiu_reg); cnt++, dmp_reg++)
                        fw->pbiu_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
                dmp_reg = ®->u.isp2300.req_q_in;
-               for (cnt = 0; cnt < sizeof(fw->risc_host_reg) / 2;
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->risc_host_reg);
                    cnt++, dmp_reg++)
                        fw->risc_host_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
                dmp_reg = ®->u.isp2300.mailbox0;
-               for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2;
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->mailbox_reg);
                    cnt++, dmp_reg++)
                        fw->mailbox_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
 
                WRT_REG_WORD(®->ctrl_status, 0x00);
                dmp_reg = ®->risc_hw;
-               for (cnt = 0; cnt < sizeof(fw->risc_hdw_reg) / 2;
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->risc_hdw_reg);
                    cnt++, dmp_reg++)
                        fw->risc_hdw_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
        /* Get RISC SRAM. */
        if (rval == QLA_SUCCESS)
                rval = qla2xxx_dump_ram(ha, 0x800, fw->risc_ram,
-                   sizeof(fw->risc_ram) / 2, &nxt);
+                                       ARRAY_SIZE(fw->risc_ram), &nxt);
 
        /* Get stack SRAM. */
        if (rval == QLA_SUCCESS)
                rval = qla2xxx_dump_ram(ha, 0x10000, fw->stack_ram,
-                   sizeof(fw->stack_ram) / 2, &nxt);
+                                       ARRAY_SIZE(fw->stack_ram), &nxt);
 
        /* Get data SRAM. */
        if (rval == QLA_SUCCESS)
        }
        if (rval == QLA_SUCCESS) {
                dmp_reg = ®->flash_address;
-               for (cnt = 0; cnt < sizeof(fw->pbiu_reg) / 2; cnt++, dmp_reg++)
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->pbiu_reg); cnt++, dmp_reg++)
                        fw->pbiu_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
                dmp_reg = ®->u.isp2100.mailbox0;
                }
 
                dmp_reg = ®->u.isp2100.unused_2[0];
-               for (cnt = 0; cnt < sizeof(fw->dma_reg) / 2; cnt++, dmp_reg++)
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->dma_reg); cnt++, dmp_reg++)
                        fw->dma_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
                WRT_REG_WORD(®->ctrl_status, 0x00);
                dmp_reg = ®->risc_hw;
-               for (cnt = 0; cnt < sizeof(fw->risc_hdw_reg) / 2; cnt++, dmp_reg++)
+               for (cnt = 0; cnt < ARRAY_SIZE(fw->risc_hdw_reg); cnt++, dmp_reg++)
                        fw->risc_hdw_reg[cnt] = htons(RD_REG_WORD(dmp_reg));
 
                WRT_REG_WORD(®->pcr, 0x2000);
                WRT_MAILBOX_REG(ha, reg, 0, MBC_READ_RAM_WORD);
                clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
        }
-       for (cnt = 0; cnt < sizeof(fw->risc_ram) / 2 && rval == QLA_SUCCESS;
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->risc_ram) && rval == QLA_SUCCESS;
            cnt++, risc_address++) {
                WRT_MAILBOX_REG(ha, reg, 1, risc_address);
                WRT_REG_WORD(®->hccr, HCCR_SET_HOST_INT);
 
        /* Host interface registers. */
        dmp_reg = ®->flash_addr;
-       for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++, dmp_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->host_reg); cnt++, dmp_reg++)
                fw->host_reg[cnt] = htonl(RD_REG_DWORD(dmp_reg));
 
        /* Disable interrupts. */
 
        /* Mailbox registers. */
        mbx_reg = ®->mailbox0;
-       for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2; cnt++, mbx_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->mailbox_reg); cnt++, mbx_reg++)
                fw->mailbox_reg[cnt] = htons(RD_REG_WORD(mbx_reg));
 
        /* Transfer sequence registers. */
 
        /* Host interface registers. */
        dmp_reg = ®->flash_addr;
-       for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++, dmp_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->host_reg); cnt++, dmp_reg++)
                fw->host_reg[cnt] = htonl(RD_REG_DWORD(dmp_reg));
 
        /* Disable interrupts. */
 
        /* Mailbox registers. */
        mbx_reg = ®->mailbox0;
-       for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2; cnt++, mbx_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->mailbox_reg); cnt++, mbx_reg++)
                fw->mailbox_reg[cnt] = htons(RD_REG_WORD(mbx_reg));
 
        /* Transfer sequence registers. */
 
        /* Host interface registers. */
        dmp_reg = ®->flash_addr;
-       for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++, dmp_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->host_reg); cnt++, dmp_reg++)
                fw->host_reg[cnt] = htonl(RD_REG_DWORD(dmp_reg));
 
        /* Disable interrupts. */
 
        /* Mailbox registers. */
        mbx_reg = ®->mailbox0;
-       for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2; cnt++, mbx_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->mailbox_reg); cnt++, mbx_reg++)
                fw->mailbox_reg[cnt] = htons(RD_REG_WORD(mbx_reg));
 
        /* Transfer sequence registers. */
 
        /* Host interface registers. */
        dmp_reg = ®->flash_addr;
-       for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++, dmp_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->host_reg); cnt++, dmp_reg++)
                fw->host_reg[cnt] = htonl(RD_REG_DWORD(dmp_reg));
 
        /* Disable interrupts. */
 
        /* Mailbox registers. */
        mbx_reg = ®->mailbox0;
-       for (cnt = 0; cnt < sizeof(fw->mailbox_reg) / 2; cnt++, mbx_reg++)
+       for (cnt = 0; cnt < ARRAY_SIZE(fw->mailbox_reg); cnt++, mbx_reg++)
                fw->mailbox_reg[cnt] = htons(RD_REG_WORD(mbx_reg));
 
        /* Transfer sequence registers. */