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

Message ID 7bd165e82ed3675d4ddee343ab373031e995a126.1686412569.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series [v2,1/3] tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error |

Commit Message

Christophe JAILLET June 10, 2023, 3:59 p.m. UTC
  Use abs() instead of hand-writing it.

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

Comments

Jiri Slaby June 12, 2023, 5:13 a.m. UTC | #1
On 10. 06. 23, 17:59, Christophe JAILLET wrote:
> Use abs() instead of hand-writing it.
> 
> Suggested-by: Walter Harms <wharms@bfs.de>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
> 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?

thanks,
  
Jiri Slaby June 12, 2023, 5:31 a.m. UTC | #2
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@bfs.de>
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> ---
>> 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@kernel.org>

It would help noting this in the commit log.

> thanks,-- 
js
suse labs
  

Patch

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);
 
 		if (calc_deviation < deviation) {
 			/*