All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org,
	Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Saravana Kannan <skannan@codeaurora.org>,
	Sibi Sankar <sibis@codeaurora.org>,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
Subject: Re: [PATCH 1/5] PM / devfreq: Fix cpufreq passive unregister erroring on PROBE_DEFER
Date: Fri, 10 Jun 2022 09:41:43 +0300	[thread overview]
Message-ID: <202206101102.4JCYtCjM-lkp@intel.com> (raw)
In-Reply-To: <20220606111104.14534-2-ansuelsmth@gmail.com>

Hi Christian,

url:    https://github.com/intel-lab-lkp/linux/commits/Christian-Ansuel-Marangi/PM-devfreq-Various-Fixes-to-cpufreq-based-passive-governor/20220606-191335
base:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220610/202206101102.4JCYtCjM-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/devfreq/governor_passive.c:235 cpufreq_passive_unregister_notifier() error: dereferencing freed memory 'parent_cpu_data'

vim +/parent_cpu_data +235 drivers/devfreq/governor_passive.c

a03dacb0316f74 Saravana Kannan            2021-03-02  221  static int cpufreq_passive_unregister_notifier(struct devfreq *devfreq)
a03dacb0316f74 Saravana Kannan            2021-03-02  222  {
a03dacb0316f74 Saravana Kannan            2021-03-02  223  	struct devfreq_passive_data *p_data
a03dacb0316f74 Saravana Kannan            2021-03-02  224  			= (struct devfreq_passive_data *)devfreq->data;
a03dacb0316f74 Saravana Kannan            2021-03-02  225  	struct devfreq_cpu_data *parent_cpu_data;
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  226  	int ret;
a03dacb0316f74 Saravana Kannan            2021-03-02  227  
a03dacb0316f74 Saravana Kannan            2021-03-02  228  	if (p_data->nb.notifier_call) {
a03dacb0316f74 Saravana Kannan            2021-03-02  229  		ret = cpufreq_unregister_notifier(&p_data->nb,
a03dacb0316f74 Saravana Kannan            2021-03-02  230  					CPUFREQ_TRANSITION_NOTIFIER);
a03dacb0316f74 Saravana Kannan            2021-03-02  231  		if (ret < 0)
a03dacb0316f74 Saravana Kannan            2021-03-02  232  			return ret;
a03dacb0316f74 Saravana Kannan            2021-03-02  233  	}
a03dacb0316f74 Saravana Kannan            2021-03-02  234  
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06 @235  	list_for_each_entry(parent_cpu_data, &p_data->cpu_data_list, node) {

This needs to be list_for_each_entry_safe()

26984d9d581e50 Chanwoo Choi               2022-04-27  236  		list_del(&parent_cpu_data->node);

Otherwise it will only iterate one time

2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  237  
a03dacb0316f74 Saravana Kannan            2021-03-02  238  		if (parent_cpu_data->opp_table)
a03dacb0316f74 Saravana Kannan            2021-03-02  239  			dev_pm_opp_put_opp_table(parent_cpu_data->opp_table);
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  240  
a03dacb0316f74 Saravana Kannan            2021-03-02  241  		kfree(parent_cpu_data);

And it will dereference a freed pointer

a03dacb0316f74 Saravana Kannan            2021-03-02  242  	}
a03dacb0316f74 Saravana Kannan            2021-03-02  243  
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  244  	return 0;
a03dacb0316f74 Saravana Kannan            2021-03-02  245  }

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp


WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 1/5] PM / devfreq: Fix cpufreq passive unregister erroring on PROBE_DEFER
Date: Fri, 10 Jun 2022 11:25:43 +0800	[thread overview]
Message-ID: <202206101102.4JCYtCjM-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4116 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
In-Reply-To: <20220606111104.14534-2-ansuelsmth@gmail.com>
References: <20220606111104.14534-2-ansuelsmth@gmail.com>
TO: "Christian 'Ansuel' Marangi" <ansuelsmth@gmail.com>
TO: MyungJoo Ham <myungjoo.ham@samsung.com>
TO: Kyungmin Park <kyungmin.park@samsung.com>
TO: Chanwoo Choi <cw00.choi@samsung.com>
TO: Saravana Kannan <skannan@codeaurora.org>
TO: Sibi Sankar <sibis@codeaurora.org>
TO: linux-pm(a)vger.kernel.org
TO: linux-kernel(a)vger.kernel.org
CC: "Christian 'Ansuel' Marangi" <ansuelsmth@gmail.com>

