2021-05-10 13:30:36

by Juerg Haefliger

[permalink] [raw]
Subject: [PATCH] watchdog: Add {min,max}_timeout sysfs nodes

The valid range for the 'timeout' value is useful information so expose
the min and max timeout values via sysfs.

Signed-off-by: Juerg Haefliger <[email protected]>
---
drivers/watchdog/watchdog_dev.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
index 2946f3a63110..b84d53a79618 100644
--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
@@ -525,6 +525,24 @@ static ssize_t timeout_show(struct device *dev, struct device_attribute *attr,
}
static DEVICE_ATTR_RO(timeout);

+static ssize_t min_timeout_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct watchdog_device *wdd = dev_get_drvdata(dev);
+
+ return sprintf(buf, "%u\n", wdd->min_timeout);
+}
+static DEVICE_ATTR_RO(min_timeout);
+
+static ssize_t max_timeout_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct watchdog_device *wdd = dev_get_drvdata(dev);
+
+ return sprintf(buf, "%u\n", wdd->max_timeout);
+}
+static DEVICE_ATTR_RO(max_timeout);
+
static ssize_t pretimeout_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -609,6 +627,8 @@ static struct attribute *wdt_attrs[] = {
&dev_attr_state.attr,
&dev_attr_identity.attr,
&dev_attr_timeout.attr,
+ &dev_attr_min_timeout.attr,
+ &dev_attr_max_timeout.attr,
&dev_attr_pretimeout.attr,
&dev_attr_timeleft.attr,
&dev_attr_bootstatus.attr,
--
2.27.0


2021-05-10 14:10:28

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] watchdog: Add {min,max}_timeout sysfs nodes

On 5/10/21 6:16 AM, Juerg Haefliger wrote:
> The valid range for the 'timeout' value is useful information so expose
> the min and max timeout values via sysfs.
>
> Signed-off-by: Juerg Haefliger <[email protected]>
> ---
> drivers/watchdog/watchdog_dev.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
> index 2946f3a63110..b84d53a79618 100644
> --- a/drivers/watchdog/watchdog_dev.c
> +++ b/drivers/watchdog/watchdog_dev.c
> @@ -525,6 +525,24 @@ static ssize_t timeout_show(struct device *dev, struct device_attribute *attr,
> }
> static DEVICE_ATTR_RO(timeout);
>
> +static ssize_t min_timeout_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct watchdog_device *wdd = dev_get_drvdata(dev);
> +
> + return sprintf(buf, "%u\n", wdd->min_timeout);
> +}
> +static DEVICE_ATTR_RO(min_timeout);
> +
> +static ssize_t max_timeout_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct watchdog_device *wdd = dev_get_drvdata(dev);
> +
> + return sprintf(buf, "%u\n", wdd->max_timeout);

Makes sense, but please use sysfs_emit().

Guenter

