mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 03:42:52 +00:00
[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: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
881c1b3c48
commit
9aec024975
@ -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)
|
|||||||
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 {
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user