[PATCH] tty: serial: Add a NULL check for of_node

Ma Ke posted 1 patch 1 year, 5 months ago
drivers/tty/serial/fsl_linflexuart.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] tty: serial: Add a NULL check for of_node
Posted by Ma Ke 1 year, 5 months ago
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
Re: [PATCH] tty: serial: Add a NULL check for of_node
Posted by Greg KH 1 year, 5 months ago
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