]> www.infradead.org Git - users/jedix/linux-maple.git/commit
qla4xxx: Fix MBOX intr switching from polling to intr mode for ISP83XX
authorVikas Chaudhary <vikas.chaudhary@qlogic.com>
Fri, 23 Nov 2012 11:58:38 +0000 (06:58 -0500)
committerJerry Snitselaar <jerry.snitselaar@oracle.com>
Thu, 3 Jan 2013 17:51:52 +0000 (10:51 -0700)
commita2cecf9029d94a4e6173fe04f70c3c1f925428eb
tree15873c129b23d2b952a34ace6c90d98b3fa93774
parent221a71bef56701f9939a889ca6685b320b3d7b17
qla4xxx: Fix MBOX intr switching from polling to intr mode for ISP83XX

Issue:
Mailbox command timed out after switching from polling mode to interrupt mode.

Events:-
 1. Mailbox interrupts are disabled
 2. FW generates AEN and at same time driver enables Mailbox Interrupt
 3. Driver issues new mailbox to Firmware

In above case driver will not get AEN interrupts generated by FW in step #2 as
FW generated this AEN when interrupts are disabled. During the same time
driver enabled the mailbox interrupt, so driver will not poll for interrupt.
Driver will never process AENs generated in step #2 and issues new mailbox to
FW, but now FW is not able to post mailbox completion as AENs generated before
are not processed by driver.

Fix:
Enable Mailbox / AEN interrupts before initializing FW in case of ISP83XX.
This will make sure we process all Mailbox and AENs in interrupt mode.

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
drivers/scsi/qla4xxx/ql4_83xx.c
drivers/scsi/qla4xxx/ql4_def.h
drivers/scsi/qla4xxx/ql4_glbl.h
drivers/scsi/qla4xxx/ql4_init.c
drivers/scsi/qla4xxx/ql4_isr.c
drivers/scsi/qla4xxx/ql4_mbx.c
drivers/scsi/qla4xxx/ql4_nx.c
drivers/scsi/qla4xxx/ql4_os.c