diff mbox series

[-next] 8250_men_mcb: Fix unsigned expression compared with zero

Message ID 20230803142053.1308926-1-lizetao1@huawei.com
State New
Headers show
Series [-next] 8250_men_mcb: Fix unsigned expression compared with zero | expand

Commit Message

Li Zetao Aug. 3, 2023, 2:20 p.m. UTC
There is a warning reported by coccinelle:

./drivers/tty/serial/8250/8250_men_mcb.c:226:6-19: WARNING:
	Unsigned expression compared with zero: data -> line [ i ]     <     0

The array "line" of serial_8250_men_mcb_data is used to record the
registered serial port. When register a port failed, it will return
an error code, but the type of "line" is "unsigned int", causing
the error code to reverse. Modify the type of "data -> line" to solve
this problem.

Fixes: 2554e6ba28a2 ("8250_men_mcb: Read num ports from register data.")
Signed-off-by: Li Zetao <lizetao1@huawei.com>
---
 drivers/tty/serial/8250/8250_men_mcb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jiri Slaby Aug. 4, 2023, 5:07 a.m. UTC | #1
On 03. 08. 23, 16:20, Li Zetao wrote:
> There is a warning reported by coccinelle:
> 
> ./drivers/tty/serial/8250/8250_men_mcb.c:226:6-19: WARNING:
> 	Unsigned expression compared with zero: data -> line [ i ]     <     0
> 
> The array "line" of serial_8250_men_mcb_data is used to record the
> registered serial port. When register a port failed, it will return
> an error code, but the type of "line" is "unsigned int", causing
> the error code to reverse. Modify the type of "data -> line" to solve
> this problem.
> 
> Fixes: 2554e6ba28a2 ("8250_men_mcb: Read num ports from register data.")
> Signed-off-by: Li Zetao <lizetao1@huawei.com>
> ---
>   drivers/tty/serial/8250/8250_men_mcb.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/8250/8250_men_mcb.c b/drivers/tty/serial/8250/8250_men_mcb.c
> index 5f301195575d..14cf6011a002 100644
> --- a/drivers/tty/serial/8250/8250_men_mcb.c
> +++ b/drivers/tty/serial/8250/8250_men_mcb.c
> @@ -46,7 +46,7 @@
>   
>   struct serial_8250_men_mcb_data {
>   	int num_ports;
> -	unsigned int line[MAX_PORTS];
> +	int line[MAX_PORTS];

LGTM

Reviewed-by: Jiri Slaby <jirislaby@kernel.org>

But I wonder why this didn't emit a warning:
   dev_info(&mdev->dev, "found MCB UART: ttyS%d\n", data->line[i]);

I.e. %d for uint?

thanks,
Andy Shevchenko Aug. 4, 2023, 5:37 a.m. UTC | #2
On Thu, Aug 03, 2023 at 10:20:53PM +0800, Li Zetao wrote:
> There is a warning reported by coccinelle:
> 
> ./drivers/tty/serial/8250/8250_men_mcb.c:226:6-19: WARNING:
> 	Unsigned expression compared with zero: data -> line [ i ]     <     0
> 
> The array "line" of serial_8250_men_mcb_data is used to record the
> registered serial port. When register a port failed, it will return
> an error code, but the type of "line" is "unsigned int", causing
> the error code to reverse. Modify the type of "data -> line" to solve
> this problem.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Andy Shevchenko Aug. 4, 2023, 6:36 a.m. UTC | #3
On Fri, Aug 04, 2023 at 07:07:06AM +0200, Jiri Slaby wrote:
> On 03. 08. 23, 16:20, Li Zetao wrote:

...

> But I wonder why this didn't emit a warning:
>   dev_info(&mdev->dev, "found MCB UART: ttyS%d\n", data->line[i]);
> 
> I.e. %d for uint?

Do we have this anywhere enabled -Wformat-signedness?
diff mbox series

Patch

diff --git a/drivers/tty/serial/8250/8250_men_mcb.c b/drivers/tty/serial/8250/8250_men_mcb.c
index 5f301195575d..14cf6011a002 100644
--- a/drivers/tty/serial/8250/8250_men_mcb.c
+++ b/drivers/tty/serial/8250/8250_men_mcb.c
@@ -46,7 +46,7 @@ 
 
 struct serial_8250_men_mcb_data {
 	int num_ports;
-	unsigned int line[MAX_PORTS];
+	int line[MAX_PORTS];
 	unsigned int offset[MAX_PORTS];
 };