Re: [PATCH v2 3/3] tty: serial: samsung_tty: Use abs() to simplify some code

From: Jiri Slaby
Date: Mon Jun 12 2023 - 01:31:31 EST


On 12. 06. 23, 7:13, Jiri Slaby wrote:
On 10. 06. 23, 17:59, Christophe JAILLET wrote:
Use abs() instead of hand-writing it.

Suggested-by: Walter Harms <wharms@xxxxxx>
Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
---
v2: new patch
---
  drivers/tty/serial/samsung_tty.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
index 0b37019820b4..b29e9dfd81a6 100644
--- a/drivers/tty/serial/samsung_tty.c
+++ b/drivers/tty/serial/samsung_tty.c
@@ -24,6 +24,7 @@
  #include <linux/dmaengine.h>
  #include <linux/dma-mapping.h>
  #include <linux/slab.h>
+#include <linux/math.h>
  #include <linux/module.h>
  #include <linux/ioport.h>
  #include <linux/io.h>
@@ -1485,9 +1486,7 @@ static unsigned int s3c24xx_serial_getclk(struct s3c24xx_uart_port *ourport,
          }
          quot--;
-        calc_deviation = req_baud - baud;
-        if (calc_deviation < 0)
-            calc_deviation = -calc_deviation;
+        calc_deviation = abs(req_baud - baud);

Does this work provided req_baud and baud are unsigned?

Oh, yes, it does, _hopefully_. A bit unexpectedly for me, but:
* abs - return absolute value of an argument
* @x: the value. If it is unsigned type, it is converted to signed type first.

So:

Reviewed-by: Jiri Slaby <jirislaby@xxxxxxxxxx>

It would help noting this in the commit log.

thanks,--
js
suse labs