From mboxrd@z Thu Jan 1 00:00:00 1970 From: Navid Emamdoost Subject: [PATCH] drm/panel: check failure cases in the probe func Date: Wed, 24 Jul 2019 09:48:44 -0500 Message-ID: <20190724144845.4791-1-navid.emamdoost@gmail.com> References: <20190724051700.GA22730@ravnborg.org> Return-path: In-Reply-To: <20190724051700.GA22730@ravnborg.org> Sender: linux-kernel-owner@vger.kernel.org To: sam@ravnborg.org Cc: emamd001@umn.edu, kjlu@umn.edu, smccaman@umn.edu, secalert@redhat.com, Navid Emamdoost , Thierry Reding , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org The following function calls may fail and return NULL, so the null check is added. of_graph_get_next_endpoint of_graph_get_remote_port_parent of_graph_get_remote_port Signed-off-by: Navid Emamdoost --- drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c index 28c0620dfe0f..9484fdb60f68 100644 --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c @@ -399,7 +399,13 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c, /* Look up the DSI host. It needs to probe before we do. */ endpoint = of_graph_get_next_endpoint(dev->of_node, NULL); + if (!endpoint) + return -ENODEV; + dsi_host_node = of_graph_get_remote_port_parent(endpoint); + if (!dsi_host_node) + return -ENODEV; + host = of_find_mipi_dsi_host_by_node(dsi_host_node); of_node_put(dsi_host_node); if (!host) { @@ -408,6 +414,9 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c, } info.node = of_graph_get_remote_port(endpoint); + if (!info.node) + return -ENODEV; + of_node_put(endpoint); ts->dsi = mipi_dsi_device_register_full(host, &info); -- 2.17.1