From 0f63209a34b2022c9280b3d65c4003d8b3f7477f Mon Sep 17 00:00:00 2001 From: Krishna Gudipati Date: Wed, 22 Aug 2012 19:52:18 -0700 Subject: [PATCH] --- yaml --- r: 328875 b: refs/heads/master c: 9aec02497590cac5abdb5c044e3ec57010b1d808 h: refs/heads/master i: 328873: 3d13334257236a57ca0f10775729f63e8dbf2797 328871: 045f19ebc2a112d5b491556f63293f7036dc3117 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/bfa/bfa_core.c | 9 ++++++++- trunk/drivers/scsi/bfa/bfa_modules.h | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 60f44f8cacb1..1ab7d4db89c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 881c1b3c486c7f181e0ca8c8df30f5f860c0d659 +refs/heads/master: 9aec02497590cac5abdb5c044e3ec57010b1d808 diff --git a/trunk/drivers/scsi/bfa/bfa_core.c b/trunk/drivers/scsi/bfa/bfa_core.c index a4129c929f24..b7c326f7a6d0 100644 --- a/trunk/drivers/scsi/bfa/bfa_core.c +++ b/trunk/drivers/scsi/bfa/bfa_core.c @@ -775,7 +775,8 @@ bfa_intx(struct bfa_s *bfa) if (!intr) return BFA_TRUE; - bfa_msix_lpu_err(bfa, intr); + if (bfa->intr_enabled) + bfa_msix_lpu_err(bfa, intr); return BFA_TRUE; } @@ -803,11 +804,17 @@ bfa_isr_enable(struct bfa_s *bfa) writel(~umsk, bfa->iocfc.bfa_regs.intr_mask); bfa->iocfc.intr_mask = ~umsk; bfa_isr_mode_set(bfa, bfa->msix.nvecs != 0); + + /* + * Set the flag indicating successful enabling of interrupts + */ + bfa->intr_enabled = BFA_TRUE; } void bfa_isr_disable(struct bfa_s *bfa) { + bfa->intr_enabled = BFA_FALSE; bfa_isr_mode_set(bfa, BFA_FALSE); writel(-1L, bfa->iocfc.bfa_regs.intr_mask); bfa_msix_uninstall(bfa); diff --git a/trunk/drivers/scsi/bfa/bfa_modules.h b/trunk/drivers/scsi/bfa/bfa_modules.h index 2d36e4823835..189fff71e3c2 100644 --- a/trunk/drivers/scsi/bfa/bfa_modules.h +++ b/trunk/drivers/scsi/bfa/bfa_modules.h @@ -121,6 +121,7 @@ struct bfa_s { bfa_boolean_t fcs; /* FCS is attached to BFA */ struct bfa_msix_s msix; int bfa_aen_seq; + bfa_boolean_t intr_enabled; /* Status of interrupts */ }; extern bfa_boolean_t bfa_auto_recover;