From: Thomas Gleixner <tglx@linutronix.de>
To: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>,
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,
Marc Zyngier <maz@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Biju Das <biju.das.au@gmail.com>,
linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH 1/5] irqchip/renesas-rzg2l: Prevent IRQ HW race
Date: Fri, 01 Mar 2024 15:39:14 +0100 [thread overview]
Message-ID: <87a5nixbhp.ffs@tglx> (raw)
In-Reply-To: <20240212113712.71878-2-biju.das.jz@bp.renesas.com>
On Mon, Feb 12 2024 at 11:37, Biju Das wrote:
> As per section "8.8.2 Clear Timing of Interrupt Cause" of the RZ/G2L
> hardware manual (Rev.1.45 Jan, 2024), it is mentioned that we need to
> clear the interrupt cause flag in the isr.
We need to clear? Please write changelogs in neutral tone. Also use
proper words instead of acronyms, this is not twatter.
I'm also failing to see the value of above sentence other that it
occupies space. The code already does that, no?
> It takes some time for the cpu to clear the interrupt cause
> flag. Therefore, to prevent another occurrence of interrupt due to
> this delay, the interrupt cause flag is read after clearing.
You really want to explain explicitely what the problem is. The above is
a novel
Something like this:
The irq_eoi() callback of the RX/G2L interrupt chip clears the
relevant interrupt cause bit in the TSCR register.
This write is not sufficient because the write is posted and therefore
not guaranteed to immediately clear the bit. Due to that delay the CPU
can raise the just handled interrupt again.
Prevent this by reading the register back which causes the posted
write to be flushed to the hardware before the read completes.
This uses the proper technical term 'posted write' which is well defined
and exactly the cause of the problem, no?
> Fixes: 3fed09559cd8 ("irqchip: Add RZ/G2L IA55 Interrupt Controller driver")
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> drivers/irqchip/irq-renesas-rzg2l.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/irqchip/irq-renesas-rzg2l.c b/drivers/irqchip/irq-renesas-rzg2l.c
> index 9494fc26259c..46f9b07e0e8a 100644
> --- a/drivers/irqchip/irq-renesas-rzg2l.c
> +++ b/drivers/irqchip/irq-renesas-rzg2l.c
> @@ -111,8 +111,11 @@ static void rzg2l_tint_eoi(struct irq_data *d)
> u32 reg;
>
> reg = readl_relaxed(priv->base + TSCR);
> - if (reg & bit)
> + if (reg & bit) {
> writel_relaxed(reg & ~bit, priv->base + TSCR);
> + /* Read to avoid irq generation due to irq clearing delay */
/*
* Enforce that the posted write is flushed to prevent
* that the just handled interrupt is raised again.
*/
Hmm?
> + readl_relaxed(priv->base + TSCR);
Thanks,
tglx
next prev parent reply other threads:[~2024-03-01 14:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-12 11:37 [PATCH 0/5] Fix spurious TINT IRQ and enhancements Biju Das
2024-02-12 11:37 ` [PATCH 1/5] irqchip/renesas-rzg2l: Prevent IRQ HW race Biju Das
2024-03-01 14:39 ` Thomas Gleixner [this message]
2024-03-01 15:55 ` Biju Das
2024-02-12 11:37 ` [PATCH 2/5] irqchip/renesas-rzg2l: Rename rzg2l_tint_eoi() Biju Das
2024-02-12 16:38 ` Geert Uytterhoeven
2024-02-12 17:06 ` Biju Das
2024-03-01 14:41 ` Thomas Gleixner
2024-02-12 11:37 ` [PATCH 3/5] irqchip/renesas-rzg2l: Fix spurious TINT IRQ Biju Das
2024-03-01 15:36 ` Thomas Gleixner
2024-03-05 17:41 ` Biju Das
2024-02-12 11:37 ` [PATCH 4/5] irqchip/renesas-rzg2l: Use TIEN for enable/disable Biju Das
2024-03-01 14:15 ` Thomas Gleixner
2024-03-01 14:43 ` Biju Das
2024-02-12 11:37 ` [PATCH 5/5] irqchip/renesas-rzg2l: Simplify rzg2l_irqc_irq_{en,dis}able() Biju Das
2024-03-01 14:08 ` [PATCH 0/5] Fix spurious TINT IRQ and enhancements Biju Das
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=87a5nixbhp.ffs@tglx \
--to=tglx@linutronix.de \
--cc=biju.das.au@gmail.com \
--cc=biju.das.jz@bp.renesas.com \
--cc=geert+renesas@glider.be \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=maz@kernel.org \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.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 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.