use the new cleanup magic to replace of_node_put() with __free(device_node) marking to auto release and to simplify the error paths. Suggested-by: Julia Lawall <julia.lawall@xxxxxxxx> Signed-off-by: R SUNDAR <prosunofficial@xxxxxxxxx> --- drivers/usb/typec/mux/nb7vpq904m.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/drivers/usb/typec/mux/nb7vpq904m.c b/drivers/usb/typec/mux/nb7vpq904m.c index b17826713753..72ec9ef3ac58 100644 --- a/drivers/usb/typec/mux/nb7vpq904m.c +++ b/drivers/usb/typec/mux/nb7vpq904m.c @@ -315,29 +315,27 @@ static const int supported_data_lane_mapping[][DATA_LANES_COUNT] = { static int nb7vpq904m_parse_data_lanes_mapping(struct nb7vpq904m *nb7) { - struct device_node *ep; u32 data_lanes[4]; int ret, i, j; - - ep = of_graph_get_endpoint_by_regs(nb7->client->dev.of_node, 1, 0); + struct device_node *ep __free(device_node) = + of_graph_get_endpoint_by_regs(nb7->client->dev.of_node, 1, 0); if (ep) { ret = of_property_count_u32_elems(ep, "data-lanes"); if (ret == -EINVAL) /* Property isn't here, consider default mapping */ - goto out_done; + return 0; if (ret < 0) - goto out_error; + return ret; if (ret != DATA_LANES_COUNT) { dev_err(&nb7->client->dev, "expected 4 data lanes\n"); - ret = -EINVAL; - goto out_error; + return -EINVAL; } ret = of_property_read_u32_array(ep, "data-lanes", data_lanes, DATA_LANES_COUNT); if (ret) - goto out_error; + return ret; for (i = 0; i < ARRAY_SIZE(supported_data_lane_mapping); i++) { for (j = 0; j < DATA_LANES_COUNT; j++) { @@ -358,18 +356,11 @@ static int nb7vpq904m_parse_data_lanes_mapping(struct nb7vpq904m *nb7) break; default: dev_err(&nb7->client->dev, "invalid data lanes mapping\n"); - ret = -EINVAL; - goto out_error; + return -EINVAL; } } -out_done: - ret = 0; - -out_error: - of_node_put(ep); - - return ret; + return 0; } static int nb7vpq904m_probe(struct i2c_client *client) -- 2.34.1