2021-12-22 03:36:36

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] serial: mps2-uart: Check for error irq

I find that platform_get_irq() will not always succeed.
It will return error irq in case there is no suitable irq.
Therefore, it might be better to check it if order to avoid the use of
error irq.

Fixes: 041f031def33 ("serial: mps2-uart: add MPS2 UART driver")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/tty/serial/mps2-uart.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c
index 587b42f754cb..117d9896051f 100644
--- a/drivers/tty/serial/mps2-uart.c
+++ b/drivers/tty/serial/mps2-uart.c
@@ -585,10 +585,20 @@ static int mps2_init_port(struct platform_device *pdev,

if (mps_port->flags & UART_PORT_COMBINED_IRQ) {
mps_port->port.irq = platform_get_irq(pdev, 0);
+ if (mps_port->port.irq < 0)
+ return mps_port->port.irq;
} else {
mps_port->rx_irq = platform_get_irq(pdev, 0);
+ if (mps_port->rx_irq < 0)
+ return mps_port->rx_irq;
+
mps_port->tx_irq = platform_get_irq(pdev, 1);
+ if (mps_port->tx_irq < 0)
+ return mps_port->tx_irq;
+
mps_port->port.irq = platform_get_irq(pdev, 2);
+ if (mps_port->port.irq < 0)
+ return mps_port->port.irq;
}

return ret;
--
2.25.1



2021-12-22 10:23:24

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH] serial: mps2-uart: Check for error irq

On 12/22/21 3:36 AM, Jiasheng Jiang wrote:
> I find that platform_get_irq() will not always succeed.
> It will return error irq in case there is no suitable irq.
> Therefore, it might be better to check it if order to avoid the use of
> error irq.
>
> Fixes: 041f031def33 ("serial: mps2-uart: add MPS2 UART driver")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---
> drivers/tty/serial/mps2-uart.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c
> index 587b42f754cb..117d9896051f 100644
> --- a/drivers/tty/serial/mps2-uart.c
> +++ b/drivers/tty/serial/mps2-uart.c
> @@ -585,10 +585,20 @@ static int mps2_init_port(struct platform_device *pdev,
>
> if (mps_port->flags & UART_PORT_COMBINED_IRQ) {
> mps_port->port.irq = platform_get_irq(pdev, 0);
> + if (mps_port->port.irq < 0)
> + return mps_port->port.irq;
> } else {
> mps_port->rx_irq = platform_get_irq(pdev, 0);
> + if (mps_port->rx_irq < 0)
> + return mps_port->rx_irq;
> +
> mps_port->tx_irq = platform_get_irq(pdev, 1);
> + if (mps_port->tx_irq < 0)
> + return mps_port->tx_irq;
> +
> mps_port->port.irq = platform_get_irq(pdev, 2);
> + if (mps_port->port.irq < 0)
> + return mps_port->port.irq;
> }
>
> return ret;
>

Acked-by: Vladimir Murzin <[email protected]>

2021-12-23 03:21:56

by Jiasheng Jiang

[permalink] [raw]
Subject: Re: Re: [PATCH] serial: mps2-uart: Check for error irq

On Thursday, December 23, 2021, Andy Shevchenko <[email protected]> wrote:
>> I find that platform_get_irq() will not always succeed.
>> It will return error irq in case there is no suitable irq.
>> Therefore, it might be better to check it if order to avoid the use of
>> error irq.


> IRQ
>
>
> You haven't compiled it, right?

Actually, I compile the patch again.
But I still gain no error.
Please give me more detail.

Sincerely thanks,
Jiasheng