Commit 9aec0249 authored by Krishna Gudipati's avatar Krishna Gudipati Committed by James Bottomley

[SCSI] bfa: Fix to process mbox interrupts only if interrupts are enabled in INTx mode.

- Made changes to process mbox and error interrupts only if interrupts are
  enabled, when running in INTx mode.
Signed-off-by: default avatarKrishna Gudipati <kgudipat@brocade.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 881c1b3c
...@@ -775,7 +775,8 @@ bfa_intx(struct bfa_s *bfa) ...@@ -775,7 +775,8 @@ bfa_intx(struct bfa_s *bfa)
if (!intr) if (!intr)
return BFA_TRUE; return BFA_TRUE;
bfa_msix_lpu_err(bfa, intr); if (bfa->intr_enabled)
bfa_msix_lpu_err(bfa, intr);
return BFA_TRUE; return BFA_TRUE;
} }
...@@ -803,11 +804,17 @@ bfa_isr_enable(struct bfa_s *bfa) ...@@ -803,11 +804,17 @@ bfa_isr_enable(struct bfa_s *bfa)
writel(~umsk, bfa->iocfc.bfa_regs.intr_mask); writel(~umsk, bfa->iocfc.bfa_regs.intr_mask);
bfa->iocfc.intr_mask = ~umsk; bfa->iocfc.intr_mask = ~umsk;
bfa_isr_mode_set(bfa, bfa->msix.nvecs != 0); bfa_isr_mode_set(bfa, bfa->msix.nvecs != 0);
/*
* Set the flag indicating successful enabling of interrupts
*/
bfa->intr_enabled = BFA_TRUE;
} }
void void
bfa_isr_disable(struct bfa_s *bfa) bfa_isr_disable(struct bfa_s *bfa)
{ {
bfa->intr_enabled = BFA_FALSE;
bfa_isr_mode_set(bfa, BFA_FALSE); bfa_isr_mode_set(bfa, BFA_FALSE);
writel(-1L, bfa->iocfc.bfa_regs.intr_mask); writel(-1L, bfa->iocfc.bfa_regs.intr_mask);
bfa_msix_uninstall(bfa); bfa_msix_uninstall(bfa);
......
...@@ -121,6 +121,7 @@ struct bfa_s { ...@@ -121,6 +121,7 @@ struct bfa_s {
bfa_boolean_t fcs; /* FCS is attached to BFA */ bfa_boolean_t fcs; /* FCS is attached to BFA */
struct bfa_msix_s msix; struct bfa_msix_s msix;
int bfa_aen_seq; int bfa_aen_seq;
bfa_boolean_t intr_enabled; /* Status of interrupts */
}; };
extern bfa_boolean_t bfa_auto_recover; extern bfa_boolean_t bfa_auto_recover;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment