From: Lukasz Luba Date: Mon, 15 Mar 2021 09:31:23 +0000 (+0000) Subject: PM / devfreq: Unlock mutex and free devfreq struct in error path X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8b50a7995770d41a2e8d9c422cd2882aca0dedd2;p=linux.git PM / devfreq: Unlock mutex and free devfreq struct in error path 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+ # v5.9+ Fixes: 4dc3bab8687f ("PM / devfreq: Add support delayed timer for polling mode") Signed-off-by: Lukasz Luba Signed-off-by: Chanwoo Choi --- diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index b6d3e7db0b097..99b2eeedc2387 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) {