2020-11-16 08:37:23

by Tian Tao

[permalink] [raw]
Subject: [PATCH] usb: mtu3: 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/usb/mtu3/mtu3_core.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
index b3b4599..a6d7684 100644
--- a/drivers/usb/mtu3/mtu3_core.c
+++ b/drivers/usb/mtu3/mtu3_core.c
@@ -745,10 +745,9 @@ static irqreturn_t mtu3_u2_common_isr(struct mtu3 *mtu)
static irqreturn_t mtu3_irq(int irq, void *data)
{
struct mtu3 *mtu = (struct mtu3 *)data;
- unsigned long flags;
u32 level1;

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

/* U3D_LV1ISR is RU */
level1 = mtu3_readl(mtu->mac_base, U3D_LV1ISR);
@@ -769,7 +768,7 @@ static irqreturn_t mtu3_irq(int irq, void *data)
if (level1 & QMU_INTR)
mtu3_qmu_isr(mtu);

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

return IRQ_HANDLED;
}
--
2.7.4


2020-11-25 02:36:21

by Chunfeng Yun

[permalink] [raw]
Subject: Re: [PATCH] usb: mtu3: replace spin_lock_irqsave by spin_lock in hard IRQ

Hi Tao,
On Mon, 2020-11-16 at 16:34 +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.
>
> Signed-off-by: Tian Tao <[email protected]>
> ---
> drivers/usb/mtu3/mtu3_core.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
> index b3b4599..a6d7684 100644
> --- a/drivers/usb/mtu3/mtu3_core.c
> +++ b/drivers/usb/mtu3/mtu3_core.c
> @@ -745,10 +745,9 @@ static irqreturn_t mtu3_u2_common_isr(struct mtu3 *mtu)
> static irqreturn_t mtu3_irq(int irq, void *data)
> {
> struct mtu3 *mtu = (struct mtu3 *)data;
> - unsigned long flags;
> u32 level1;
>
> - spin_lock_irqsave(&mtu->lock, flags);
> + spin_lock(&mtu->lock);
Sorry for late reply, I prefer to leave the code unchanged.

Thanks

>
> /* U3D_LV1ISR is RU */
> level1 = mtu3_readl(mtu->mac_base, U3D_LV1ISR);
> @@ -769,7 +768,7 @@ static irqreturn_t mtu3_irq(int irq, void *data)
> if (level1 & QMU_INTR)
> mtu3_qmu_isr(mtu);
>
> - spin_unlock_irqrestore(&mtu->lock, flags);
> + spin_unlock(&mtu->lock);
>
> return IRQ_HANDLED;
> }