of_match_device could return NULL, and so can cause a NULL pointer dereference later. Signed-off-by: Shailendra Verma <shailendra.v at samsung.com> --- drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index ca22e5e..dbb99cf 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -1082,15 +1082,22 @@ static enum drm_mode_status rk3288_mipi_dsi_mode_valid( static int dw_mipi_dsi_bind(struct device *dev, struct device *master, void *data) { - const struct of_device_id *of_id = - of_match_device(dw_mipi_dsi_dt_ids, dev); - const struct dw_mipi_dsi_plat_data *pdata = of_id->data; + const struct of_device_id *of_id; + const struct dw_mipi_dsi_plat_data *pdata; struct platform_device *pdev = to_platform_device(dev); struct drm_device *drm = data; struct dw_mipi_dsi *dsi; struct resource *res; int ret; + of_id = of_match_device(dw_mipi_dsi_dt_ids, dev); + if (!of_id) { + dev_err(dev, "Error: No device match found\n"); + return -ENODEV; + } + + pdata = of_id->data; + dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); if (!dsi) return -ENOMEM; -- 1.7.9.5