Linux-Watchdog Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] watchdog: Use DIV_ROUND_UP() instead of open-coding it
@ 2021-03-20  8:29 Lars-Peter Clausen
  2021-03-20 15:32 ` Guenter Roeck
  0 siblings, 1 reply; 2+ messages in thread
From: Lars-Peter Clausen @ 2021-03-20  8:29 UTC (permalink / raw)
  To: Wim Van Sebroeck, Guenter Roeck
  Cc: Michael Ellerman, enjamin Herrenschmidt, Paul Mackerras,
	linux-watchdog, Lars-Peter Clausen

Use DIV_ROUND_UP() instead of open-coding it. This makes it more clear
what is going on for the casual reviewer.

Generated using the following the Coccinelle semantic patch.

// <smpl>
@r1@
expression x;
constant C1;
constant C2;
@@
 ((x) + C1) / C2

@script:python@
C1 << r1.C1;
C2 << r1.C2;
@@
print C1, C2
try:
	if int(C1) != int(C2) - 1 or int(C1) == 1:
		cocci.include_match(False)
except:
	cocci.include_match(False)

@@
expression r1.x;
constant r1.C1;
constant r1.C2;
@@
-(((x) + C1) / C2)
+DIV_ROUND_UP(x, C2)
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/watchdog/riowd.c       | 2 +-
 drivers/watchdog/w83977f_wdt.c | 2 +-
 drivers/watchdog/wdrtas.c      | 2 +-
 drivers/watchdog/wdt977.c      | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/watchdog/riowd.c b/drivers/watchdog/riowd.c
index 7008596a575f..aa8a929505b5 100644
--- a/drivers/watchdog/riowd.c
+++ b/drivers/watchdog/riowd.c
@@ -132,7 +132,7 @@ static long riowd_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 			return -EFAULT;
 		if ((new_margin < 60) || (new_margin > (255 * 60)))
 			return -EINVAL;
-		riowd_timeout = (new_margin + 59) / 60;
+		riowd_timeout = DIV_ROUND_UP(new_margin, 60);
 		riowd_writereg(p, riowd_timeout, WDTO_INDEX);
 		fallthrough;
 
diff --git a/drivers/watchdog/w83977f_wdt.c b/drivers/watchdog/w83977f_wdt.c
index fd64ae77780a..fbc31c4a1e0b 100644
--- a/drivers/watchdog/w83977f_wdt.c
+++ b/drivers/watchdog/w83977f_wdt.c
@@ -231,7 +231,7 @@ static int wdt_set_timeout(int t)
 	if (t < 15)
 		return -EINVAL;
 
-	tmrval = ((t + 15) + 29) / 30;
+	tmrval = DIV_ROUND_UP(t + 15, 30);
 
 	if (tmrval > 255)
 		return -EINVAL;
diff --git a/drivers/watchdog/wdrtas.c b/drivers/watchdog/wdrtas.c
index c00627825de8..0c21ee535a74 100644
--- a/drivers/watchdog/wdrtas.c
+++ b/drivers/watchdog/wdrtas.c
@@ -75,7 +75,7 @@ static int wdrtas_set_interval(int interval)
 	static int print_msg = 10;
 
 	/* rtas uses minutes */
-	interval = (interval + 59) / 60;
+	interval = DIV_ROUND_UP(interval, 60);
 
 	result = rtas_call(wdrtas_token_set_indicator, 3, 1, NULL,
 			   WDRTAS_SURVEILLANCE_IND, 0, interval);
diff --git a/drivers/watchdog/wdt977.c b/drivers/watchdog/wdt977.c
index c9b8e863f70f..7cff1300be3e 100644
--- a/drivers/watchdog/wdt977.c
+++ b/drivers/watchdog/wdt977.c
@@ -201,7 +201,7 @@ static int wdt977_set_timeout(int t)
 	int tmrval;
 
 	/* convert seconds to minutes, rounding up */
-	tmrval = (t + 59) / 60;
+	tmrval = DIV_ROUND_UP(t, 60);
 
 	if (machine_is_netwinder()) {
 		/* we have a hw bug somewhere, so each 977 minute is actually
-- 
2.20.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] watchdog: Use DIV_ROUND_UP() instead of open-coding it
  2021-03-20  8:29 [PATCH] watchdog: Use DIV_ROUND_UP() instead of open-coding it Lars-Peter Clausen
@ 2021-03-20 15:32 ` Guenter Roeck
  0 siblings, 0 replies; 2+ messages in thread
From: Guenter Roeck @ 2021-03-20 15:32 UTC (permalink / raw)
  To: Lars-Peter Clausen, Wim Van Sebroeck
  Cc: Michael Ellerman, enjamin Herrenschmidt, Paul Mackerras, linux-watchdog

