Hi Cai, Thank you for the patch. On Wed, Sep 22, 2021 at 08:59: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> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c > index 70ab4fbdc23e..c8f44bcb298a 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c > @@ -265,11 +265,9 @@ static int dw_hdmi_cec_probe(struct platform_device *pdev) > /* override the module pointer */ > cec->adap->owner = THIS_MODULE; > > - ret = devm_add_action(&pdev->dev, dw_hdmi_cec_del, cec); > - if (ret) { > - cec_delete_adapter(cec->adap); > + ret = devm_add_action_or_reset(&pdev->dev, dw_hdmi_cec_del, cec); > + if (ret) > return ret; > - } > > ret = devm_request_threaded_irq(&pdev->dev, cec->irq, > dw_hdmi_cec_hardirq, -- Regards, Laurent Pinchart