Re: [PATCH] serial: jsm: Change n to unsigned int

Jiri Slaby
2023-02-21T06:07:54Z

On 21. 02. 23, 2:03, Mohammad Mahfooz wrote:
> Change n to an unsigned int and remove casts from min()s.
>
> Signed-off-by: Mohammad Mahfooz <mohammadmahfoozpersonal@gmail.com>
> ---
> drivers/tty/serial/jsm/jsm_neo.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/jsm/jsm_neo.c b/drivers/tty/serial/jsm/jsm_neo.c
> index 4cce1e423b06..394121870436 100644
> --- a/drivers/tty/serial/jsm/jsm_neo.c
> +++ b/drivers/tty/serial/jsm/jsm_neo.c
> @@ -277,7 +277,7 @@ static void neo_copy_data_from_uart_to_queue(struct jsm_channel *ch)
> int qleft = 0;
> u8 linestatus = 0;
> u8 error_mask = 0;
> - int n = 0;
> + u32 n = 0;
> int total = 0;
> u16 head;
> u16 tail;
> @@ -342,15 +342,15 @@ static void neo_copy_data_from_uart_to_queue(struct jsm_channel *ch)
> break;
>
> /* Make sure we don't go over the end of our queue */
> - n = min(((u32) total), (RQUEUESIZE - (u32) head));
> + n = min(total, RQUEUESIZE - head);

This should warn now, right as total is signed too, right? And qleft.
All should likely be unsigned. And the computation of qleft would need
to be changed.

It's not as easy as this.

>
> /*
> * Cut down n even further if needed, this is to fix
> * a problem with memcpy_fromio() with the Neo on the
> * IBM pSeries platform.
> - * 15 bytes max appears to be the magic number.
> + * 12 bytes max appears to be the magic number.
> */
> - n = min_t(u32, n, 12);
> + n = min(n, 12U);
>
> /*
> * Since we are grabbing the linestatus register, which

--
js
suse labs