From: Xiaofei Tan <tanxiaofei@huawei.com>
To: <jejb@linux.ibm.com>, <martin.petersen@oracle.com>
Cc: <linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linuxarm@openeuler.org>, Xiaofei Tan <tanxiaofei@huawei.com>
Subject: [PATCH for-next 02/32] scsi: ipr: Replace spin_lock_irqsave with spin_lock in hard IRQ
Date: Sun, 7 Feb 2021 19:36:33 +0800 [thread overview]
Message-ID: <1612697823-8073-3-git-send-email-tanxiaofei@huawei.com> (raw)
In-Reply-To: <1612697823-8073-1-git-send-email-tanxiaofei@huawei.com>
It is redundant to do irqsave and irqrestore in hardIRQ context, where
it has been in a irq-disabled context.
Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
---
drivers/scsi/ipr.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index e451102..0309e8f 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -5815,7 +5815,6 @@ static irqreturn_t ipr_isr(int irq, void *devp)
{
struct ipr_hrr_queue *hrrq = (struct ipr_hrr_queue *)devp;
struct ipr_ioa_cfg *ioa_cfg = hrrq->ioa_cfg;
- unsigned long hrrq_flags = 0;
u32 int_reg = 0;
int num_hrrq = 0;
int irq_none = 0;
@@ -5823,10 +5822,10 @@ static irqreturn_t ipr_isr(int irq, void *devp)
irqreturn_t rc = IRQ_NONE;
LIST_HEAD(doneq);
- spin_lock_irqsave(hrrq->lock, hrrq_flags);
+ spin_lock(hrrq->lock);
/* If interrupts are disabled, ignore the interrupt */
if (!hrrq->allow_interrupts) {
- spin_unlock_irqrestore(hrrq->lock, hrrq_flags);
+ spin_unlock(hrrq->lock);
return IRQ_NONE;
}
@@ -5862,7 +5861,7 @@ static irqreturn_t ipr_isr(int irq, void *devp)
if (unlikely(rc == IRQ_NONE))
rc = ipr_handle_other_interrupt(ioa_cfg, int_reg);
- spin_unlock_irqrestore(hrrq->lock, hrrq_flags);
+ spin_unlock(hrrq->lock);
list_for_each_entry_safe(ipr_cmd, temp, &doneq, queue) {
list_del(&ipr_cmd->queue);
del_timer(&ipr_cmd->timer);
@@ -5883,16 +5882,15 @@ static irqreturn_t ipr_isr_mhrrq(int irq, void *devp)
{
struct ipr_hrr_queue *hrrq = (struct ipr_hrr_queue *)devp;
struct ipr_ioa_cfg *ioa_cfg = hrrq->ioa_cfg;
- unsigned long hrrq_flags = 0;
struct ipr_cmnd *ipr_cmd, *temp;
irqreturn_t rc = IRQ_NONE;
LIST_HEAD(doneq);
- spin_lock_irqsave(hrrq->lock, hrrq_flags);
+ spin_lock(hrrq->lock);
/* If interrupts are disabled, ignore the interrupt */
if (!hrrq->allow_interrupts) {
- spin_unlock_irqrestore(hrrq->lock, hrrq_flags);
+ spin_unlock(hrrq->lock);
return IRQ_NONE;
}
@@ -5900,7 +5898,7 @@ static irqreturn_t ipr_isr_mhrrq(int irq, void *devp)
if ((be32_to_cpu(*hrrq->hrrq_curr) & IPR_HRRQ_TOGGLE_BIT) ==
hrrq->toggle_bit) {
irq_poll_sched(&hrrq->iopoll);
- spin_unlock_irqrestore(hrrq->lock, hrrq_flags);
+ spin_unlock(hrrq->lock);
return IRQ_HANDLED;
}
} else {
@@ -5911,7 +5909,7 @@ static irqreturn_t ipr_isr_mhrrq(int irq, void *devp)
rc = IRQ_HANDLED;
}
- spin_unlock_irqrestore(hrrq->lock, hrrq_flags);
+ spin_unlock(hrrq->lock);
list_for_each_entry_safe(ipr_cmd, temp, &doneq, queue) {
list_del(&ipr_cmd->queue);
@@ -10087,16 +10085,15 @@ static int ipr_request_other_msi_irqs(struct ipr_ioa_cfg *ioa_cfg,
static irqreturn_t ipr_test_intr(int irq, void *devp)
{
struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)devp;
- unsigned long lock_flags = 0;
irqreturn_t rc = IRQ_HANDLED;
dev_info(&ioa_cfg->pdev->dev, "Received IRQ : %d\n", irq);
- spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
+ spin_lock(ioa_cfg->host->host_lock);
ioa_cfg->msi_received = 1;
wake_up(&ioa_cfg->msi_wait_q);
- spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
+ spin_unlock(ioa_cfg->host->host_lock);
return rc;
}
--
2.8.1
next prev parent reply other threads:[~2021-02-07 11:41 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-07 11:36 [PATCH for-next 00/32] spin lock usage optimization for SCSI drivers Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 01/32] scsi: 53c700: Replace spin_lock_irqsave with spin_lock in hard IRQ Xiaofei Tan
2021-02-07 11:36 ` Xiaofei Tan [this message]
2021-02-07 11:36 ` [PATCH for-next 03/32] scsi: lpfc: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 04/32] scsi: qla4xxx: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 05/32] scsi: BusLogic: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 06/32] scsi: a100u2w: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 07/32] scsi: a2091: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 08/32] scsi: a3000: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 09/32] scsi: aha1740: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 10/32] scsi: bfa: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 11/32] scsi: esp_scsi: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 12/32] scsi: gvp11: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 13/32] scsi: hptiop: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 14/32] scsi: ibmvscsi: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 15/32] scsi: initio: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 16/32] scsi: megaraid: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 17/32] scsi: mac53c94: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 18/32] scsi: mesh: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 19/32] scsi: mvumi: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 20/32] scsi: myrb: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 21/32] scsi: myrs: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 22/32] scsi: ncr53c8xx: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 23/32] scsi: nsp32: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 24/32] scsi: pmcraid: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 25/32] scsi: pcmcia: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 26/32] scsi: qlogicfas408: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 27/32] scsi: qlogicpti: " Xiaofei Tan
2021-02-07 11:36 ` [PATCH for-next 28/32] scsi: sgiwd93: " Xiaofei Tan
2021-02-07 11:37 ` [PATCH for-next 29/32] scsi: stex: " Xiaofei Tan
2021-02-07 11:37 ` [PATCH for-next 30/32] scsi: vmw_pvscsi: " Xiaofei Tan
2021-02-07 11:37 ` [PATCH for-next 31/32] scsi: wd719x: " Xiaofei Tan
2021-02-07 11:37 ` [PATCH for-next 32/32] scsi: advansys: " Xiaofei Tan
2021-02-08 7:57 ` [PATCH for-next 00/32] spin lock usage optimization for SCSI drivers Finn Thain
2021-02-09 1:48 ` [Linuxarm] " Song Bao Hua (Barry Song)
2021-02-09 5:06 ` Finn Thain
2021-02-09 5:33 ` Song Bao Hua (Barry Song)
2021-02-10 0:28 ` Finn Thain
2021-02-10 0:37 ` Song Bao Hua (Barry Song)
2021-02-10 4:14 ` Finn Thain
2021-02-09 5:46 ` Song Bao Hua (Barry Song)
2021-02-10 4:16 ` Finn Thain
2021-02-10 5:14 ` Song Bao Hua (Barry Song)
2021-02-10 21:06 ` Finn Thain
2021-02-10 21:28 ` Song Bao Hua (Barry Song)
2021-02-10 22:34 ` Finn Thain
2021-02-10 23:49 ` Song Bao Hua (Barry Song)
2021-02-11 1:11 ` Finn Thain
2021-02-11 3:02 ` Song Bao Hua (Barry Song)
2021-02-11 23:58 ` Finn Thain
2021-02-12 0:21 ` Song Bao Hua (Barry Song)
2021-02-18 7:12 ` Xiaofei Tan
2021-02-20 5:18 ` Finn Thain
2021-02-22 2:04 ` Song Bao Hua (Barry Song)
2021-02-23 5:25 ` Finn Thain
2021-02-23 5:47 ` Song Bao Hua (Barry Song)
2021-02-24 5:20 ` Finn Thain
2021-02-24 10:50 ` Song Bao Hua (Barry Song)
2021-02-25 7:07 ` Finn Thain
2021-02-09 2:00 ` tanxiaofei
2021-02-09 5:11 ` Finn Thain
2021-02-24 9:41 ` Geert Uytterhoeven
2021-02-25 2:37 ` [Linuxarm] " Xiaofei Tan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1612697823-8073-3-git-send-email-tanxiaofei@huawei.com \
--to=tanxiaofei@huawei.com \
--cc=jejb@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linuxarm@openeuler.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox