I like the patch; thanks for doing this for the last instance in drivers/pci/. If you repost, remove some words from the subject line, e.g., befa45fb5bdd ("PCI: Use devm_add_action_or_reset()") Yes, I'm OCD enough to look through the git history for similar previous commits and make new changes match :) On Wed, Sep 22, 2021 at 09:00:08PM +0800, Cai Huoqing wrote: > The helper function devm_add_action_or_reset() will internally > call devm_add_action(), and if devm_add_action() fails then it will > execute the action mentioned and return the error code. So > use devm_add_action_or_reset() instead of devm_add_action() > to simplify the error handling, reduce the code. > > Signed-off-by: Cai Huoqing <caihuoqing@xxxxxxxxx> > --- > drivers/pci/controller/pci-mvebu.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c > index ed13e81cd691..cd387f235b7f 100644 > --- a/drivers/pci/controller/pci-mvebu.c > +++ b/drivers/pci/controller/pci-mvebu.c > @@ -897,11 +897,9 @@ static int mvebu_pcie_parse_port(struct mvebu_pcie *pcie, > goto skip; > } > > - ret = devm_add_action(dev, mvebu_pcie_port_clk_put, port); > - if (ret < 0) { > - clk_put(port->clk); > + ret = devm_add_action_or_reset(dev, mvebu_pcie_port_clk_put, port); > + if (ret < 0) > goto err; > - } Unrelated note: this function does things like this: if (...) { ret = -ENOMEM; goto err; } ... err: return ret; which I think is pointless. There's no cleanup to be done at "err", so these places could simply "return -ENOMEM" instead, which is much easier to read. And this: if (reset_gpio == -EPROBE_DEFER) { ret = reset_gpio; goto err; } Should say: if (reset_gpio == -EPROBE_DEFER) return -EPROBE_DEFER; since we know the value we're returning. Obviously this would be something for a different patch. > return 1; > > -- > 2.25.1 >