Re: [PATCH v2 06/16] watchdog: hpwdt: drop warning after calling watchdog_init_timeout

From: Jerry Hoemann
Date: Tue Apr 16 2019 - 16:35:04 EST


On Tue, Apr 16, 2019 at 12:25:05PM +0200, Wolfram Sang wrote:
> The core will print out details now.
>
> Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/watchdog/hpwdt.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
> index ef30c7e9728d..db1bf6f546ae 100644
> --- a/drivers/watchdog/hpwdt.c
> +++ b/drivers/watchdog/hpwdt.c
> @@ -311,8 +311,7 @@ static int hpwdt_init_one(struct pci_dev *dev,
> goto error_init_nmi_decoding;
>
> watchdog_set_nowayout(&hpwdt_dev, nowayout);
> - if (watchdog_init_timeout(&hpwdt_dev, soft_margin, NULL))
> - dev_warn(&dev->dev, "Invalid soft_margin: %d.\n", soft_margin);
> + watchdog_init_timeout(&hpwdt_dev, soft_margin, NULL);

I applied patches 1,2 & 6 in testing.

Note, that hpwdt is passing NULL as the third parameter to watchdog_init_timeout().

The second patch in this series is using "dev" as input to dev_err and dev_warn.

This results in the following in dmesg when trying to load hpwdt w/ an invalid soft_margin:


[ 80.848160] (NULL device *): driver supplied timeout (4294967295) out of range
[ 80.855429] (NULL device *): falling back to default timeout (30)


if the call in hpwdt driver is changed to:

if (watchdog_init_timeout(&hpwdt_dev, soft_margin, &dev->dev))


We see the message like we'd desire:

[ 2061.167100] hpwdt 0000:01:00.0: driver supplied timeout (4294967295) out of range
[ 2061.174633] hpwdt 0000:01:00.0: falling back to default timeout (30)



watchdog_init_timeout() uses dev to "try to get the timeout_sec property"

I am not familiar with this part of the core and what effect having the hpwdt
driver pass in dev to watchdog_init_timeout would have. (I.e. is the
change safe?)

Guenter, can you help on this question?

Note, hpwdt isn't the only watch dog device that is passing NULL to
watchdog_init_timeout.

Thanks,


Jerry


>
> if (pretimeout && hpwdt_dev.timeout <= PRETIMEOUT_SEC) {
> dev_warn(&dev->dev, "timeout <= pretimeout. Setting pretimeout to zero\n");
> --
> 2.11.0

--

-----------------------------------------------------------------------------
Jerry Hoemann Software Engineer Hewlett Packard Enterprise
-----------------------------------------------------------------------------