it is unnecessary to call spin_lock_irqsave in a interrupt handler. Signed-off-by: Tuo Cao <91tuocao@xxxxxxxxx> --- drivers/scsi/bfa/bfad.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c index e5aa982ffedc..3191377d543b 100644 --- a/drivers/scsi/bfa/bfad.c +++ b/drivers/scsi/bfa/bfad.c @@ -1086,25 +1086,24 @@ bfad_intx(int irq, void *dev_id) { struct bfad_s *bfad = dev_id; struct list_head doneq; - unsigned long flags; bfa_boolean_t rc; - spin_lock_irqsave(&bfad->bfad_lock, flags); + spin_lock(&bfad->bfad_lock); rc = bfa_intx(&bfad->bfa); if (!rc) { - spin_unlock_irqrestore(&bfad->bfad_lock, flags); + spin_unlock(&bfad->bfad_lock); return IRQ_NONE; } bfa_comp_deq(&bfad->bfa, &doneq); - spin_unlock_irqrestore(&bfad->bfad_lock, flags); + spin_unlock(&bfad->bfad_lock); if (!list_empty(&doneq)) { bfa_comp_process(&bfad->bfa, &doneq); - spin_lock_irqsave(&bfad->bfad_lock, flags); + spin_lock(&bfad->bfad_lock); bfa_comp_free(&bfad->bfa, &doneq); - spin_unlock_irqrestore(&bfad->bfad_lock, flags); + spin_unlock(&bfad->bfad_lock); } return IRQ_HANDLED; @@ -1117,20 +1116,19 @@ bfad_msix(int irq, void *dev_id) struct bfad_msix_s *vec = dev_id; struct bfad_s *bfad = vec->bfad; struct list_head doneq; - unsigned long flags; - spin_lock_irqsave(&bfad->bfad_lock, flags); + spin_lock(&bfad->bfad_lock); bfa_msix(&bfad->bfa, vec->msix.entry); bfa_comp_deq(&bfad->bfa, &doneq); - spin_unlock_irqrestore(&bfad->bfad_lock, flags); + spin_unlock(&bfad->bfad_lock); if (!list_empty(&doneq)) { bfa_comp_process(&bfad->bfa, &doneq); - spin_lock_irqsave(&bfad->bfad_lock, flags); + spin_lock(&bfad->bfad_lock); bfa_comp_free(&bfad->bfa, &doneq); - spin_unlock_irqrestore(&bfad->bfad_lock, flags); + spin_unlock(&bfad->bfad_lock); } return IRQ_HANDLED; -- 2.17.1