Re: [PATCH 2/2] tty: serial: fsl_lpuart: fix the potential bug of dereference null return value

From: Fabio Estevam
Date: Mon Apr 26 2021 - 08:16:09 EST


On Mon, Apr 26, 2021 at 9:09 AM Sherry Sun <sherry.sun@xxxxxxx> wrote:

> Thanks for your reply.
> I guess you mean the of_match_table will not be NULL since it contains compatible, right?
> But for the lpuart data -- struct lpuart_soc_data, won’t it meet the NULL case? such as { .compatible = "fsl,imx8qxp-lpuart", }.
> Here of_device_id won’t be NULL, but lpuart_soc_data Is NULL.

In linux-next we have:

static const struct of_device_id lpuart_dt_ids[] = {
{ .compatible = "fsl,vf610-lpuart", .data = &vf_data, },
{ .compatible = "fsl,ls1021a-lpuart", .data = &ls1021a_data, },
{ .compatible = "fsl,ls1028a-lpuart", .data = &ls1028a_data, },
{ .compatible = "fsl,imx7ulp-lpuart", .data = &imx7ulp_data, },
{ .compatible = "fsl,imx8qxp-lpuart", .data = &imx8qxp_data, },
{ /* sentinel */ }
};

All compatible entries have a .data field populated.

How sdata can be NULL?