Message ID | 20210331093822.251839-2-adrien.grassein@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fixes 30e2ae943c26 "drm/bridge: Introduce LT8912B DSI to HDMI | expand |
On Wed, Mar 31, 2021 at 11:38:22AM +0200, Adrien Grassein wrote: > 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 | 20 ++++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bridge/lontium-lt8912b.c > index 61491615bad0..9a5a19655362 100644 > --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c > +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c > @@ -635,13 +635,15 @@ 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"); > of_node_put(endpoint); > + if (lt->data_lanes < 0) { Ah flip. Unfortunately, ->data_lanes is a u8 so it can't be negative. > + dev_err(lt->dev, "%s: Bad data-lanes property\n", __func__); > + return lt->data_lanes; > + } regards, dan carpenter
Le mer. 31 mars 2021 à 12:29, Dan Carpenter <dan.carpenter@oracle.com> a écrit : > > On Wed, Mar 31, 2021 at 11:38:22AM +0200, Adrien Grassein wrote: > > 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 | 20 ++++++++++++-------- > > 1 file changed, 12 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bridge/lontium-lt8912b.c > > index 61491615bad0..9a5a19655362 100644 > > --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c > > +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c > > @@ -635,13 +635,15 @@ 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"); > > of_node_put(endpoint); > > + if (lt->data_lanes < 0) { > > Ah flip. Unfortunately, ->data_lanes is a u8 so it can't be negative. > oups ^^. > > + dev_err(lt->dev, "%s: Bad data-lanes property\n", __func__); > > + return lt->data_lanes; > > + } > > regards, > dan carpenter > Thanks, Adrien
diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bridge/lontium-lt8912b.c index 61491615bad0..9a5a19655362 100644 --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -635,13 +635,15 @@ 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"); of_node_put(endpoint); + if (lt->data_lanes < 0) { + dev_err(lt->dev, "%s: Bad data-lanes property\n", __func__); + return lt->data_lanes; + } lt->host_node = of_graph_get_remote_node(dev->of_node, 0, -1); if (!lt->host_node) { @@ -658,16 +660,18 @@ 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);
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 | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)