Hi Christian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on chanwoo/devfreq-testing]
[also build test WARNING on linus/master v5.19-rc1 next-20220609]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Christian-Ansuel-Marangi/PM-devfreq-Various-Fixes-to-cpufreq-based-passive-governor/20220606-191335
base:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220610/202206101102.4JCYtCjM-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/devfreq/governor_passive.c:235 cpufreq_passive_unregister_notifier() error: dereferencing freed memory 'parent_cpu_data'

vim +/parent_cpu_data +235 drivers/devfreq/governor_passive.c

a03dacb0316f74 Saravana Kannan            2021-03-02  220  
a03dacb0316f74 Saravana Kannan            2021-03-02  221  static int cpufreq_passive_unregister_notifier(struct devfreq *devfreq)
a03dacb0316f74 Saravana Kannan            2021-03-02  222  {
a03dacb0316f74 Saravana Kannan            2021-03-02  223  	struct devfreq_passive_data *p_data
a03dacb0316f74 Saravana Kannan            2021-03-02  224  			= (struct devfreq_passive_data *)devfreq->data;
a03dacb0316f74 Saravana Kannan            2021-03-02  225  	struct devfreq_cpu_data *parent_cpu_data;
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  226  	int ret;
a03dacb0316f74 Saravana Kannan            2021-03-02  227  
a03dacb0316f74 Saravana Kannan            2021-03-02  228  	if (p_data->nb.notifier_call) {
a03dacb0316f74 Saravana Kannan            2021-03-02  229  		ret = cpufreq_unregister_notifier(&p_data->nb,
a03dacb0316f74 Saravana Kannan            2021-03-02  230  					CPUFREQ_TRANSITION_NOTIFIER);
a03dacb0316f74 Saravana Kannan            2021-03-02  231  		if (ret < 0)
a03dacb0316f74 Saravana Kannan            2021-03-02  232  			return ret;
a03dacb0316f74 Saravana Kannan            2021-03-02  233  	}
a03dacb0316f74 Saravana Kannan            2021-03-02  234  
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06 @235  	list_for_each_entry(parent_cpu_data, &p_data->cpu_data_list, node) {
26984d9d581e50 Chanwoo Choi               2022-04-27  236  		list_del(&parent_cpu_data->node);
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  237  
a03dacb0316f74 Saravana Kannan            2021-03-02  238  		if (parent_cpu_data->opp_table)
a03dacb0316f74 Saravana Kannan            2021-03-02  239  			dev_pm_opp_put_opp_table(parent_cpu_data->opp_table);
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  240  
a03dacb0316f74 Saravana Kannan            2021-03-02  241  		kfree(parent_cpu_data);
a03dacb0316f74 Saravana Kannan            2021-03-02  242  	}
a03dacb0316f74 Saravana Kannan            2021-03-02  243  
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  244  	return 0;
a03dacb0316f74 Saravana Kannan            2021-03-02  245  }
a03dacb0316f74 Saravana Kannan            2021-03-02  246  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 1/5] PM / devfreq: Fix cpufreq passive unregister erroring on PROBE_DEFER
Date: Fri, 10 Jun 2022 09:41:43 +0300	[thread overview]
Message-ID: <202206101102.4JCYtCjM-lkp@intel.com> (raw)
In-Reply-To: <20220606111104.14534-2-ansuelsmth@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3125 bytes --]

Hi Christian,

url:    https://github.com/intel-lab-lkp/linux/commits/Christian-Ansuel-Marangi/PM-devfreq-Various-Fixes-to-cpufreq-based-passive-governor/20220606-191335
base:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220610/202206101102.4JCYtCjM-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/devfreq/governor_passive.c:235 cpufreq_passive_unregister_notifier() error: dereferencing freed memory 'parent_cpu_data'

