Fixing this in the PM core will influence all callers of pm_runtime_get_sync(). Therefore I think the better solution is to fix its misused callers. Regards, Dinghao "Dmitry Torokhov" <dmitry.torokhov@xxxxxxxxx>写道: > Hi Dinghao, > > On Wed, May 20, 2020 at 6:35 AM Dinghao Liu <dinghao.liu@xxxxxxxxxx> wrote: > > > > pm_runtime_get_sync() increments the runtime PM usage counter even > > the call returns an error code. Thus a pairing decrement is needed > > on the error handling path to keep the counter balanced. > > This is a very surprising behavior and I wonder if this should be > fixed in the PM core (or the required cleanup steps need to be called > out in the function description). I also see that a few drivers that > handle this situation correctly (?) call pm_runtime_put_noidle() > instead of pm_runtime_put_sync() in the error path. > > Rafael, do you have any guidance here? > > Thanks. > > -- > Dmitry