On Fri, 2020-10-30 at 23:45 +0800, Zhang Qilong wrote: > pm_runtime_get_sync() will increment pm usage counter even > it failed. Forgetting to call pm_runtime_put_noidle will > result in reference leak in apple_mfi_fc_set_property, so > we should fix it. > > Signed-off-by: Zhang Qilong <zhangqilong3@xxxxxxxxxx> It looks correct, but I don't know whether it's necessary. There's a boatload of users of that API that don't even check for the get_sync() retval, and loads more where it's checked but never acted upon. Do you intend to fix all those as well? > --- > drivers/usb/misc/apple-mfi-fastcharge.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/misc/apple-mfi-fastcharge.c > b/drivers/usb/misc/apple-mfi-fastcharge.c > index b403094a6b3a..9e1ad4536e36 100644 > --- a/drivers/usb/misc/apple-mfi-fastcharge.c > +++ b/drivers/usb/misc/apple-mfi-fastcharge.c > @@ -120,8 +120,10 @@ static int apple_mfi_fc_set_property(struct > power_supply *psy, > dev_dbg(&mfi->udev->dev, "prop: %d\n", psp); > > ret = pm_runtime_get_sync(&mfi->udev->dev); > - if (ret < 0) > + if (ret < 0) { > + pm_runtime_put_noidle(&mfi->udev->dev); > return ret; > + } > > switch (psp) { > case POWER_SUPPLY_PROP_CHARGE_TYPE: