Hi,
This patch fixes issues found by a static checker.
Thanks,
Adrien Grassein (1): drm/bridge: lt8912b: Fix issues found during static analysis
drivers/gpu/drm/bridge/lontium-lt8912b.c | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-)
Some issues where found during static analysis of this driver.
Reported-by: Dan Carpenter dan.carpenter@oracle.com Suggested-by: Dan Carpenter dan.carpenter@oracle.com Signed-off-by: Adrien Grassein adrien.grassein@gmail.com --- drivers/gpu/drm/bridge/lontium-lt8912b.c | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bridge/lontium-lt8912b.c index 61491615bad0..dcaceab818ee 100644 --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -621,7 +621,8 @@ static int lt8912_parse_dt(struct lt8912 *lt) { struct gpio_desc *gp_reset; struct device *dev = lt->dev; - int ret = 0; + int ret; + int data_lanes; struct device_node *port_node; struct device_node *endpoint;
@@ -635,13 +636,16 @@ static int lt8912_parse_dt(struct lt8912 *lt) lt->gp_reset = gp_reset;
endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 0, -1); - if (IS_ERR(endpoint)) { - ret = PTR_ERR(endpoint); - goto end; - } + if (!endpoint) + return -ENODEV;
- lt->data_lanes = of_property_count_u32_elems(endpoint, "data-lanes"); + data_lanes = of_property_count_u32_elems(endpoint, "data-lanes"); of_node_put(endpoint); + if (data_lanes < 0) { + dev_err(lt->dev, "%s: Bad data-lanes property\n", __func__); + return lt->data_lanes; + } + lt->data_lanes = data_lanes;
lt->host_node = of_graph_get_remote_node(dev->of_node, 0, -1); if (!lt->host_node) { @@ -658,19 +662,22 @@ static int lt8912_parse_dt(struct lt8912 *lt) }
lt->hdmi_port = of_drm_find_bridge(port_node); - if (IS_ERR(lt->hdmi_port)) { + if (!lt->hdmi_port) { dev_err(lt->dev, "%s: Failed to get hdmi port\n", __func__); - ret = PTR_ERR(lt->hdmi_port); - of_node_put(lt->host_node); - goto end; + ret = -ENODEV; + of_node_put(port_node); + goto err_free_host_node; }
if (!of_device_is_compatible(port_node, "hdmi-connector")) { dev_err(lt->dev, "%s: Failed to get hdmi port\n", __func__); + of_node_put(port_node); ret = -EINVAL; + goto err_free_host_node; }
of_node_put(port_node); + return 0;
end: return ret;
On Wed, Mar 31, 2021 at 01:21:37PM +0200, Adrien Grassein wrote:
- lt->data_lanes = of_property_count_u32_elems(endpoint, "data-lanes");
- data_lanes = of_property_count_u32_elems(endpoint, "data-lanes"); of_node_put(endpoint);
- if (data_lanes < 0) {
dev_err(lt->dev, "%s: Bad data-lanes property\n", __func__);
return lt->data_lanes;
This needs to be "return data_lanes;"
- }
- lt->data_lanes = data_lanes;
I really believe that v4 will be the perfect version though... :)
regards, dan carpenter
Le mer. 31 mars 2021 à 13:36, Dan Carpenter dan.carpenter@oracle.com a écrit :
On Wed, Mar 31, 2021 at 01:21:37PM +0200, Adrien Grassein wrote:
lt->data_lanes = of_property_count_u32_elems(endpoint, "data-lanes");
data_lanes = of_property_count_u32_elems(endpoint, "data-lanes"); of_node_put(endpoint);
if (data_lanes < 0) {
dev_err(lt->dev, "%s: Bad data-lanes property\n", __func__);
return lt->data_lanes;
This needs to be "return data_lanes;"
}
lt->data_lanes = data_lanes;
I really believe that v4 will be the perfect version though... :)
Ahah, maybe, let's see ^^.
regards, dan carpenter
dri-devel@lists.freedesktop.org