On 3/15/21 6:31 PM, Lukasz Luba wrote: > The devfreq->lock is held for time of setup. Release the lock in the > error path, before jumping to the end of the function. > > Change the goto destination which frees the allocated memory. > > Cc: v5.9+ <stable@xxxxxxxxxxxxxxx> # v5.9+ > Fixes: 4dc3bab8687f ("PM / devfreq: Add support delayed timer for polling mode") > Signed-off-by: Lukasz Luba <lukasz.luba@xxxxxxx> > --- > v2: > - added fixes tag and CC stable v5.9+ > - used capital letter in commit header > > > drivers/devfreq/devfreq.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c > index b6d3e7db0b09..99b2eeedc238 100644 > --- a/drivers/devfreq/devfreq.c > +++ b/drivers/devfreq/devfreq.c > @@ -822,7 +822,8 @@ struct devfreq *devfreq_add_device(struct device *dev, > > if (devfreq->profile->timer < 0 > || devfreq->profile->timer >= DEVFREQ_TIMER_NUM) { > - goto err_out; > + mutex_unlock(&devfreq->lock); > + goto err_dev; > } > > if (!devfreq->profile->max_state && !devfreq->profile->freq_table) { > Applied it. Thanks. -- Best Regards, Chanwoo Choi Samsung Electronics