Quoting Cristian Ciocaltea (2024-10-17 16:17:29) > diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c > index 82ae1f26e634572b943d18b8d86267f0a69911a6..0d0fe364b66a8590d5e7c63dc6c1e70c59d53e89 100644 > --- a/drivers/clk/clk-devres.c > +++ b/drivers/clk/clk-devres.c > @@ -230,25 +239,27 @@ int __must_check devm_clk_bulk_get_all_enable(struct device *dev, > return -ENOMEM; > > ret = clk_bulk_get_all(dev, &devres->clks); > - if (ret > 0) { > - *clks = devres->clks; > - devres->num_clks = ret; > - } else { > - devres_free(devres); > - return ret; > - } > + if (ret <= 0) > + goto err_free_devres; Please don't use goto so that the diff is minimized. > + > + *clks = devres->clks; > + devres->num_clks = ret; > > ret = clk_bulk_prepare_enable(devres->num_clks, *clks); > - if (!ret) { > - devres_add(dev, devres); > - } else { > + if (ret) { > clk_bulk_put_all(devres->num_clks, devres->clks); > - devres_free(devres); > + goto err_free_devres; return ret;