vim +/parent_cpu_data +235 drivers/devfreq/governor_passive.c

a03dacb0316f74 Saravana Kannan            2021-03-02  221  static int cpufreq_passive_unregister_notifier(struct devfreq *devfreq)
a03dacb0316f74 Saravana Kannan            2021-03-02  222  {
a03dacb0316f74 Saravana Kannan            2021-03-02  223  	struct devfreq_passive_data *p_data
a03dacb0316f74 Saravana Kannan            2021-03-02  224  			= (struct devfreq_passive_data *)devfreq->data;
a03dacb0316f74 Saravana Kannan            2021-03-02  225  	struct devfreq_cpu_data *parent_cpu_data;
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  226  	int ret;
a03dacb0316f74 Saravana Kannan            2021-03-02  227  
a03dacb0316f74 Saravana Kannan            2021-03-02  228  	if (p_data->nb.notifier_call) {
a03dacb0316f74 Saravana Kannan            2021-03-02  229  		ret = cpufreq_unregister_notifier(&p_data->nb,
a03dacb0316f74 Saravana Kannan            2021-03-02  230  					CPUFREQ_TRANSITION_NOTIFIER);
a03dacb0316f74 Saravana Kannan            2021-03-02  231  		if (ret < 0)
a03dacb0316f74 Saravana Kannan            2021-03-02  232  			return ret;
a03dacb0316f74 Saravana Kannan            2021-03-02  233  	}
a03dacb0316f74 Saravana Kannan            2021-03-02  234  
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06 @235  	list_for_each_entry(parent_cpu_data, &p_data->cpu_data_list, node) {

This needs to be list_for_each_entry_safe()

26984d9d581e50 Chanwoo Choi               2022-04-27  236  		list_del(&parent_cpu_data->node);

Otherwise it will only iterate one time

2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  237  
a03dacb0316f74 Saravana Kannan            2021-03-02  238  		if (parent_cpu_data->opp_table)
a03dacb0316f74 Saravana Kannan            2021-03-02  239  			dev_pm_opp_put_opp_table(parent_cpu_data->opp_table);
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  240  
a03dacb0316f74 Saravana Kannan            2021-03-02  241  		kfree(parent_cpu_data);

And it will dereference a freed pointer

a03dacb0316f74 Saravana Kannan            2021-03-02  242  	}
a03dacb0316f74 Saravana Kannan            2021-03-02  243  
2d59e1f0c418bf Christian 'Ansuel' Marangi 2022-06-06  244  	return 0;
a03dacb0316f74 Saravana Kannan            2021-03-02  245  }

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

       reply	other threads:[~2022-06-10  6:43 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-10  3:25 kernel test robot [this message]
2022-06-10  6:41 ` [PATCH 1/5] PM / devfreq: Fix cpufreq passive unregister erroring on PROBE_DEFER Dan Carpenter
2022-06-10  6:41 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2022-06-07  2:48 kernel test robot
2022-06-06 11:10 [PATCH 0/5] PM / devfreq: Various Fixes to cpufreq based passive governor Christian 'Ansuel' Marangi
2022-06-06 11:11 ` [PATCH 1/5] PM / devfreq: Fix cpufreq passive unregister erroring on PROBE_DEFER Christian 'Ansuel' Marangi
2022-06-06 11:11 ` [PATCH 2/5] PM / devfreq: Fix kernel warning with cpufreq passive register fail Christian 'Ansuel' Marangi
2022-06-06 11:11 ` [PATCH 3/5] PM / devfreq: Fix kernel panic with cpu based scaling to passive gov Christian 'Ansuel' Marangi
2022-06-06 11:11 ` [PATCH 4/5] PM / devfreq: Rework freq_table to be local to devfreq struct Christian 'Ansuel' Marangi
2022-06-06 11:11 ` [PATCH 5/5] PM / devfreq: Mute warning on governor PROBE_DEFER Christian 'Ansuel' Marangi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202206101102.4JCYtCjM-lkp@intel.com \
    --to=dan.carpenter@oracle.com \
    --cc=ansuelsmth@gmail.com \
    --cc=cw00.choi@samsung.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=sibis@codeaurora.org \
    --cc=skannan@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.