On Wed, 21 Oct 2020, Xianting Tian wrote: > Since we already in hard IRQ context when running megasas_isr(),
On m68k, hard irq context does not mean interrupts are disabled. Are there no other architectures in that category? > so use spin_lock() is enough, which is faster than spin_lock_irqsave(). > Is that measurable? > Signed-off-by: Xianting Tian <tian.xiant...@h3c.com> > --- > drivers/scsi/megaraid/megaraid_sas_base.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c > b/drivers/scsi/megaraid/megaraid_sas_base.c > index 2b7e7b5f3..bd186254d 100644 > --- a/drivers/scsi/megaraid/megaraid_sas_base.c > +++ b/drivers/scsi/megaraid/megaraid_sas_base.c > @@ -3977,15 +3977,14 @@ static irqreturn_t megasas_isr(int irq, void *devp) > { > struct megasas_irq_context *irq_context = devp; > struct megasas_instance *instance = irq_context->instance; > - unsigned long flags; > irqreturn_t rc; > > if (atomic_read(&instance->fw_reset_no_pci_access)) > return IRQ_HANDLED; > > - spin_lock_irqsave(&instance->hba_lock, flags); > + spin_lock(&instance->hba_lock); > rc = megasas_deplete_reply_queue(instance, DID_OK); > - spin_unlock_irqrestore(&instance->hba_lock, flags); > + spin_unlock(&instance->hba_lock); > > return rc; > } >