Message ID | 20250421030020.3108405-5-zhenglifeng1@huawei.com |
---|---|
State | New |
Headers | show |
Series | [1/4] PM / devfreq: governor: Replace sscanf() with kstrtoul() in set_freq_store() | expand |
Hi, Applied it. Thanks. On Mon, Apr 21, 2025 at 12:01 PM Lifeng Zheng <zhenglifeng1@huawei.com> wrote: > > 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> > --- > drivers/devfreq/devfreq.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c > index 18e3f7e063a4..46f3a8053197 100644 > --- a/drivers/devfreq/devfreq.c > +++ b/drivers/devfreq/devfreq.c > @@ -1376,15 +1376,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) { > -- > 2.33.0 > >
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 18e3f7e063a4..46f3a8053197 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1376,15 +1376,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) {
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> --- drivers/devfreq/devfreq.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)