On Fri, May 22, 2020 at 6:20 PM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Fri, May 22, 2020 at 10:46 AM <dinghao.liu@xxxxxxxxxx> wrote: ... > Moreover, consider below case > > CPU1: ...somewhere in the code... > pm_runtime_get() // with success! > ...see below... > pm_runtime_put() > > CPU2: ...on parallel thread... > ret = pm_runtime_get_sync() // failed! > if (ret) > pm_runtime_put() // oi vei, we put device into sleep > > So, there is a potential issue. ...and even if it's impossible (no bugs in runtime PM core, etc) the code with put() looks suspicious. -- With Best Regards, Andy Shevchenko