RE: [PATCH] tty: serial: imx: Add return value check for platform_get_irq()
From: Anson Huang <hidden>
Date: 2020-05-11 07:34:07
Also in:
linux-serial, lkml
Hi, Uwe
Subject: Re: [PATCH] tty: serial: imx: Add return value check for platform_get_irq() Hello Anson, On Mon, May 11, 2020 at 03:09:56PM +0800, Anson Huang wrote:quoted
RX irq is required, so add return value check for platform_get_irq(). Signed-off-by: Anson Huang <redacted> --- drivers/tty/serial/imx.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c indexf4d6810..f4023d9 100644--- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c@@ -2252,6 +2252,8 @@ static int imx_uart_probe(struct platform_device*pdev)quoted
return PTR_ERR(base); rxirq = platform_get_irq(pdev, 0); + if (rxirq < 0) + return rxirq; txirq = platform_get_irq_optional(pdev, 1); rtsirq = platform_get_irq_optional(pdev, 2);I'm not sure we need such a check as devm_request_irq fails if the return value of platform_get_irq() is bogus. But if we decide this construct is good enough, the error reporting needs some love as currently it emits two error messages which is confusing.
From the driver, the RX IRQ is always required, if it failed in platform_get_irq(), then the rest of the code is NOT necessary to be executed, and also I am NOT sure if platform_get_irq() failed, the devm_request_irq will always failed? Not very understand about your last question, the platform_get_irq() already has error message printed out, so no additional error message is needed in the check. If looking through all other drivers, most of the platform_get_irq() are having the return value check, if it failed in platform_get_irq(), driver can just return error from .probe(). Anson _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel