On Wed, 10 Apr 2024 at 19:52, R SUNDAR <prosunofficial@xxxxxxxxx> wrote: > > 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); Please stick this to the top of the function. Otherwise LGTM. > > 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 > -- With best wishes Dmitry