@@ -1115,6 +1115,7 @@ static int max9286_parse_dt(struct max9286_priv *priv)
i2c_mux = of_find_node_by_name(dev->of_node, "i2c-mux");
if (!i2c_mux) {
dev_err(dev, "Failed to find i2c-mux node\n");
+ of_node_put(dev->of_node);
return -EINVAL;
}
@@ -1162,6 +1163,7 @@ static int max9286_parse_dt(struct max9286_priv *priv)
of_fwnode_handle(node), &vep);
if (ret) {
of_node_put(node);
+ of_node_put(dev->of_node);
return ret;
}
@@ -1171,6 +1173,7 @@ static int max9286_parse_dt(struct max9286_priv *priv)
vep.bus_type);
v4l2_fwnode_endpoint_free(&vep);
of_node_put(node);
+ of_node_put(dev->of_node);
return -EINVAL;
}
@@ -1208,6 +1211,7 @@ static int max9286_parse_dt(struct max9286_priv *priv)
priv->nsources++;
}
of_node_put(node);
+ of_node_put(dev->of_node);
priv->route_mask = priv->source_mask;
Put the device of node in case of dt parsing error. Fixes: 9eed4185c7a0 ("media: i2c: Add MAX9286 driver") Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> --- drivers/media/i2c/max9286.c | 4 ++++ 1 file changed, 4 insertions(+)