> +}
> +static DEVICE_ATTR_RO(max_timeout);
> +
> static ssize_t pretimeout_show(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> @@ -609,6 +627,8 @@ static struct attribute *wdt_attrs[] = {
> &dev_attr_state.attr,
> &dev_attr_identity.attr,
> &dev_attr_timeout.attr,
> + &dev_attr_min_timeout.attr,
> + &dev_attr_max_timeout.attr,
> &dev_attr_pretimeout.attr,
> &dev_attr_timeleft.attr,
> &dev_attr_bootstatus.attr,
>

2021-05-10 14:18:06

by Juerg Haefliger

[permalink] [raw]
Subject: Re: [PATCH] watchdog: Add {min,max}_timeout sysfs nodes

On Mon, 10 May 2021 06:45:15 -0700
Guenter Roeck <[email protected]> wrote:

> On 5/10/21 6:16 AM, Juerg Haefliger wrote:
> > The valid range for the 'timeout' value is useful information so expose
> > the min and max timeout values via sysfs.
> >
> > Signed-off-by: Juerg Haefliger <[email protected]>
> > ---
> > drivers/watchdog/watchdog_dev.c | 20 ++++++++++++++++++++
> > 1 file changed, 20 insertions(+)
> >
> > diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
> > index 2946f3a63110..b84d53a79618 100644
> > --- a/drivers/watchdog/watchdog_dev.c
> > +++ b/drivers/watchdog/watchdog_dev.c
> > @@ -525,6 +525,24 @@ static ssize_t timeout_show(struct device *dev, struct device_attribute *attr,
> > }
> > static DEVICE_ATTR_RO(timeout);
> >
> > +static ssize_t min_timeout_show(struct device *dev,
> > + struct device_attribute *attr, char *buf)
> > +{
> > + struct watchdog_device *wdd = dev_get_drvdata(dev);
> > +
> > + return sprintf(buf, "%u\n", wdd->min_timeout);
> > +}
> > +static DEVICE_ATTR_RO(min_timeout);
> > +
> > +static ssize_t max_timeout_show(struct device *dev,
> > + struct device_attribute *attr, char *buf)
> > +{
> > + struct watchdog_device *wdd = dev_get_drvdata(dev);
> > +
> > + return sprintf(buf, "%u\n", wdd->max_timeout);
>
> Makes sense, but please use sysfs_emit().

OK. And maybe I should send a patch to convert the other occurrences of
sprintf as well?

...Juerg


> Guenter
>
> > +}
> > +static DEVICE_ATTR_RO(max_timeout);
> > +
> > static ssize_t pretimeout_show(struct device *dev,
> > struct device_attribute *attr, char *buf)
> > {
> > @@ -609,6 +627,8 @@ static struct attribute *wdt_attrs[] = {
> > &dev_attr_state.attr,
> > &dev_attr_identity.attr,
> > &dev_attr_timeout.attr,
> > + &dev_attr_min_timeout.attr,
> > + &dev_attr_max_timeout.attr,
> > &dev_attr_pretimeout.attr,
> > &dev_attr_timeleft.attr,
> > &dev_attr_bootstatus.attr,
> >
>


Attachments:
(No filename) (849.00 B)
OpenPGP digital signature

2021-05-10 15:24:48

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] watchdog: Add {min,max}_timeout sysfs nodes

On 5/10/21 7:14 AM, Juerg Haefliger wrote:
> On Mon, 10 May 2021 06:45:15 -0700
> Guenter Roeck <[email protected]> wrote:
>
>> On 5/10/21 6:16 AM, Juerg Haefliger wrote:
>>> The valid range for the 'timeout' value is useful information so expose
>>> the min and max timeout values via sysfs.
>>>
>>> Signed-off-by: Juerg Haefliger <[email protected]>
>>> ---
>>> drivers/watchdog/watchdog_dev.c | 20 ++++++++++++++++++++
>>> 1 file changed, 20 insertions(+)
>>>
>>> diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
>>> index 2946f3a63110..b84d53a79618 100644
>>> --- a/drivers/watchdog/watchdog_dev.c
>>> +++ b/drivers/watchdog/watchdog_dev.c
>>> @@ -525,6 +525,24 @@ static ssize_t timeout_show(struct device *dev, struct device_attribute *attr,
>>> }
>>> static DEVICE_ATTR_RO(timeout);
>>>
>>> +static ssize_t min_timeout_show(struct device *dev,
>>> + struct device_attribute *attr, char *buf)
>>> +{
>>> + struct watchdog_device *wdd = dev_get_drvdata(dev);
>>> +
>>> + return sprintf(buf, "%u\n", wdd->min_timeout);
>>> +}
>>> +static DEVICE_ATTR_RO(min_timeout);
>>> +
>>> +static ssize_t max_timeout_show(struct device *dev,
>>> + struct device_attribute *attr, char *buf)
>>> +{
>>> + struct watchdog_device *wdd = dev_get_drvdata(dev);
>>> +
>>> + return sprintf(buf, "%u\n", wdd->max_timeout);
>>
>> Makes sense, but please use sysfs_emit().
>
> OK. And maybe I should send a patch to convert the other occurrences of
> sprintf as well?
>

Sure, if you want to.

Guenter

2021-05-11 06:32:00

by Juerg Haefliger

[permalink] [raw]
Subject: [PATCH v2] watchdog: Add {min,max}_timeout sysfs nodes

The valid range for the 'timeout' value is useful information so expose
the min and max timeout values via sysfs.

Signed-off-by: Juerg Haefliger <[email protected]>
---

v1->v2:
- replace sprintf() with sysfs_emit().

drivers/watchdog/watchdog_dev.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
index fe68a97973a5..7c1007ab1b71 100644
--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
@@ -526,6 +526,24 @@ static ssize_t timeout_show(struct device *dev, struct device_attribute *attr,
}
static DEVICE_ATTR_RO(timeout);

+static ssize_t min_timeout_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct watchdog_device *wdd = dev_get_drvdata(dev);
+
+ return sysfs_emit(buf, "%u\n", wdd->min_timeout);
+}
+static DEVICE_ATTR_RO(min_timeout);
+
+static ssize_t max_timeout_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct watchdog_device *wdd = dev_get_drvdata(dev);
+
+ return sysfs_emit(buf, "%u\n", wdd->max_timeout);
+}
+static DEVICE_ATTR_RO(max_timeout);
+
static ssize_t pretimeout_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -610,6 +628,8 @@ static struct attribute *wdt_attrs[] = {
&dev_attr_state.attr,
&dev_attr_identity.attr,
&dev_attr_timeout.attr,
+ &dev_attr_min_timeout.attr,
+ &dev_attr_max_timeout.attr,
&dev_attr_pretimeout.attr,
&dev_attr_timeleft.attr,
&dev_attr_bootstatus.attr,
--
2.27.0

2021-05-11 13:37:11

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2] watchdog: Add {min,max}_timeout sysfs nodes

On 5/10/21 11:29 PM, Juerg Haefliger wrote:
> The valid range for the 'timeout' value is useful information so expose
> the min and max timeout values via sysfs.
>
> Signed-off-by: Juerg Haefliger <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
>
> v1->v2:
> - replace sprintf() with sysfs_emit().
>
> drivers/watchdog/watchdog_dev.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
> index fe68a97973a5..7c1007ab1b71 100644
> --- a/drivers/watchdog/watchdog_dev.c
> +++ b/drivers/watchdog/watchdog_dev.c
> @@ -526,6 +526,24 @@ static ssize_t timeout_show(struct device *dev, struct device_attribute *attr,
> }
> static DEVICE_ATTR_RO(timeout);
>
> +static ssize_t min_timeout_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct watchdog_device *wdd = dev_get_drvdata(dev);
> +
> + return sysfs_emit(buf, "%u\n", wdd->min_timeout);
> +}
> +static DEVICE_ATTR_RO(min_timeout);
> +
> +static ssize_t max_timeout_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct watchdog_device *wdd = dev_get_drvdata(dev);
> +
> + return sysfs_emit(buf, "%u\n", wdd->max_timeout);
> +}
> +static DEVICE_ATTR_RO(max_timeout);
> +
> static ssize_t pretimeout_show(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> @@ -610,6 +628,8 @@ static struct attribute *wdt_attrs[] = {
> &dev_attr_state.attr,
> &dev_attr_identity.attr,
> &dev_attr_timeout.attr,
> + &dev_attr_min_timeout.attr,
> + &dev_attr_max_timeout.attr,
> &dev_attr_pretimeout.attr,
> &dev_attr_timeleft.attr,
> &dev_attr_bootstatus.attr,
>