All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Jeffery <andrew@codeconstruct.com.au>
To: Guenter Roeck <linux@roeck-us.net>,
	Heyi Guo <guoheyi@linux.alibaba.com>,
	 devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	 linux-watchdog@vger.kernel.org
Cc: Wim Van Sebroeck <wim@linux-watchdog.org>,
	Joel Stanley <joel@jms.id.au>,
	 Eddie James <eajames@linux.ibm.com>
Subject: Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic
Date: Wed, 19 Feb 2025 11:55:19 +1030	[thread overview]
Message-ID: <201b57c00043e2c3590c77a4d1aba413aa576b01.camel@codeconstruct.com.au> (raw)
In-Reply-To: <50ab5a0a-b807-4bd7-bda8-7c6f4bfc76fc@roeck-us.net>

On Mon, 2025-02-17 at 21:33 -0800, Guenter Roeck wrote:
> On 2/17/25 19:16, Heyi Guo wrote:
> > Aspeed watchdog uses counting down logic, so the value set to register
> > should be the value of subtracting pretimeout from total timeout.
> > 
> > Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt")
> > 
> > Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com>
> > 
> > Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
> > Cc: Guenter Roeck <linux@roeck-us.net>
> > Cc: Joel Stanley <joel@jms.id.au>
> > Cc: Andrew Jeffery <andrew@codeconstruct.com.au>
> > Cc: Eddie James <eajames@linux.ibm.com>
> > ---
> >   drivers/watchdog/aspeed_wdt.c | 7 +++++++
> >   1 file changed, 7 insertions(+)
> > 
> > diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c
> > index b4773a6aaf8c..520d8aba12a5 100644
> > --- a/drivers/watchdog/aspeed_wdt.c
> > +++ b/drivers/watchdog/aspeed_wdt.c
> > @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct watchdog_device *wdd,
> >         u32 actual = pretimeout * WDT_RATE_1MHZ;
> >         u32 s = wdt->cfg->irq_shift;
> >         u32 m = wdt->cfg->irq_mask;
> > +       u32 reload = readl(wdt->base + WDT_RELOAD_VALUE);
> > +
> 
> It is unusual to use a register value here and not the configured timeout
> value. I would have assumed that pretimeout is compared against wdt->timout,
> not against the register value, and that the multiplication with WDT_RATE_1MHZ
> is done after validation. This needs an explanation.

+1

> 
> > +       if (actual >= reload)
> > +               return -EINVAL;
> > +
> 
> On top of that, you'll also need to explain why watchdog_pretimeout_invalid()
> and with it the validation in watchdog_set_pretimeout() does not work for this
> watchdog and why this extra validation is necessary.

+1 as well.

Further, the logic looks broken regardless for the AST2400 where
there's no pretimeout support. aspeed_wdt_set_pretimeout() should error
out if wdt->cfg->irq_mask is 0.

Andrew



  reply	other threads:[~2025-02-19  1:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-18  3:16 [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Heyi Guo
2025-02-18  3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo
2025-02-18  7:53   ` Krzysztof Kozlowski
2025-02-19  1:12   ` Andrew Jeffery
2025-02-18  5:33 ` [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Guenter Roeck
2025-02-19  1:25   ` Andrew Jeffery [this message]
2025-02-19  1:40     ` Guenter Roeck
2025-02-19  3:41   ` Heyi Guo
2025-02-19  6:07     ` Guenter Roeck
2025-02-19  6:48       ` Heyi Guo
     [not found]   ` <7e2c5f2c-d07a-472c-aae5-6b639a144d88@linux.alibaba.com>
2025-02-19  3:51     ` Heyi Guo
2025-02-19  0:42 ` Rob Herring (Arm)

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=201b57c00043e2c3590c77a4d1aba413aa576b01.camel@codeconstruct.com.au \
    --to=andrew@codeconstruct.com.au \
    --cc=devicetree@vger.kernel.org \
    --cc=eajames@linux.ibm.com \
    --cc=guoheyi@linux.alibaba.com \
    --cc=joel@jms.id.au \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-aspeed@lists.ozlabs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=wim@linux-watchdog.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.