From: Grygorii Strashko <grygorii.strashko@ti.com>
To: Luo Jiaxing <luojiaxing@huawei.com>, <linus.walleij@linaro.org>,
<andy.shevchenko@gmail.com>, <andriy.shevchenko@linux.intel.com>,
<ssantosh@kernel.org>, <khilman@kernel.org>
Cc: <linux-gpio@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linuxarm@openeuler.org>
Subject: Re: [PATCH for next v1 1/2] gpio: omap: Replace raw_spin_lock_irqsave with raw_spin_lock in omap_gpio_irq_handler()
Date: Thu, 11 Feb 2021 20:14:53 +0200 [thread overview]
Message-ID: <fab1e871-08e4-fc71-9dbf-9bcacf18e2e1@ti.com> (raw)
In-Reply-To: <1612774577-55943-2-git-send-email-luojiaxing@huawei.com>
On 08/02/2021 10:56, Luo Jiaxing wrote:
> There is no need to use API with _irqsave in omap_gpio_irq_handler(),
> because it already be in a irq-disabled context.
>
> Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
> ---
> drivers/gpio/gpio-omap.c | 15 ++++++---------
> 1 file changed, 6 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
> index 41952bb..dc8bbf4 100644
> --- a/drivers/gpio/gpio-omap.c
> +++ b/drivers/gpio/gpio-omap.c
> @@ -560,8 +560,6 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
> u32 enabled, isr, edge;
> unsigned int bit;
> struct gpio_bank *bank = gpiobank;
> - unsigned long wa_lock_flags;
> - unsigned long lock_flags;
>
> isr_reg = bank->base + bank->regs->irqstatus;
> if (WARN_ON(!isr_reg))
> @@ -572,7 +570,7 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
> return IRQ_NONE;
>
> while (1) {
> - raw_spin_lock_irqsave(&bank->lock, lock_flags);
> + raw_spin_lock(&bank->lock);
>
> enabled = omap_get_gpio_irqbank_mask(bank);
> isr = readl_relaxed(isr_reg) & enabled;
> @@ -586,7 +584,7 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
> if (edge)
> omap_clear_gpio_irqbank(bank, edge);
>
> - raw_spin_unlock_irqrestore(&bank->lock, lock_flags);
> + raw_spin_unlock(&bank->lock);
>
> if (!isr)
> break;
> @@ -595,7 +593,7 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
> bit = __ffs(isr);
> isr &= ~(BIT(bit));
>
> - raw_spin_lock_irqsave(&bank->lock, lock_flags);
> + raw_spin_lock(&bank->lock);
> /*
> * Some chips can't respond to both rising and falling
> * at the same time. If this irq was requested with
> @@ -606,15 +604,14 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
> if (bank->toggle_mask & (BIT(bit)))
> omap_toggle_gpio_edge_triggering(bank, bit);
>
> - raw_spin_unlock_irqrestore(&bank->lock, lock_flags);
> + raw_spin_unlock(&bank->lock);
>
> - raw_spin_lock_irqsave(&bank->wa_lock, wa_lock_flags);
> + raw_spin_lock(&bank->wa_lock);
>
> generic_handle_irq(irq_find_mapping(bank->chip.irq.domain,
> bit));
>
> - raw_spin_unlock_irqrestore(&bank->wa_lock,
> - wa_lock_flags);
> + raw_spin_unlock(&bank->wa_lock);
> }
> }
> exit:
>
NACK.
Who said that this is always hard IRQ handler?
What about RT-kernel or boot with "threadirqs"?
--
Best regards,
grygorii
next prev parent reply other threads:[~2021-02-11 18:30 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-08 8:56 [PATCH for next v1 0/2] gpio: few clean up patches to replace spin_lock_irqsave with spin_lock Luo Jiaxing
2021-02-08 8:56 ` [PATCH for next v1 1/2] gpio: omap: Replace raw_spin_lock_irqsave with raw_spin_lock in omap_gpio_irq_handler() Luo Jiaxing
2021-02-11 18:14 ` Grygorii Strashko [this message]
2021-02-11 19:39 ` Arnd Bergmann
2021-02-11 20:16 ` Grygorii Strashko
[not found] ` <a61ef337fd1c4538a47fe855920f95d3@hisilicon.com>
[not found] ` <CAK8P3a3SHQNjF5ZpqHQweG7BQ52Xi1hQKDiMVKq4aNK_7VDw6w@mail.gmail.com>
2021-02-12 10:27 ` [Linuxarm] " Grygorii Strashko
2021-02-12 10:42 ` Song Bao Hua (Barry Song)
2021-02-12 10:57 ` Andy Shevchenko
2021-02-12 11:29 ` Song Bao Hua (Barry Song)
2021-02-12 11:53 ` Grygorii Strashko
2021-02-12 13:12 ` Song Bao Hua (Barry Song)
2021-02-12 14:08 ` Grygorii Strashko
2021-02-12 20:06 ` Song Bao Hua (Barry Song)
2021-02-12 20:23 ` Arnd Bergmann
2021-02-12 20:49 ` Song Bao Hua (Barry Song)
2021-02-12 10:59 ` Arnd Bergmann
2021-02-12 11:35 ` Andy Shevchenko
2021-02-08 9:11 ` [Linuxarm] [PATCH for next v1 0/2] gpio: few clean up patches to replace spin_lock_irqsave with spin_lock luojiaxing
2021-02-08 13:28 ` Andy Shevchenko
2021-02-09 9:24 ` luojiaxing
2021-02-09 9:42 ` Andy Shevchenko
2021-02-10 3:43 ` luojiaxing
2021-02-10 10:50 ` Andy Shevchenko
2021-02-10 11:50 ` [Linuxarm] " Song Bao Hua (Barry Song)
2021-02-10 14:56 ` Andy Shevchenko
2021-02-10 20:42 ` Song Bao Hua (Barry Song)
2021-02-11 9:58 ` Andy Shevchenko
-- strict thread matches above, loose matches on Subject: below --
2021-02-08 8:57 Luo Jiaxing
2021-02-08 8:57 ` [PATCH for next v1 1/2] gpio: omap: Replace raw_spin_lock_irqsave with raw_spin_lock in omap_gpio_irq_handler() Luo Jiaxing
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=fab1e871-08e4-fc71-9dbf-9bcacf18e2e1@ti.com \
--to=grygorii.strashko@ti.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=khilman@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@openeuler.org \
--cc=luojiaxing@huawei.com \
--cc=ssantosh@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).