From: Antonio Borneo <antonio.borneo@foss.st.com>
To: Ju Nan <junan76@163.com>, <tglx@kernel.org>
Cc: <radu@rendec.net>, <linux-kernel@vger.kernel.org>,
<mcoquelin.stm32@gmail.com>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [Linux-stm32] [PATCH v3] irqchip/stm32mp-exti: fix the unit of the hwspinlock timeout
Date: Fri, 21 Aug 2026 10:07:06 +0200 [thread overview]
Message-ID: <7900f737467ef06076829db3087e4fc6b080e9ef.camel@foss.st.com> (raw)
In-Reply-To: <20260821024756.24927-2-junan76@163.com>
On Fri, 2026-08-21 at 10:47 +0800, Ju Nan wrote:
> HWSPNLCK_TIMEOUT is passed to hwspin_lock_timeout_in_atomic(), whose
> timeout argument is in milliseconds, not microseconds:
>
> atomic_delay += HWSPINLOCK_RETRY_DELAY_US;
> if (atomic_delay > to * 1000)
> return -ETIMEDOUT;
>
> So stm32mp_exti_set_type() asks for a 1 second timeout where the comment
> next to the macro says it wants 1 millisecond. The semaphore is polled
> with udelay() from a section that holds chip_data->rlock, a
> raw_spinlock_t, so preemption stays disabled for the whole wait on every
> configuration, PREEMPT_RT included.
>
> The hwspinlock core documents this explicitly:
>
> If the mode is HWLOCK_IN_ATOMIC (called from an atomic context) the
> timeout is handled with busy-waiting delays, hence shall not exceed
> few msecs.
>
> Fixes: 5257169ade8c ("irqchip/stm32-exti: Use the hwspin_lock_timeout_in_atomic() API")
> Reviewed-by: Radu Rendec <radu@rendec.net>
> Signed-off-by: Ju Nan <junan76@163.com>
> ---
> changelog:
>
> v3: redefine the timeout macro with time unit on it
> v2: add "Fixes" tag suggested by Radu Rendec
> v1: https://lore.kernel.org/all/20260805032139.35420-2-junan76@163.com/
> ---
> drivers/irqchip/irq-stm32mp-exti.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/irqchip/irq-stm32mp-exti.c b/drivers/irqchip/irq-stm32mp-exti.c
> index a24f4f1a4..ce4e03ee1 100644
> --- a/drivers/irqchip/irq-stm32mp-exti.c
> +++ b/drivers/irqchip/irq-stm32mp-exti.c
> @@ -23,7 +23,7 @@
>
> #define IRQS_PER_BANK 32
>
> -#define HWSPNLCK_TIMEOUT 1000 /* usec */
> +#define HWSPNLCK_TIMEOUT_MS 1
>
> #define EXTI_EnCIDCFGR(n) (0x180 + (n) * 4)
> #define EXTI_HWCFGR1 0x3f0
> @@ -377,7 +377,7 @@ static int stm32mp_exti_set_type(struct irq_data *d, unsigned int type)
> raw_spin_lock(&chip_data->rlock);
>
> if (hwlock) {
> - err = hwspin_lock_timeout_in_atomic(hwlock, HWSPNLCK_TIMEOUT);
> + err = hwspin_lock_timeout_in_atomic(hwlock, HWSPNLCK_TIMEOUT_MS);
> if (err) {
> pr_err("%s can't get hwspinlock (%d)\n", __func__, err);
> goto unlock;
Thanks!
Reviewed-by: Antonio Borneo <antonio.borneo@foss.st.com>
next prev parent reply other threads:[~2026-08-21 8:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-05 3:21 [PATCH] irqchip/stm32mp-exti: fix the unit of the hwspinlock timeout Ju Nan
2026-08-15 14:08 ` Radu Rendec
2026-08-15 14:19 ` Radu Rendec
2026-08-19 19:57 ` Thomas Gleixner
2026-08-21 2:47 ` [PATCH v3] " Ju Nan
2026-08-21 8:07 ` Antonio Borneo [this message]
2026-08-16 14:20 ` [PATCH v2] " Ju Nan
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=7900f737467ef06076829db3087e4fc6b080e9ef.camel@foss.st.com \
--to=antonio.borneo@foss.st.com \
--cc=junan76@163.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=radu@rendec.net \
--cc=tglx@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.