]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PM / devfreq: Unlock mutex and free devfreq struct in error path
authorLukasz Luba <lukasz.luba@arm.com>
Mon, 15 Mar 2021 09:31:23 +0000 (09:31 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 May 2021 08:52:04 +0000 (10:52 +0200)
commit 8b50a7995770d41a2e8d9c422cd2882aca0dedd2 upstream.

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@vger.kernel.org> # v5.9+
Fixes: 4dc3bab8687f ("PM / devfreq: Add support delayed timer for polling mode")
Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/devfreq/devfreq.c

index bf3047896e41ac770b9c67522d0995fbdbfc74aa..e4be0435c9ba03c9fdc29beaa718413453d15545 100644 (file)
@@ -821,7 +821,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) {