]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PM / devfreq: Check governor before using governor->name
authorLifeng Zheng <zhenglifeng1@huawei.com>
Mon, 21 Apr 2025 03:00:20 +0000 (11:00 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 14:38:33 +0000 (16:38 +0200)
[ Upstream commit bab7834c03820eb11269bc48f07c3800192460d2 ]

Commit 96ffcdf239de ("PM / devfreq: Remove redundant governor_name from
struct devfreq") removes governor_name and uses governor->name to replace
it. But devfreq->governor may be NULL and directly using
devfreq->governor->name may cause null pointer exception. Move the check of
governor to before using governor->name.

Fixes: 96ffcdf239de ("PM / devfreq: Remove redundant governor_name from struct devfreq")
Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com>
Link: https://lore.kernel.org/lkml/20250421030020.3108405-5-zhenglifeng1@huawei.com/
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/devfreq/devfreq.c

index 98657d3b9435c7d4b30c0777d7d6d982a96f4107..713e6e52cca19f10c41be4dd7792cb70a8fa1fe4 100644 (file)
@@ -1382,15 +1382,11 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
                int ret;
                struct device *dev = devfreq->dev.parent;
 
+               if (!devfreq->governor)
+                       continue;
+
                if (!strncmp(devfreq->governor->name, governor->name,
                             DEVFREQ_NAME_LEN)) {
-                       /* we should have a devfreq governor! */
-                       if (!devfreq->governor) {
-                               dev_warn(dev, "%s: Governor %s NOT present\n",
-                                        __func__, governor->name);
-                               continue;
-                               /* Fall through */
-                       }
                        ret = devfreq->governor->event_handler(devfreq,
                                                DEVFREQ_GOV_STOP, NULL);
                        if (ret) {