* [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2].
@ 2008-04-24 22:19 Andrew Vasquez
2008-04-24 22:21 ` [PATCH 01/10] qla2xxx: Collapse RISC-RAM retrieval code during a firmware-dump Andrew Vasquez
` (10 more replies)
0 siblings, 11 replies; 15+ messages in thread
From: Andrew Vasquez @ 2008-04-24 22:19 UTC (permalink / raw)
To: Linux SCSI Mailing List, James Bottomley; +Cc: Seokmann Ju, Andrew Vasquez
This patchset contains fixes/updates for 2.6.26.
drivers/scsi/qla2xxx/qla_dbg.c | 394 +++++++++++++-----------------------
drivers/scsi/qla2xxx/qla_fw.h | 26 +--
drivers/scsi/qla2xxx/qla_gbl.h | 4 -
drivers/scsi/qla2xxx/qla_gs.c | 4 +-
drivers/scsi/qla2xxx/qla_init.c | 2 +-
drivers/scsi/qla2xxx/qla_isr.c | 4 +-
drivers/scsi/qla2xxx/qla_mbx.c | 19 +-
drivers/scsi/qla2xxx/qla_os.c | 12 +-
drivers/scsi/qla2xxx/qla_version.h | 2 +-
9 files changed, 170 insertions(+), 297 deletions(-)
here's the commits:
- Collapse RISC-RAM retrieval code during a firmware-dump.
- Wakeup DPC thread to process any deferred-work requests.
- Correct ISP84XX verify-chip response handling.
- Correct SRB usage-after-completion/free issues.
- Re-register FDMI information after a LIP.
- qla_os.c, make 2 functions static
- make qla2x00_issue_iocb_timeout() static
- Correct misc. endian and byte-ordering issues.
- Correct regression in relogin code.
- Update version number to 8.02.01-k2.
Regards,
Andrew Vasquez
QLogic Corporation
^ permalink raw reply [flat|nested] 15+ messages in thread* [PATCH 01/10] qla2xxx: Collapse RISC-RAM retrieval code during a firmware-dump. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 02/10] qla2xxx: Wakeup DPC thread to process any deferred-work requests Andrew Vasquez ` (9 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju Use the more efficient read-DMA'ble-buffer mailbox commands rather than reading a single word/dword at a time. We also remove a bulk of the duplicate mailbox command-handling codes in favor of more generic read-memory() routines (qla2xxx_dump_ram() and qla24xx_dump_ram()). Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_dbg.c | 394 +++++++++++++++------------------------- 1 files changed, 143 insertions(+), 251 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c index 9d12d9f..cbef785 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.c +++ b/drivers/scsi/qla2xxx/qla_dbg.c @@ -38,78 +38,38 @@ qla2xxx_copy_queues(scsi_qla_host_t *ha, void *ptr) } static int -qla24xx_dump_memory(scsi_qla_host_t *ha, uint32_t *code_ram, - uint32_t cram_size, uint32_t *ext_mem, void **nxt) +qla24xx_dump_ram(scsi_qla_host_t *ha, uint32_t addr, uint32_t *ram, + uint32_t ram_dwords, void **nxt) { int rval; - uint32_t cnt, stat, timer, risc_address, ext_mem_cnt; - uint16_t mb[4]; + uint32_t cnt, stat, timer, dwords, idx; + uint16_t mb0; struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; + dma_addr_t dump_dma = ha->gid_list_dma; + uint32_t *dump = (uint32_t *)ha->gid_list; rval = QLA_SUCCESS; - risc_address = ext_mem_cnt = 0; - memset(mb, 0, sizeof(mb)); + mb0 = 0; - /* Code RAM. */ - risc_address = 0x20000; - WRT_REG_WORD(®->mailbox0, MBC_READ_RAM_EXTENDED); + WRT_REG_WORD(®->mailbox0, MBC_DUMP_RISC_RAM_EXTENDED); clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); - for (cnt = 0; cnt < cram_size / 4 && rval == QLA_SUCCESS; - cnt++, risc_address++) { - WRT_REG_WORD(®->mailbox1, LSW(risc_address)); - WRT_REG_WORD(®->mailbox8, MSW(risc_address)); - RD_REG_WORD(®->mailbox8); - WRT_REG_DWORD(®->hccr, HCCRX_SET_HOST_INT); - - for (timer = 6000000; timer; timer--) { - /* Check for pending interrupts. */ - stat = RD_REG_DWORD(®->host_status); - if (stat & HSRX_RISC_INT) { - stat &= 0xff; + dwords = GID_LIST_SIZE / 4; + for (cnt = 0; cnt < ram_dwords && rval == QLA_SUCCESS; + cnt += dwords, addr += dwords) { + if (cnt + dwords > ram_dwords) + dwords = ram_dwords - cnt; - if (stat == 0x1 || stat == 0x2 || - stat == 0x10 || stat == 0x11) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); + WRT_REG_WORD(®->mailbox1, LSW(addr)); + WRT_REG_WORD(®->mailbox8, MSW(addr)); - mb[0] = RD_REG_WORD(®->mailbox0); - mb[2] = RD_REG_WORD(®->mailbox2); - mb[3] = RD_REG_WORD(®->mailbox3); + WRT_REG_WORD(®->mailbox2, MSW(dump_dma)); + WRT_REG_WORD(®->mailbox3, LSW(dump_dma)); + WRT_REG_WORD(®->mailbox6, MSW(MSD(dump_dma))); + WRT_REG_WORD(®->mailbox7, LSW(MSD(dump_dma))); - WRT_REG_DWORD(®->hccr, - HCCRX_CLR_RISC_INT); - RD_REG_DWORD(®->hccr); - break; - } - - /* Clear this intr; it wasn't a mailbox intr */ - WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); - RD_REG_DWORD(®->hccr); - } - udelay(5); - } - - if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) { - rval = mb[0] & MBS_MASK; - code_ram[cnt] = htonl((mb[3] << 16) | mb[2]); - } else { - rval = QLA_FUNCTION_FAILED; - } - } - - if (rval == QLA_SUCCESS) { - /* External Memory. */ - risc_address = 0x100000; - ext_mem_cnt = ha->fw_memory_size - 0x100000 + 1; - WRT_REG_WORD(®->mailbox0, MBC_READ_RAM_EXTENDED); - clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); - } - for (cnt = 0; cnt < ext_mem_cnt && rval == QLA_SUCCESS; - cnt++, risc_address++) { - WRT_REG_WORD(®->mailbox1, LSW(risc_address)); - WRT_REG_WORD(®->mailbox8, MSW(risc_address)); - RD_REG_WORD(®->mailbox8); + WRT_REG_WORD(®->mailbox4, MSW(dwords)); + WRT_REG_WORD(®->mailbox5, LSW(dwords)); WRT_REG_DWORD(®->hccr, HCCRX_SET_HOST_INT); for (timer = 6000000; timer; timer--) { @@ -123,9 +83,7 @@ qla24xx_dump_memory(scsi_qla_host_t *ha, uint32_t *code_ram, set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); - mb[0] = RD_REG_WORD(®->mailbox0); - mb[2] = RD_REG_WORD(®->mailbox2); - mb[3] = RD_REG_WORD(®->mailbox3); + mb0 = RD_REG_WORD(®->mailbox0); WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); @@ -141,17 +99,34 @@ qla24xx_dump_memory(scsi_qla_host_t *ha, uint32_t *code_ram, } if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) { - rval = mb[0] & MBS_MASK; - ext_mem[cnt] = htonl((mb[3] << 16) | mb[2]); + rval = mb0 & MBS_MASK; + for (idx = 0; idx < dwords; idx++) + ram[cnt + idx] = swab32(dump[idx]); } else { rval = QLA_FUNCTION_FAILED; } } - *nxt = rval == QLA_SUCCESS ? &ext_mem[cnt]: NULL; + *nxt = rval == QLA_SUCCESS ? &ram[cnt]: NULL; return rval; } +static int +qla24xx_dump_memory(scsi_qla_host_t *ha, uint32_t *code_ram, + uint32_t cram_size, void **nxt) +{ + int rval; + + /* Code RAM. */ + rval = qla24xx_dump_ram(ha, 0x20000, code_ram, cram_size / 4, nxt); + if (rval != QLA_SUCCESS) + return rval; + + /* External Memory. */ + return qla24xx_dump_ram(ha, 0x100000, *nxt, + ha->fw_memory_size - 0x100000 + 1, nxt); +} + static uint32_t * qla24xx_read_window(struct device_reg_24xx __iomem *reg, uint32_t iobase, uint32_t count, uint32_t *buf) @@ -239,6 +214,90 @@ qla24xx_soft_reset(scsi_qla_host_t *ha) return rval; } +static int +qla2xxx_dump_ram(scsi_qla_host_t *ha, uint32_t addr, uint16_t *ram, + uint16_t ram_words, void **nxt) +{ + int rval; + uint32_t cnt, stat, timer, words, idx; + uint16_t mb0; + struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; + dma_addr_t dump_dma = ha->gid_list_dma; + uint16_t *dump = (uint16_t *)ha->gid_list; + + rval = QLA_SUCCESS; + mb0 = 0; + + WRT_MAILBOX_REG(ha, reg, 0, MBC_DUMP_RISC_RAM_EXTENDED); + clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); + + words = GID_LIST_SIZE / 2; + for (cnt = 0; cnt < ram_words && rval == QLA_SUCCESS; + cnt += words, addr += words) { + if (cnt + words > ram_words) + words = ram_words - cnt; + + WRT_MAILBOX_REG(ha, reg, 1, LSW(addr)); + WRT_MAILBOX_REG(ha, reg, 8, MSW(addr)); + + WRT_MAILBOX_REG(ha, reg, 2, MSW(dump_dma)); + WRT_MAILBOX_REG(ha, reg, 3, LSW(dump_dma)); + WRT_MAILBOX_REG(ha, reg, 6, MSW(MSD(dump_dma))); + WRT_MAILBOX_REG(ha, reg, 7, LSW(MSD(dump_dma))); + + WRT_MAILBOX_REG(ha, reg, 4, words); + WRT_REG_WORD(®->hccr, HCCR_SET_HOST_INT); + + for (timer = 6000000; timer; timer--) { + /* Check for pending interrupts. */ + stat = RD_REG_DWORD(®->u.isp2300.host_status); + if (stat & HSR_RISC_INT) { + stat &= 0xff; + + if (stat == 0x1 || stat == 0x2) { + set_bit(MBX_INTERRUPT, + &ha->mbx_cmd_flags); + + mb0 = RD_MAILBOX_REG(ha, reg, 0); + + /* Release mailbox registers. */ + WRT_REG_WORD(®->semaphore, 0); + WRT_REG_WORD(®->hccr, + HCCR_CLR_RISC_INT); + RD_REG_WORD(®->hccr); + break; + } else if (stat == 0x10 || stat == 0x11) { + set_bit(MBX_INTERRUPT, + &ha->mbx_cmd_flags); + + mb0 = RD_MAILBOX_REG(ha, reg, 0); + + WRT_REG_WORD(®->hccr, + HCCR_CLR_RISC_INT); + RD_REG_WORD(®->hccr); + break; + } + + /* clear this intr; it wasn't a mailbox intr */ + WRT_REG_WORD(®->hccr, HCCR_CLR_RISC_INT); + RD_REG_WORD(®->hccr); + } + udelay(5); + } + + if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) { + rval = mb0 & MBS_MASK; + for (idx = 0; idx < words; idx++) + ram[cnt + idx] = swab16(dump[idx]); + } else { + rval = QLA_FUNCTION_FAILED; + } + } + + *nxt = rval == QLA_SUCCESS ? &ram[cnt]: NULL; + return rval; +} + static inline void qla2xxx_read_window(struct device_reg_2xxx __iomem *reg, uint32_t count, uint16_t *buf) @@ -258,19 +317,14 @@ void qla2300_fw_dump(scsi_qla_host_t *ha, int hardware_locked) { int rval; - uint32_t cnt, timer; - uint32_t risc_address; - uint16_t mb0, mb2; + uint32_t cnt; - uint32_t stat; struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; uint16_t __iomem *dmp_reg; unsigned long flags; struct qla2300_fw_dump *fw; - uint32_t data_ram_cnt; + void *nxt; - risc_address = data_ram_cnt = 0; - mb0 = mb2 = 0; flags = 0; if (!hardware_locked) @@ -388,185 +442,23 @@ qla2300_fw_dump(scsi_qla_host_t *ha, int hardware_locked) } } - if (rval == QLA_SUCCESS) { - /* Get RISC SRAM. */ - risc_address = 0x800; - 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; - cnt++, risc_address++) { - WRT_MAILBOX_REG(ha, reg, 1, (uint16_t)risc_address); - WRT_REG_WORD(®->hccr, HCCR_SET_HOST_INT); - - for (timer = 6000000; timer; timer--) { - /* Check for pending interrupts. */ - stat = RD_REG_DWORD(®->u.isp2300.host_status); - if (stat & HSR_RISC_INT) { - stat &= 0xff; - - if (stat == 0x1 || stat == 0x2) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); - - mb0 = RD_MAILBOX_REG(ha, reg, 0); - mb2 = RD_MAILBOX_REG(ha, reg, 2); - - /* Release mailbox registers. */ - WRT_REG_WORD(®->semaphore, 0); - WRT_REG_WORD(®->hccr, - HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - break; - } else if (stat == 0x10 || stat == 0x11) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); - - mb0 = RD_MAILBOX_REG(ha, reg, 0); - mb2 = RD_MAILBOX_REG(ha, reg, 2); - - WRT_REG_WORD(®->hccr, - HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - break; - } - - /* clear this intr; it wasn't a mailbox intr */ - WRT_REG_WORD(®->hccr, HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - } - udelay(5); - } - - if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) { - rval = mb0 & MBS_MASK; - fw->risc_ram[cnt] = htons(mb2); - } else { - rval = QLA_FUNCTION_FAILED; - } - } - - if (rval == QLA_SUCCESS) { - /* Get stack SRAM. */ - risc_address = 0x10000; - WRT_MAILBOX_REG(ha, reg, 0, MBC_READ_RAM_EXTENDED); - clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); - } - for (cnt = 0; cnt < sizeof(fw->stack_ram) / 2 && rval == QLA_SUCCESS; - cnt++, risc_address++) { - WRT_MAILBOX_REG(ha, reg, 1, LSW(risc_address)); - WRT_MAILBOX_REG(ha, reg, 8, MSW(risc_address)); - WRT_REG_WORD(®->hccr, HCCR_SET_HOST_INT); - - for (timer = 6000000; timer; timer--) { - /* Check for pending interrupts. */ - stat = RD_REG_DWORD(®->u.isp2300.host_status); - if (stat & HSR_RISC_INT) { - stat &= 0xff; - - if (stat == 0x1 || stat == 0x2) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); - - mb0 = RD_MAILBOX_REG(ha, reg, 0); - mb2 = RD_MAILBOX_REG(ha, reg, 2); - - /* Release mailbox registers. */ - WRT_REG_WORD(®->semaphore, 0); - WRT_REG_WORD(®->hccr, - HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - break; - } else if (stat == 0x10 || stat == 0x11) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); - - mb0 = RD_MAILBOX_REG(ha, reg, 0); - mb2 = RD_MAILBOX_REG(ha, reg, 2); - - WRT_REG_WORD(®->hccr, - HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - break; - } - - /* clear this intr; it wasn't a mailbox intr */ - WRT_REG_WORD(®->hccr, HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - } - udelay(5); - } - - if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) { - rval = mb0 & MBS_MASK; - fw->stack_ram[cnt] = htons(mb2); - } else { - rval = QLA_FUNCTION_FAILED; - } - } - - if (rval == QLA_SUCCESS) { - /* Get data SRAM. */ - risc_address = 0x11000; - data_ram_cnt = ha->fw_memory_size - risc_address + 1; - WRT_MAILBOX_REG(ha, reg, 0, MBC_READ_RAM_EXTENDED); - clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); - } - for (cnt = 0; cnt < data_ram_cnt && rval == QLA_SUCCESS; - cnt++, risc_address++) { - WRT_MAILBOX_REG(ha, reg, 1, LSW(risc_address)); - WRT_MAILBOX_REG(ha, reg, 8, MSW(risc_address)); - WRT_REG_WORD(®->hccr, HCCR_SET_HOST_INT); - - for (timer = 6000000; timer; timer--) { - /* Check for pending interrupts. */ - stat = RD_REG_DWORD(®->u.isp2300.host_status); - if (stat & HSR_RISC_INT) { - stat &= 0xff; - - if (stat == 0x1 || stat == 0x2) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); - - mb0 = RD_MAILBOX_REG(ha, reg, 0); - mb2 = RD_MAILBOX_REG(ha, reg, 2); - - /* Release mailbox registers. */ - WRT_REG_WORD(®->semaphore, 0); - WRT_REG_WORD(®->hccr, - HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - break; - } else if (stat == 0x10 || stat == 0x11) { - set_bit(MBX_INTERRUPT, - &ha->mbx_cmd_flags); - - mb0 = RD_MAILBOX_REG(ha, reg, 0); - mb2 = RD_MAILBOX_REG(ha, reg, 2); - - WRT_REG_WORD(®->hccr, - HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - break; - } + /* Get RISC SRAM. */ + if (rval == QLA_SUCCESS) + rval = qla2xxx_dump_ram(ha, 0x800, fw->risc_ram, + sizeof(fw->risc_ram) / 2, &nxt); - /* clear this intr; it wasn't a mailbox intr */ - WRT_REG_WORD(®->hccr, HCCR_CLR_RISC_INT); - RD_REG_WORD(®->hccr); - } - udelay(5); - } + /* Get stack SRAM. */ + if (rval == QLA_SUCCESS) + rval = qla2xxx_dump_ram(ha, 0x10000, fw->stack_ram, + sizeof(fw->stack_ram) / 2, &nxt); - if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) { - rval = mb0 & MBS_MASK; - fw->data_ram[cnt] = htons(mb2); - } else { - rval = QLA_FUNCTION_FAILED; - } - } + /* Get data SRAM. */ + if (rval == QLA_SUCCESS) + rval = qla2xxx_dump_ram(ha, 0x11000, fw->data_ram, + ha->fw_memory_size - 0x11000 + 1, &nxt); if (rval == QLA_SUCCESS) - qla2xxx_copy_queues(ha, &fw->data_ram[cnt]); + qla2xxx_copy_queues(ha, nxt); if (rval != QLA_SUCCESS) { qla_printk(KERN_WARNING, ha, @@ -1010,7 +902,7 @@ qla24xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked) goto qla24xx_fw_dump_failed_0; rval = qla24xx_dump_memory(ha, fw->code_ram, sizeof(fw->code_ram), - fw->ext_mem, &nxt); + &nxt); if (rval != QLA_SUCCESS) goto qla24xx_fw_dump_failed_0; @@ -1318,7 +1210,7 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked) goto qla25xx_fw_dump_failed_0; rval = qla24xx_dump_memory(ha, fw->code_ram, sizeof(fw->code_ram), - fw->ext_mem, &nxt); + &nxt); if (rval != QLA_SUCCESS) goto qla25xx_fw_dump_failed_0; -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 02/10] qla2xxx: Wakeup DPC thread to process any deferred-work requests. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez 2008-04-24 22:21 ` [PATCH 01/10] qla2xxx: Collapse RISC-RAM retrieval code during a firmware-dump Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 03/10] qla2xxx: Correct ISP84XX verify-chip response handling Andrew Vasquez ` (8 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_os.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 8b33b16..978d8bd 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2599,6 +2599,10 @@ qla2x00_timer(scsi_qla_host_t *ha) start_dpc++; } + /* Process any deferred work. */ + if (!list_empty(&ha->work_list)) + start_dpc++; + /* Schedule the DPC routine if needed */ if ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 03/10] qla2xxx: Correct ISP84XX verify-chip response handling. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez 2008-04-24 22:21 ` [PATCH 01/10] qla2xxx: Collapse RISC-RAM retrieval code during a firmware-dump Andrew Vasquez 2008-04-24 22:21 ` [PATCH 02/10] qla2xxx: Wakeup DPC thread to process any deferred-work requests Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 04/10] qla2xxx: Correct SRB usage-after-completion/free issues Andrew Vasquez ` (7 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju Earlier code could trigger an infinite-retry if 1st invocation returned a non-CS_COMPLETE status. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_mbx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 7d0a8a4..a9cb829 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -2982,8 +2982,8 @@ qla84xx_verify_chip(struct scsi_qla_host *ha, uint16_t *status) /* We update the firmware with only one data sequence. */ options |= VCO_END_OF_DATA; - retry = 0; do { + retry = 0; memset(mn, 0, sizeof(*mn)); mn->p.req.entry_type = VERIFY_CHIP_IOCB_TYPE; mn->p.req.entry_count = 1; -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 04/10] qla2xxx: Correct SRB usage-after-completion/free issues. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (2 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 03/10] qla2xxx: Correct ISP84XX verify-chip response handling Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 05/10] qla2xxx: Re-register FDMI information after a LIP Andrew Vasquez ` (6 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju The driver is incorrectly assuming that the 'sp' reference held in qla2[x00|4xx]_abort_command() is valid after the mailbox command is issued to abort the exchange. It is *not*, as the command may be completed during interrupt context before control is returned to the mailbox caller. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_mbx.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index a9cb829..d10cb06 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -784,7 +784,6 @@ qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp) DEBUG2_3_11(printk("qla2x00_abort_command(%ld): failed=%x.\n", ha->host_no, rval)); } else { - sp->flags |= SRB_ABORT_PENDING; DEBUG11(printk("qla2x00_abort_command(%ld): done.\n", ha->host_no)); } @@ -2210,7 +2209,6 @@ qla24xx_abort_command(scsi_qla_host_t *ha, srb_t *sp) rval = QLA_FUNCTION_FAILED; } else { DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no)); - sp->flags |= SRB_ABORT_PENDING; } dma_pool_free(ha->s_dma_pool, abt, abt_dma); -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 05/10] qla2xxx: Re-register FDMI information after a LIP. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (3 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 04/10] qla2xxx: Correct SRB usage-after-completion/free issues Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 06/10] qla2xxx: qla_os.c, make 2 functions static Andrew Vasquez ` (5 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju Original code would (incorrectly) only re-register after a loop-down condition. Also, FDMI registration should be enabled by default. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_isr.c | 4 ++-- drivers/scsi/qla2xxx/qla_os.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 285479b..5d9a64a 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -409,6 +409,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) } set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags); + set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags); ha->flags.management_server_logged_in = 0; qla2x00_post_aen_work(ha, FCH_EVT_LIP, mb[1]); @@ -454,8 +455,6 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) ha->flags.management_server_logged_in = 0; ha->link_data_rate = PORT_SPEED_UNKNOWN; - if (ql2xfdmienable) - set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags); qla2x00_post_aen_work(ha, FCH_EVT_LINKDOWN, 0); break; @@ -511,6 +510,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags); } set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags); + set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags); ha->flags.gpsc_supported = 1; ha->flags.management_server_logged_in = 0; diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 978d8bd..a7c20f8 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -67,7 +67,7 @@ static void qla2x00_free_device(scsi_qla_host_t *); static void qla2x00_config_dma_addressing(scsi_qla_host_t *ha); -int ql2xfdmienable; +int ql2xfdmienable=1; module_param(ql2xfdmienable, int, S_IRUGO|S_IRUSR); MODULE_PARM_DESC(ql2xfdmienable, "Enables FDMI registratons " -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 06/10] qla2xxx: qla_os.c, make 2 functions static 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (4 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 05/10] qla2xxx: Re-register FDMI information after a LIP Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 07/10] qla2xxx: make qla2x00_issue_iocb_timeout() static Andrew Vasquez ` (4 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley Cc: Andrew Vasquez, Seokmann Ju, Adrian Bunk From: Adrian Bunk <bunk@kernel.org> This patch makes the following needlessly global functions static: - qla2x00_alloc_work() - qla2x00_post_work() Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_os.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index a7c20f8..878a37a 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2135,7 +2135,7 @@ qla2x00_mem_free(scsi_qla_host_t *ha) kfree(ha->nvram); } -struct qla_work_evt * +static struct qla_work_evt * qla2x00_alloc_work(struct scsi_qla_host *ha, enum qla_work_type type, int locked) { @@ -2152,7 +2152,7 @@ qla2x00_alloc_work(struct scsi_qla_host *ha, enum qla_work_type type, return e; } -int +static int qla2x00_post_work(struct scsi_qla_host *ha, struct qla_work_evt *e, int locked) { unsigned long flags; -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 07/10] qla2xxx: make qla2x00_issue_iocb_timeout() static 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (5 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 06/10] qla2xxx: qla_os.c, make 2 functions static Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 08/10] qla2xxx: Correct misc. endian and byte-ordering issues Andrew Vasquez ` (3 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley Cc: Andrew Vasquez, Seokmann Ju, Adrian Bunk From: Adrian Bunk <bunk@kernel.org> This patch makes the needlessly global qla2x00_issue_iocb_timeout() static. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_gbl.h | 4 ---- drivers/scsi/qla2xxx/qla_mbx.c | 2 +- 2 files changed, 1 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index 76eb4fe..f882706 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h @@ -152,10 +152,6 @@ extern int qla2x00_issue_iocb(scsi_qla_host_t *, void *, dma_addr_t, size_t); extern int -qla2x00_issue_iocb_timeout(scsi_qla_host_t *, void *, dma_addr_t, size_t, - uint32_t); - -extern int qla2x00_abort_command(scsi_qla_host_t *, srb_t *); extern int diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index d10cb06..875c418 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -681,7 +681,7 @@ qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr) * Context: * Kernel context. */ -int +static int qla2x00_issue_iocb_timeout(scsi_qla_host_t *ha, void *buffer, dma_addr_t phys_addr, size_t size, uint32_t tov) { -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 08/10] qla2xxx: Correct misc. endian and byte-ordering issues. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (6 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 07/10] qla2xxx: make qla2x00_issue_iocb_timeout() static Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 09/10] qla2xxx: Correct regression in relogin code Andrew Vasquez ` (2 subsequent siblings) 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju From: Seokmann Ju <seokmann.ju@qlogic.com> There were several places in the driver which could cause byte ordering problem as provided by Al Viro <viro@ZenIV.linux.org.uk>. Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com> --- drivers/scsi/qla2xxx/qla_fw.h | 26 +++++--------------------- drivers/scsi/qla2xxx/qla_gs.c | 4 ++-- drivers/scsi/qla2xxx/qla_init.c | 2 +- drivers/scsi/qla2xxx/qla_mbx.c | 13 ++++++------- 4 files changed, 14 insertions(+), 31 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 078f2a1..cf19451 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1036,22 +1036,6 @@ struct mid_db_entry_24xx { uint8_t reserved_1; }; - /* - * Virtual Fabric ID type definition. - */ -typedef struct vf_id { - uint16_t id : 12; - uint16_t priority : 4; -} vf_id_t; - -/* - * Virtual Fabric HopCt type definition. - */ -typedef struct vf_hopct { - uint16_t reserved : 8; - uint16_t hopct : 8; -} vf_hopct_t; - /* * Virtual Port Control IOCB */ @@ -1082,10 +1066,10 @@ struct vp_ctrl_entry_24xx { uint8_t vp_idx_map[16]; uint16_t flags; - struct vf_id id; + uint16_t id; uint16_t reserved_4; - struct vf_hopct hopct; - uint8_t reserved_5[8]; + uint16_t hopct; + uint8_t reserved_5[24]; }; /* @@ -1132,9 +1116,9 @@ struct vp_config_entry_24xx { uint16_t reserved_vp2; uint8_t port_name_idx2[WWN_SIZE]; uint8_t node_name_idx2[WWN_SIZE]; - struct vf_id id; + uint16_t id; uint16_t reserved_4; - struct vf_hopct hopct; + uint16_t hopct; uint8_t reserved_5; }; diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index 750d7ef..4cb80b4 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c @@ -1583,8 +1583,8 @@ qla2x00_fdmi_rpa(scsi_qla_host_t *ha) eiter->type = __constant_cpu_to_be16(FDMI_PORT_MAX_FRAME_SIZE); eiter->len = __constant_cpu_to_be16(4 + 4); max_frame_size = IS_FWI2_CAPABLE(ha) ? - (uint32_t) icb24->frame_payload_size: - (uint32_t) ha->init_cb->frame_payload_size; + le16_to_cpu(icb24->frame_payload_size): + le16_to_cpu(ha->init_cb->frame_payload_size); eiter->a.max_frame_size = cpu_to_be32(max_frame_size); size += 4 + 4; diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 01e2608..bbbc5a6 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -3645,7 +3645,7 @@ qla24xx_nvram_config(scsi_qla_host_t *ha) if (le16_to_cpu(nv->login_timeout) < 4) nv->login_timeout = __constant_cpu_to_le16(4); ha->login_timeout = le16_to_cpu(nv->login_timeout); - icb->login_timeout = cpu_to_le16(nv->login_timeout); + icb->login_timeout = nv->login_timeout; /* Set minimum RATOV to 100 tenths of a second. */ ha->r_a_tov = 100; diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 875c418..2100604 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -1468,7 +1468,7 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, lg->port_id[0] = al_pa; lg->port_id[1] = area; lg->port_id[2] = domain; - lg->vp_index = cpu_to_le16(ha->vp_idx); + lg->vp_index = ha->vp_idx; rval = qla2x00_issue_iocb(ha, lg, lg_dma, 0); if (rval != QLA_SUCCESS) { DEBUG2_3_11(printk("%s(%ld): failed to issue Login IOCB " @@ -1723,7 +1723,7 @@ qla24xx_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, lg->port_id[0] = al_pa; lg->port_id[1] = area; lg->port_id[2] = domain; - lg->vp_index = cpu_to_le16(ha->vp_idx); + lg->vp_index = ha->vp_idx; rval = qla2x00_issue_iocb(ha, lg, lg_dma, 0); if (rval != QLA_SUCCESS) { DEBUG2_3_11(printk("%s(%ld): failed to issue Logout IOCB " @@ -2642,12 +2642,11 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *ha, struct vp_rpt_id_entry_24xx *rptid_entry) { uint8_t vp_idx; + uint16_t stat = le16_to_cpu(rptid_entry->vp_idx); scsi_qla_host_t *vha; if (rptid_entry->entry_status != 0) return; - if (rptid_entry->entry_status != __constant_cpu_to_le16(CS_COMPLETE)) - return; if (rptid_entry->format == 0) { DEBUG15(printk("%s:format 0 : scsi(%ld) number of VPs setup %d," @@ -2657,17 +2656,17 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *ha, rptid_entry->port_id[2], rptid_entry->port_id[1], rptid_entry->port_id[0])); } else if (rptid_entry->format == 1) { - vp_idx = LSB(rptid_entry->vp_idx); + vp_idx = LSB(stat); DEBUG15(printk("%s:format 1: scsi(%ld): VP[%d] enabled " "- status %d - " "with port id %02x%02x%02x\n",__func__,ha->host_no, - vp_idx, MSB(rptid_entry->vp_idx), + vp_idx, MSB(stat), rptid_entry->port_id[2], rptid_entry->port_id[1], rptid_entry->port_id[0])); if (vp_idx == 0) return; - if (MSB(rptid_entry->vp_idx) == 1) + if (MSB(stat) == 1) return; list_for_each_entry(vha, &ha->vp_list, vp_list) -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 09/10] qla2xxx: Correct regression in relogin code. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (7 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 08/10] qla2xxx: Correct misc. endian and byte-ordering issues Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:21 ` [PATCH 10/10] qla2xxx: Update version number to 8.02.01-k2 Andrew Vasquez 2008-04-24 22:31 ` [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] James Bottomley 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju Commit 63a8651f2548c6bb5132c0b4e7dad4f57a9274db ([SCSI] qla2xxx: Correct infinite-login-retry issue.) introduced a small regression where a successful relogin would result in an fcport's loop_id to be incorrectly reset to FC_NO_LOOP_ID. Only clear-out loopid, if retries have been 'truly' exhausted. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_os.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 878a37a..3223fd1 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2373,7 +2373,7 @@ qla2x00_do_dpc(void *data) } else { fcport->login_retry = 0; } - if (fcport->login_retry == 0) + if (fcport->login_retry == 0 && status != QLA_SUCCESS) fcport->loop_id = FC_NO_LOOP_ID; } if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 10/10] qla2xxx: Update version number to 8.02.01-k2. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (8 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 09/10] qla2xxx: Correct regression in relogin code Andrew Vasquez @ 2008-04-24 22:21 ` Andrew Vasquez 2008-04-24 22:31 ` [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] James Bottomley 10 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:21 UTC (permalink / raw) To: Linux SCSI Mailing List, James Bottomley; +Cc: Andrew Vasquez, Seokmann Ju Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> --- drivers/scsi/qla2xxx/qla_version.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h index f42f17a..afeae2b 100644 --- a/drivers/scsi/qla2xxx/qla_version.h +++ b/drivers/scsi/qla2xxx/qla_version.h @@ -7,7 +7,7 @@ /* * Driver version */ -#define QLA2XXX_VERSION "8.02.01-k1" +#define QLA2XXX_VERSION "8.02.01-k2" #define QLA_DRIVER_MAJOR_VER 8 #define QLA_DRIVER_MINOR_VER 2 -- 1.5.5.1.67.gbdb8 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2]. 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez ` (9 preceding siblings ...) 2008-04-24 22:21 ` [PATCH 10/10] qla2xxx: Update version number to 8.02.01-k2 Andrew Vasquez @ 2008-04-24 22:31 ` James Bottomley 2008-04-24 22:37 ` Andrew Vasquez 10 siblings, 1 reply; 15+ messages in thread From: James Bottomley @ 2008-04-24 22:31 UTC (permalink / raw) To: Andrew Vasquez; +Cc: Linux SCSI Mailing List, Seokmann Ju On Thu, 2008-04-24 at 15:19 -0700, Andrew Vasquez wrote: > This patchset contains fixes/updates for 2.6.26. > > drivers/scsi/qla2xxx/qla_dbg.c | 394 +++++++++++++----------------------- > drivers/scsi/qla2xxx/qla_fw.h | 26 +-- > drivers/scsi/qla2xxx/qla_gbl.h | 4 - > drivers/scsi/qla2xxx/qla_gs.c | 4 +- > drivers/scsi/qla2xxx/qla_init.c | 2 +- > drivers/scsi/qla2xxx/qla_isr.c | 4 +- > drivers/scsi/qla2xxx/qla_mbx.c | 19 +- > drivers/scsi/qla2xxx/qla_os.c | 12 +- > drivers/scsi/qla2xxx/qla_version.h | 2 +- > 9 files changed, 170 insertions(+), 297 deletions(-) > > here's the commits: > > - Collapse RISC-RAM retrieval code during a firmware-dump. > - Wakeup DPC thread to process any deferred-work requests. > - Correct ISP84XX verify-chip response handling. > - Correct SRB usage-after-completion/free issues. > - Re-register FDMI information after a LIP. > - qla_os.c, make 2 functions static > - make qla2x00_issue_iocb_timeout() static > - Correct misc. endian and byte-ordering issues. > - Correct regression in relogin code. > - Update version number to 8.02.01-k2. So, since I have to guess, I put my money on: [PATCH 09/10] qla2xxx: Correct regression in relogin code needs backporting to stable to fix the 2.6.24 regression bug 10486. Do I win? James ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2]. 2008-04-24 22:31 ` [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] James Bottomley @ 2008-04-24 22:37 ` Andrew Vasquez 2008-04-24 22:51 ` James Bottomley 0 siblings, 1 reply; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:37 UTC (permalink / raw) To: James Bottomley; +Cc: Linux SCSI Mailing List, Seokmann Ju On Thu, 24 Apr 2008, James Bottomley wrote: > On Thu, 2008-04-24 at 15:19 -0700, Andrew Vasquez wrote: > > This patchset contains fixes/updates for 2.6.26. > > > > drivers/scsi/qla2xxx/qla_dbg.c | 394 +++++++++++++----------------------- > > drivers/scsi/qla2xxx/qla_fw.h | 26 +-- > > drivers/scsi/qla2xxx/qla_gbl.h | 4 - > > drivers/scsi/qla2xxx/qla_gs.c | 4 +- > > drivers/scsi/qla2xxx/qla_init.c | 2 +- > > drivers/scsi/qla2xxx/qla_isr.c | 4 +- > > drivers/scsi/qla2xxx/qla_mbx.c | 19 +- > > drivers/scsi/qla2xxx/qla_os.c | 12 +- > > drivers/scsi/qla2xxx/qla_version.h | 2 +- > > 9 files changed, 170 insertions(+), 297 deletions(-) > > > > here's the commits: > > > > - Collapse RISC-RAM retrieval code during a firmware-dump. > > - Wakeup DPC thread to process any deferred-work requests. > > - Correct ISP84XX verify-chip response handling. > > - Correct SRB usage-after-completion/free issues. > > - Re-register FDMI information after a LIP. > > - qla_os.c, make 2 functions static > > - make qla2x00_issue_iocb_timeout() static > > - Correct misc. endian and byte-ordering issues. > > - Correct regression in relogin code. > > - Update version number to 8.02.01-k2. > > So, since I have to guess, I put my money on: > > [PATCH 09/10] qla2xxx: Correct regression in relogin code > > needs backporting to stable to fix the 2.6.24 regression bug 10486. > > Do I win? Sure do. Send me your RTN and I'll wire you 10 million USD... All kidding aside, I've just sent the patch to stable@kernel.org for inclusion. thanks, av ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2]. 2008-04-24 22:37 ` Andrew Vasquez @ 2008-04-24 22:51 ` James Bottomley 2008-04-24 22:58 ` Andrew Vasquez 0 siblings, 1 reply; 15+ messages in thread From: James Bottomley @ 2008-04-24 22:51 UTC (permalink / raw) To: Andrew Vasquez; +Cc: Linux SCSI Mailing List, Seokmann Ju On Thu, 2008-04-24 at 15:37 -0700, Andrew Vasquez wrote: > On Thu, 24 Apr 2008, James Bottomley wrote: > > On Thu, 2008-04-24 at 15:19 -0700, Andrew Vasquez wrote: > > > This patchset contains fixes/updates for 2.6.26. [...] > > So, since I have to guess, I put my money on: > > > > [PATCH 09/10] qla2xxx: Correct regression in relogin code > > > > needs backporting to stable to fix the 2.6.24 regression bug 10486. > > > > Do I win? > > Sure do. Send me your RTN and I'll wire you 10 million USD... > > All kidding aside, I've just sent the patch to stable@kernel.org for > inclusion. Unfortunately, that won't quit work. Stable won't accept a patch until it's upstream. For that reason, I tag all such patches with Cc: Stable Tree <stable@kernel.org> in my git tree. This triggers an automatic email prod to the stable team when the patch goes upstream, so unless the backport is non trivial, that's all that's all that's needed. I just needed to know where to put the tag. James ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2]. 2008-04-24 22:51 ` James Bottomley @ 2008-04-24 22:58 ` Andrew Vasquez 0 siblings, 0 replies; 15+ messages in thread From: Andrew Vasquez @ 2008-04-24 22:58 UTC (permalink / raw) To: James Bottomley; +Cc: Linux SCSI Mailing List, Seokmann Ju On Thu, 24 Apr 2008, James Bottomley wrote: > Unfortunately, that won't quit work. Stable won't accept a patch until > it's upstream. For that reason, I tag all such patches with > > Cc: Stable Tree <stable@kernel.org> > > in my git tree. This triggers an automatic email prod to the stable > team when the patch goes upstream, so unless the backport is non > trivial, that's all that's all that's needed. > > I just needed to know where to put the tag. That's good info, thanks. I tried to follow the bits in Documentation/stable_kernel_rules.txt... grazie, av ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2008-04-24 22:58 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-04-24 22:19 [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] Andrew Vasquez 2008-04-24 22:21 ` [PATCH 01/10] qla2xxx: Collapse RISC-RAM retrieval code during a firmware-dump Andrew Vasquez 2008-04-24 22:21 ` [PATCH 02/10] qla2xxx: Wakeup DPC thread to process any deferred-work requests Andrew Vasquez 2008-04-24 22:21 ` [PATCH 03/10] qla2xxx: Correct ISP84XX verify-chip response handling Andrew Vasquez 2008-04-24 22:21 ` [PATCH 04/10] qla2xxx: Correct SRB usage-after-completion/free issues Andrew Vasquez 2008-04-24 22:21 ` [PATCH 05/10] qla2xxx: Re-register FDMI information after a LIP Andrew Vasquez 2008-04-24 22:21 ` [PATCH 06/10] qla2xxx: qla_os.c, make 2 functions static Andrew Vasquez 2008-04-24 22:21 ` [PATCH 07/10] qla2xxx: make qla2x00_issue_iocb_timeout() static Andrew Vasquez 2008-04-24 22:21 ` [PATCH 08/10] qla2xxx: Correct misc. endian and byte-ordering issues Andrew Vasquez 2008-04-24 22:21 ` [PATCH 09/10] qla2xxx: Correct regression in relogin code Andrew Vasquez 2008-04-24 22:21 ` [PATCH 10/10] qla2xxx: Update version number to 8.02.01-k2 Andrew Vasquez 2008-04-24 22:31 ` [PATCH 0/10] qla2xxx: updates for 2.6.26 [8.02.01-k2] James Bottomley 2008-04-24 22:37 ` Andrew Vasquez 2008-04-24 22:51 ` James Bottomley 2008-04-24 22:58 ` Andrew Vasquez
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.