From: "Chun-Jen Tseng (曾俊仁)" <Chun-Jen.Tseng@mediatek.com>
To: "viresh.kumar@linaro.org" <viresh.kumar@linaro.org>,
"dan.carpenter@linaro.org" <dan.carpenter@linaro.org>,
"cw00.choi@samsung.com" <cw00.choi@samsung.com>,
"rafael@kernel.org" <rafael@kernel.org>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
"myungjoo.ham@samsung.com" <myungjoo.ham@samsung.com>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"oe-kbuild@lists.linux.dev" <oe-kbuild@lists.linux.dev>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
Project_Global_Chrome_Upstream_Group
<Project_Global_Chrome_Upstream_Group@mediatek.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"lkp@intel.com" <lkp@intel.com>,
"oe-kbuild-all@lists.linux.dev" <oe-kbuild-all@lists.linux.dev>
Subject: Re: [PATCH v3 1/3] cpufreq: mediatek: using global lock avoid race condition
Date: Thu, 20 Mar 2025 08:25:07 +0000 [thread overview]
Message-ID: <9ba3d616d3c65403dbc71128572416d9a40fb968.camel@mediatek.com> (raw)
In-Reply-To: <23e24631-aee4-43cc-8f85-29ec58241c03@stanley.mountain>
Hi Dan,
Thanks your remind. I will be careful and fix it before submit new
patch.
BRs,
Mark Tseng
On Wed, 2025-02-19 at 10:23 +0300, Dan Carpenter wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> Hi Mark,
>
> kernel test robot noticed the following build warnings:
>
> https://urldefense.com/v3/__https://git-scm.com/docs/git-format-patch*_base_tree_information__;Iw!!CTRNKA9wMg0ARbw!ixPI3aPvvJSSIiRSm4TttWZyeSNnZsdzX-4zYkY7Ax1faRLZBJ7JW3Fmf7O8BYXiyHlxDC6aauOslVt8KEW_jViJAkm7uw$
> ]
>
> url:
> https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commits/Mark-Tseng/cpufreq-mediatek-using-global-lock-avoid-race-condition/20250214-154521__;!!CTRNKA9wMg0ARbw!ixPI3aPvvJSSIiRSm4TttWZyeSNnZsdzX-4zYkY7Ax1faRLZBJ7JW3Fmf7O8BYXiyHlxDC6aauOslVt8KEW_jVj9Egobdw$
> base:
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git__;!!CTRNKA9wMg0ARbw!ixPI3aPvvJSSIiRSm4TttWZyeSNnZsdzX-4zYkY7Ax1faRLZBJ7JW3Fmf7O8BYXiyHlxDC6aauOslVt8KEW_jVg7ujqlQw$
> linux-next
> patch link:
> https://lore.kernel.org/r/20250214074353.1169864-2-chun-jen.tseng%40mediatek.com
> patch subject: [PATCH v3 1/3] cpufreq: mediatek: using global lock
> avoid race condition
> config: sparc-randconfig-r071-20250218
> (https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/
> 20250219/202502190807.fz6fs2jz-lkp@intel.com/config__;!!CTRNKA9wMg0AR
> bw!ixPI3aPvvJSSIiRSm4TttWZyeSNnZsdzX-
> 4zYkY7Ax1faRLZBJ7JW3Fmf7O8BYXiyHlxDC6aauOslVt8KEW_jVhUidk_DA$ )
> compiler: sparc64-linux-gcc (GCC) 14.2.0
>
> If you fix the issue in a separate patch/commit (i.e. not just a new
> version of
> the same patch/commit), kindly add following tags
> > Reported-by: kernel test robot <lkp@intel.com>
> > Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> > Closes:
> > https://lore.kernel.org/r/202502190807.fz6fs2jz-lkp@intel.com/
>
> smatch warnings:
> drivers/cpufreq/mediatek-cpufreq.c:367 mtk_cpufreq_opp_notifier()
> warn: inconsistent returns 'global &mtk_policy_lock'.
>
> vim +367 drivers/cpufreq/mediatek-cpufreq.c
>
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 317 static int mtk_cpufreq_opp_notifier(struct notifier_block
> *nb,
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 318 unsigned long event,
> void *data)
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 319 {
> 5f81d7eeae239d drivers/cpufreq/mediatek-cpufreq.c Mark Tseng 2025-
> 02-14 320 struct dev_pm_opp *opp;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 321 struct dev_pm_opp *new_opp;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 322 struct mtk_cpu_dvfs_info *info;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 323 unsigned long freq, volt;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 324 struct cpufreq_policy *policy;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 325 int ret = 0;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 326
> 5f81d7eeae239d drivers/cpufreq/mediatek-cpufreq.c Mark Tseng 2025-
> 02-14 327 mutex_lock(&mtk_policy_lock);
> 5f81d7eeae239d drivers/cpufreq/mediatek-cpufreq.c Mark Tseng 2025-
> 02-14 328 opp = data;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 329 info = container_of(nb, struct mtk_cpu_dvfs_info,
> opp_nb);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 330
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 331 if (event == OPP_EVENT_ADJUST_VOLTAGE) {
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 332 freq = dev_pm_opp_get_freq(opp);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 333
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 334 if (info->current_freq == freq) {
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 335 volt =
> dev_pm_opp_get_voltage(opp);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 336 ret =
> mtk_cpufreq_set_voltage(info, volt);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 337 if (ret)
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 338 dev_err(info->cpu_dev,
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 339 "failed to scale
> voltage: %d\n", ret);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 340 }
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 341 } else if (event == OPP_EVENT_DISABLE) {
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 342 freq = dev_pm_opp_get_freq(opp);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 343
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 344 /* case of current opp item is disabled */
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 345 if (info->current_freq == freq) {
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 346 freq = 1;
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 347 new_opp =
> dev_pm_opp_find_freq_ceil(info->cpu_dev,
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05
> 348
> &freq);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 349 if (IS_ERR(new_opp)) {
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 350 dev_err(info->cpu_dev,
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 351 "all opp items are
> disabled\n");
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 352 ret = PTR_ERR(new_opp);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 353 return
> notifier_from_errno(ret);
>
> mutex_unlock(&mtk_policy_lock) before returning.
>
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 354 }
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 355
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 356 dev_pm_opp_put(new_opp);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 357 policy = cpufreq_cpu_get(info-
> >opp_cpu);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 358 if (policy) {
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 359
> cpufreq_driver_target(policy, freq / 1000,
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 360
> CPUFREQ_RELATION_L);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 361 cpufreq_cpu_put(policy);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 362 }
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 363 }
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 364 }
> 5f81d7eeae239d drivers/cpufreq/mediatek-cpufreq.c Mark Tseng 2025-
> 02-14 365 mutex_unlock(&mtk_policy_lock);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 366
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 @367 return notifier_from_errno(ret);
> c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen 2022-
> 05-05 368 }
>
> --
> 0-DAY CI Kernel Test Service
> https://urldefense.com/v3/__https://github.com/intel/lkp-tests/wiki__;!!CTRNKA9wMg0ARbw!ixPI3aPvvJSSIiRSm4TttWZyeSNnZsdzX-4zYkY7Ax1faRLZBJ7JW3Fmf7O8BYXiyHlxDC6aauOslVt8KEW_jVii1cx6tQ$
>
next prev parent reply other threads:[~2025-03-20 8:33 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-14 7:43 [PATCH v3 0/3] fixed mediatek-cpufreq has multi policy concurrency issue Mark Tseng
2025-02-14 7:43 ` [PATCH v3 1/3] cpufreq: mediatek: using global lock avoid race condition Mark Tseng
2025-02-19 5:42 ` Viresh Kumar
2025-03-20 8:22 ` Chun-Jen Tseng (曾俊仁)
2025-03-21 4:56 ` Viresh Kumar
2025-03-21 5:32 ` Chun-Jen Tseng (曾俊仁)
2025-03-21 6:01 ` Viresh Kumar
2025-03-24 3:21 ` Chun-Jen Tseng (曾俊仁)
2025-03-24 5:43 ` Viresh Kumar
2025-04-14 8:42 ` Chun-Jen Tseng (曾俊仁)
2025-04-16 8:05 ` Viresh Kumar
2025-08-28 13:26 ` Chen-Yu Tsai
2025-08-29 5:47 ` Viresh Kumar
2025-02-19 7:23 ` Dan Carpenter
2025-03-20 8:25 ` Chun-Jen Tseng (曾俊仁) [this message]
2025-02-14 7:43 ` [PATCH v3 2/3] cpufreq: mediatek: Add CPUFREQ_ASYNC_NOTIFICATION flag Mark Tseng
2025-02-19 5:45 ` Viresh Kumar
2025-03-20 8:34 ` Chun-Jen Tseng (曾俊仁)
2025-03-21 4:59 ` Viresh Kumar
2025-02-14 7:43 ` [PATCH v3 3/3] cpufreq: mediatek: data safety protect Mark Tseng
2025-02-19 5:49 ` Viresh Kumar
-- strict thread matches above, loose matches on Subject: below --
2025-02-19 0:38 [PATCH v3 1/3] cpufreq: mediatek: using global lock avoid race condition kernel test robot
2025-02-22 10:39 kernel test robot
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=9ba3d616d3c65403dbc71128572416d9a40fb968.camel@mediatek.com \
--to=chun-jen.tseng@mediatek.com \
--cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=cw00.choi@samsung.com \
--cc=dan.carpenter@linaro.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=lkp@intel.com \
--cc=matthias.bgg@gmail.com \
--cc=myungjoo.ham@samsung.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=rafael@kernel.org \
--cc=viresh.kumar@linaro.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.