2020-11-02 00:53:50

by Tian Tao

[permalink] [raw]
Subject: [PATCH] mmc: owl-mmc: replace spin_lock_irqsave by spin_lock in hard IRQ

The code has been in a irq-disabled context since it is hard IRQ. There
is no necessity to do it again.

Signed-off-by: Tian Tao <[email protected]>
---
drivers/mmc/host/owl-mmc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/owl-mmc.c b/drivers/mmc/host/owl-mmc.c
index ccf214a..82d2bad 100644
--- a/drivers/mmc/host/owl-mmc.c
+++ b/drivers/mmc/host/owl-mmc.c
@@ -134,10 +134,9 @@ static void owl_mmc_update_reg(void __iomem *reg, unsigned int val, bool state)
static irqreturn_t owl_irq_handler(int irq, void *devid)
{
struct owl_mmc_host *owl_host = devid;
- unsigned long flags;
u32 state;

- spin_lock_irqsave(&owl_host->lock, flags);
+ spin_lock(&owl_host->lock);

state = readl(owl_host->base + OWL_REG_SD_STATE);
if (state & OWL_SD_STATE_TEI) {
@@ -147,7 +146,7 @@ static irqreturn_t owl_irq_handler(int irq, void *devid)
complete(&owl_host->sdc_complete);
}

- spin_unlock_irqrestore(&owl_host->lock, flags);
+ spin_unlock(&owl_host->lock);

return IRQ_HANDLED;
}
--
2.7.4


2020-11-02 15:56:35

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH] mmc: owl-mmc: replace spin_lock_irqsave by spin_lock in hard IRQ

On Mon, Nov 02, 2020 at 08:52:17AM +0800, Tian Tao wrote:
> The code has been in a irq-disabled context since it is hard IRQ. There
> is no necessity to do it again.
>

Ah, yes. This should save few cycles!

> Signed-off-by: Tian Tao <[email protected]>

Reviewed-by: Manivannan Sadhasivam <[email protected]>

Thanks,
Mani

> ---
> drivers/mmc/host/owl-mmc.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/owl-mmc.c b/drivers/mmc/host/owl-mmc.c
> index ccf214a..82d2bad 100644
> --- a/drivers/mmc/host/owl-mmc.c
> +++ b/drivers/mmc/host/owl-mmc.c
> @@ -134,10 +134,9 @@ static void owl_mmc_update_reg(void __iomem *reg, unsigned int val, bool state)
> static irqreturn_t owl_irq_handler(int irq, void *devid)
> {
> struct owl_mmc_host *owl_host = devid;
> - unsigned long flags;
> u32 state;
>
> - spin_lock_irqsave(&owl_host->lock, flags);
> + spin_lock(&owl_host->lock);
>
> state = readl(owl_host->base + OWL_REG_SD_STATE);
> if (state & OWL_SD_STATE_TEI) {
> @@ -147,7 +146,7 @@ static irqreturn_t owl_irq_handler(int irq, void *devid)
> complete(&owl_host->sdc_complete);
> }
>
> - spin_unlock_irqrestore(&owl_host->lock, flags);
> + spin_unlock(&owl_host->lock);
>
> return IRQ_HANDLED;
> }
> --
> 2.7.4
>

2020-11-05 13:02:34

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH] mmc: owl-mmc: replace spin_lock_irqsave by spin_lock in hard IRQ

On Mon, 2 Nov 2020 at 01:51, Tian Tao <[email protected]> wrote:
>
> The code has been in a irq-disabled context since it is hard IRQ. There
> is no necessity to do it again.
>
> Signed-off-by: Tian Tao <[email protected]>

Applied for next, thanks!

Kind regards
Uffe


> ---
> drivers/mmc/host/owl-mmc.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/owl-mmc.c b/drivers/mmc/host/owl-mmc.c
> index ccf214a..82d2bad 100644
> --- a/drivers/mmc/host/owl-mmc.c
> +++ b/drivers/mmc/host/owl-mmc.c
> @@ -134,10 +134,9 @@ static void owl_mmc_update_reg(void __iomem *reg, unsigned int val, bool state)
> static irqreturn_t owl_irq_handler(int irq, void *devid)
> {
> struct owl_mmc_host *owl_host = devid;
> - unsigned long flags;
> u32 state;
>
> - spin_lock_irqsave(&owl_host->lock, flags);
> + spin_lock(&owl_host->lock);
>
> state = readl(owl_host->base + OWL_REG_SD_STATE);
> if (state & OWL_SD_STATE_TEI) {
> @@ -147,7 +146,7 @@ static irqreturn_t owl_irq_handler(int irq, void *devid)
> complete(&owl_host->sdc_complete);
> }
>
> - spin_unlock_irqrestore(&owl_host->lock, flags);
> + spin_unlock(&owl_host->lock);
>
> return IRQ_HANDLED;
> }
> --
> 2.7.4
>