of_node_put(node) does nothing if node == NULL, so it can be moved to the
cleanup section at the bottom.

Signed-off-by: Luca Ceresoli <luca.ceres...@bootlin.com>
Reviewed-by: Dmitry Osipenko <dig...@gmail.com>

---

No changes in v5

Changed in v4:
 - Added review tags

No changes in v3
No changes in v2
---
 drivers/staging/media/tegra-video/vi.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/media/tegra-video/vi.c 
b/drivers/staging/media/tegra-video/vi.c
index 1c0424bf1ab0..ce4ff4cbf587 100644
--- a/drivers/staging/media/tegra-video/vi.c
+++ b/drivers/staging/media/tegra-video/vi.c
@@ -1352,7 +1352,7 @@ static int tegra_vi_channels_alloc(struct tegra_vi *vi)
        struct device_node *node = vi->dev->of_node;
        struct device_node *ep = NULL;
        struct device_node *ports;
-       struct device_node *port;
+       struct device_node *port = NULL;
        unsigned int port_num;
        struct device_node *parent;
        struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 };
@@ -1375,7 +1375,6 @@ static int tegra_vi_channels_alloc(struct tegra_vi *vi)
                        dev_err(vi->dev, "invalid port num %d for %pOF\n",
                                port_num, port);
                        ret = -EINVAL;
-                       of_node_put(port);
                        goto cleanup;
                }
 
@@ -1398,13 +1397,12 @@ static int tegra_vi_channels_alloc(struct tegra_vi *vi)
 
                lanes = v4l2_ep.bus.mipi_csi2.num_data_lanes;
                ret = tegra_vi_channel_alloc(vi, port_num, port, lanes);
-               if (ret < 0) {
-                       of_node_put(port);
+               if (ret < 0)
                        goto cleanup;
-               }
        }
 
 cleanup:
+       of_node_put(port);
        of_node_put(ports);
        return ret;
 }
-- 
2.34.1

Reply via email to