drivers/tty/serial/fsl_linflexuart.c | 3 +++ 1 file changed, 3 insertions(+)
The pdev->dev.of_node can be NULL if the "serial" node is absent.
Add a NULL check for np to return an error in such cases.
Found by code review. Compile tested only.
Cc: stable@vger.kernel.org
Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
drivers/tty/serial/fsl_linflexuart.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_linflexuart.c
index e972df4b188d..f46f3c21ee1b 100644
--- a/drivers/tty/serial/fsl_linflexuart.c
+++ b/drivers/tty/serial/fsl_linflexuart.c
@@ -811,6 +811,9 @@ static int linflex_probe(struct platform_device *pdev)
struct resource *res;
int ret;
+ if (!np)
+ return -ENODEV;
+
sport = devm_kzalloc(&pdev->dev, sizeof(*sport), GFP_KERNEL);
if (!sport)
return -ENOMEM;
--
2.25.1
On Wed, Aug 14, 2024 at 06:15:20PM +0800, Ma Ke wrote:
> The pdev->dev.of_node can be NULL if the "serial" node is absent.
When will that happen?
> Add a NULL check for np to return an error in such cases.
>
> Found by code review. Compile tested only.
So this never can happen?
>
> Cc: stable@vger.kernel.org
> Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234")
> Signed-off-by: Ma Ke <make24@iscas.ac.cn>
> ---
> drivers/tty/serial/fsl_linflexuart.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_linflexuart.c
> index e972df4b188d..f46f3c21ee1b 100644
> --- a/drivers/tty/serial/fsl_linflexuart.c
> +++ b/drivers/tty/serial/fsl_linflexuart.c
> @@ -811,6 +811,9 @@ static int linflex_probe(struct platform_device *pdev)
> struct resource *res;
> int ret;
>
> + if (!np)
> + return -ENODEV;
Again, how can this happen? Probe is only called if the platform device
is found, so why wouldn't the of_node pointer be set?
Don't check for impossible things.
thanks,
greg k-h
© 2016 - 2026 Red Hat, Inc.