On 3/20/21 1:29 AM, Lars-Peter Clausen wrote:
> Use DIV_ROUND_UP() instead of open-coding it. This makes it more clear
> what is going on for the casual reviewer.
> 

Those are all old watchdog drivers, which are not worth cleaning up.

As I said before, those drivers should only be touched to either fix
a real bug, to convert them to new style watchdog drivers, or to
drop them.

Thanks,
Guenter

> Generated using the following the Coccinelle semantic patch.
> 
> // <smpl>
> @r1@
> expression x;
> constant C1;
> constant C2;
> @@
>  ((x) + C1) / C2
> 
> @script:python@
> C1 << r1.C1;
> C2 << r1.C2;
> @@
> print C1, C2
> try:
> 	if int(C1) != int(C2) - 1 or int(C1) == 1:
> 		cocci.include_match(False)
> except:
> 	cocci.include_match(False)
> 
> @@
> expression r1.x;
> constant r1.C1;
> constant r1.C2;
> @@
> -(((x) + C1) / C2)
> +DIV_ROUND_UP(x, C2)
> // </smpl>
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> ---
>  drivers/watchdog/riowd.c       | 2 +-
>  drivers/watchdog/w83977f_wdt.c | 2 +-
>  drivers/watchdog/wdrtas.c      | 2 +-
>  drivers/watchdog/wdt977.c      | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/watchdog/riowd.c b/drivers/watchdog/riowd.c
> index 7008596a575f..aa8a929505b5 100644
> --- a/drivers/watchdog/riowd.c
> +++ b/drivers/watchdog/riowd.c
> @@ -132,7 +132,7 @@ static long riowd_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
>  			return -EFAULT;
>  		if ((new_margin < 60) || (new_margin > (255 * 60)))
>  			return -EINVAL;
> -		riowd_timeout = (new_margin + 59) / 60;
> +		riowd_timeout = DIV_ROUND_UP(new_margin, 60);
>  		riowd_writereg(p, riowd_timeout, WDTO_INDEX);
>  		fallthrough;
>  
> diff --git a/drivers/watchdog/w83977f_wdt.c b/drivers/watchdog/w83977f_wdt.c
> index fd64ae77780a..fbc31c4a1e0b 100644
> --- a/drivers/watchdog/w83977f_wdt.c
> +++ b/drivers/watchdog/w83977f_wdt.c
> @@ -231,7 +231,7 @@ static int wdt_set_timeout(int t)
>  	if (t < 15)
>  		return -EINVAL;
>  
> -	tmrval = ((t + 15) + 29) / 30;
> +	tmrval = DIV_ROUND_UP(t + 15, 30);
>  
>  	if (tmrval > 255)
>  		return -EINVAL;
> diff --git a/drivers/watchdog/wdrtas.c b/drivers/watchdog/wdrtas.c
> index c00627825de8..0c21ee535a74 100644
> --- a/drivers/watchdog/wdrtas.c
> +++ b/drivers/watchdog/wdrtas.c
> @@ -75,7 +75,7 @@ static int wdrtas_set_interval(int interval)
>  	static int print_msg = 10;
>  
>  	/* rtas uses minutes */
> -	interval = (interval + 59) / 60;
> +	interval = DIV_ROUND_UP(interval, 60);
>  
>  	result = rtas_call(wdrtas_token_set_indicator, 3, 1, NULL,
>  			   WDRTAS_SURVEILLANCE_IND, 0, interval);
> diff --git a/drivers/watchdog/wdt977.c b/drivers/watchdog/wdt977.c
> index c9b8e863f70f..7cff1300be3e 100644
> --- a/drivers/watchdog/wdt977.c
> +++ b/drivers/watchdog/wdt977.c
> @@ -201,7 +201,7 @@ static int wdt977_set_timeout(int t)
>  	int tmrval;
>  
>  	/* convert seconds to minutes, rounding up */
> -	tmrval = (t + 59) / 60;
> +	tmrval = DIV_ROUND_UP(t, 60);
>  
>  	if (machine_is_netwinder()) {
>  		/* we have a hw bug somewhere, so each 977 minute is actually
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-20  8:29 [PATCH] watchdog: Use DIV_ROUND_UP() instead of open-coding it Lars-Peter Clausen
2021-03-20 15:32 ` Guenter Roeck

Linux-Watchdog Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-watchdog/0 linux-watchdog/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-watchdog linux-watchdog/ https://lore.kernel.org/linux-watchdog \
		linux-watchdog@vger.kernel.org
	public-inbox-index linux-watchdog

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-watchdog


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git