Thanks, Do you mean Megasas raid can be used in m68k arch? -----Original Message----- From: Finn Thain [mailto:fth...@telegraphics.com.au] Sent: Thursday, October 22, 2020 10:25 AM To: tianxianting (RD) <tian.xiant...@h3c.com> Cc: kashyap.de...@broadcom.com; sumit.sax...@broadcom.com; shivasharan.srikanteshw...@broadcom.com; j...@linux.ibm.com; martin.peter...@oracle.com; megaraidlinux....@broadcom.com; linux-s...@vger.kernel.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH] scsi: megaraid_sas: use spin_lock() in hard IRQ
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; > } >