[chanwoo:devfreq-testing 2/4] include/linux/devfreq.h:332:1: warning: no semicolon at end of struct or union

From: kernel test robot
Date: Thu Apr 07 2022 - 06:07:14 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
head: e8222a8ce34258ab3033cae96c0153a55414da4d
commit: 95f7ed4a4161892825bb0ba124579c93280ad462 [2/4] PM / devfreq: Add cpu based scaling support to passive governor
config: um-allmodconfig (https://download.01.org/0day-ci/archive/20220407/202204071831.uDO7FR9U-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git/commit/?id=95f7ed4a4161892825bb0ba124579c93280ad462
git remote add chanwoo https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
git fetch --no-tags chanwoo devfreq-testing
git checkout 95f7ed4a4161892825bb0ba124579c93280ad462
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=um SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All error/warnings (new ones prefixed by >>):

In file included from arch/x86/um/asm/processor.h:41,
from include/linux/spinlock_up.h:8,
from include/linux/spinlock.h:95,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:9,
from drivers/devfreq/devfreq.c:11:
>> arch/um/include/asm/processor-generic.h:103:19: error: expected identifier or '(' before '&' token
103 | #define cpu_data (&boot_cpu_data)
| ^
include/linux/devfreq.h:331:34: note: in expansion of macro 'cpu_data'
331 | struct devfreq_cpu_data *cpu_data[NR_CPUS];
| ^~~~~~~~
In file included from include/linux/devfreq_cooling.h:13,
from drivers/devfreq/devfreq.c:14:
>> include/linux/devfreq.h:332:1: warning: no semicolon at end of struct or union
332 | };
| ^
--
In file included from arch/x86/um/asm/processor.h:41,
from include/linux/spinlock_up.h:8,
from include/linux/spinlock.h:95,
from include/linux/kref.h:16,
from include/linux/mm_types.h:8,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from drivers/devfreq/governor_passive.c:10:
>> arch/um/include/asm/processor-generic.h:103:19: error: expected identifier or '(' before '&' token
103 | #define cpu_data (&boot_cpu_data)
| ^
include/linux/devfreq.h:331:34: note: in expansion of macro 'cpu_data'
331 | struct devfreq_cpu_data *cpu_data[NR_CPUS];
| ^~~~~~~~
In file included from drivers/devfreq/governor_passive.c:16:
>> include/linux/devfreq.h:332:1: warning: no semicolon at end of struct or union
332 | };
| ^
In file included from arch/x86/um/asm/processor.h:41,
from include/linux/spinlock_up.h:8,
from include/linux/spinlock.h:95,
from include/linux/kref.h:16,
from include/linux/mm_types.h:8,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from drivers/devfreq/governor_passive.c:10:
drivers/devfreq/governor_passive.c: In function 'get_target_freq_with_cpufreq':
>> arch/um/include/asm/processor-generic.h:103:18: error: expected identifier before '(' token
103 | #define cpu_data (&boot_cpu_data)
| ^
drivers/devfreq/governor_passive.c:58:43: note: in expansion of macro 'cpu_data'
58 | parent_cpu_data = p_data->cpu_data[cpu];
| ^~~~~~~~
>> drivers/devfreq/governor_passive.c:50:38: warning: variable 'p_data' set but not used [-Wunused-but-set-variable]
50 | struct devfreq_passive_data *p_data =
| ^~~~~~
In file included from arch/x86/um/asm/processor.h:41,
from include/linux/spinlock_up.h:8,
from include/linux/spinlock.h:95,
from include/linux/kref.h:16,
from include/linux/mm_types.h:8,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from drivers/devfreq/governor_passive.c:10:
drivers/devfreq/governor_passive.c: In function 'cpufreq_passive_notifier_call':
>> arch/um/include/asm/processor-generic.h:103:18: error: expected identifier before '(' token
103 | #define cpu_data (&boot_cpu_data)
| ^
drivers/devfreq/governor_passive.c:221:24: note: in expansion of macro 'cpu_data'
221 | !data->cpu_data[freqs->policy->cpu])
| ^~~~~~~~
>> arch/um/include/asm/processor-generic.h:103:18: error: expected identifier before '(' token
103 | #define cpu_data (&boot_cpu_data)
| ^
drivers/devfreq/governor_passive.c:224:33: note: in expansion of macro 'cpu_data'
224 | parent_cpu_data = data->cpu_data[freqs->policy->cpu];
| ^~~~~~~~
drivers/devfreq/governor_passive.c: In function 'cpufreq_passive_unregister_notifier':
>> arch/um/include/asm/processor-generic.h:103:18: error: expected identifier before '(' token
103 | #define cpu_data (&boot_cpu_data)
| ^
drivers/devfreq/governor_passive.c:258:43: note: in expansion of macro 'cpu_data'
258 | parent_cpu_data = p_data->cpu_data[cpu];
| ^~~~~~~~
drivers/devfreq/governor_passive.c: In function 'cpufreq_passive_register_notifier':
>> arch/um/include/asm/processor-generic.h:103:18: error: expected identifier before '(' token
103 | #define cpu_data (&boot_cpu_data)
| ^
drivers/devfreq/governor_passive.c:291:29: note: in expansion of macro 'cpu_data'
291 | if (p_data->cpu_data[cpu])
| ^~~~~~~~
>> arch/um/include/asm/processor-generic.h:103:18: error: expected identifier before '(' token
103 | #define cpu_data (&boot_cpu_data)
| ^
drivers/devfreq/governor_passive.c:331:25: note: in expansion of macro 'cpu_data'
331 | p_data->cpu_data[cpu] = parent_cpu_data;
| ^~~~~~~~


vim +332 include/linux/devfreq.h

95f7ed4a416189 Saravana Kannan 2021-03-02 296
996133119f5733 Chanwoo Choi 2016-03-22 297 /**
7a51320ecd3942 Mauro Carvalho Chehab 2020-03-17 298 * struct devfreq_passive_data - ``void *data`` fed to struct devfreq
996133119f5733 Chanwoo Choi 2016-03-22 299 * and devfreq_add_device
996133119f5733 Chanwoo Choi 2016-03-22 300 * @parent: the devfreq instance of parent device.
996133119f5733 Chanwoo Choi 2016-03-22 301 * @get_target_freq: Optional callback, Returns desired operating frequency
996133119f5733 Chanwoo Choi 2016-03-22 302 * for the device using passive governor. That is called
996133119f5733 Chanwoo Choi 2016-03-22 303 * when passive governor should decide the next frequency
996133119f5733 Chanwoo Choi 2016-03-22 304 * by using the new frequency of parent devfreq device
996133119f5733 Chanwoo Choi 2016-03-22 305 * using governors except for passive governor.
996133119f5733 Chanwoo Choi 2016-03-22 306 * If the devfreq device has the specific method to decide
996133119f5733 Chanwoo Choi 2016-03-22 307 * the next frequency, should use this callback.
95f7ed4a416189 Saravana Kannan 2021-03-02 308 + * @parent_type parent type of the device
95f7ed4a416189 Saravana Kannan 2021-03-02 309 + * @this: the devfreq instance of own device.
95f7ed4a416189 Saravana Kannan 2021-03-02 310 + * @nb: the notifier block for DEVFREQ_TRANSITION_NOTIFIER list
95f7ed4a416189 Saravana Kannan 2021-03-02 311 + * @cpu_data: the state min/max/current frequency of all online cpu's
996133119f5733 Chanwoo Choi 2016-03-22 312 *
996133119f5733 Chanwoo Choi 2016-03-22 313 * The devfreq_passive_data have to set the devfreq instance of parent
996133119f5733 Chanwoo Choi 2016-03-22 314 * device with governors except for the passive governor. But, don't need to
996133119f5733 Chanwoo Choi 2016-03-22 315 * initialize the 'this' and 'nb' field because the devfreq core will handle
996133119f5733 Chanwoo Choi 2016-03-22 316 * them.
996133119f5733 Chanwoo Choi 2016-03-22 317 */
996133119f5733 Chanwoo Choi 2016-03-22 318 struct devfreq_passive_data {
996133119f5733 Chanwoo Choi 2016-03-22 319 /* Should set the devfreq instance of parent device */
996133119f5733 Chanwoo Choi 2016-03-22 320 struct devfreq *parent;
996133119f5733 Chanwoo Choi 2016-03-22 321
996133119f5733 Chanwoo Choi 2016-03-22 322 /* Optional callback to decide the next frequency of passvice device */
996133119f5733 Chanwoo Choi 2016-03-22 323 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
996133119f5733 Chanwoo Choi 2016-03-22 324
95f7ed4a416189 Saravana Kannan 2021-03-02 325 /* Should set the type of parent device */
95f7ed4a416189 Saravana Kannan 2021-03-02 326 enum devfreq_parent_dev_type parent_type;
95f7ed4a416189 Saravana Kannan 2021-03-02 327
996133119f5733 Chanwoo Choi 2016-03-22 328 /* For passive governor's internal use. Don't need to set them */
996133119f5733 Chanwoo Choi 2016-03-22 329 struct devfreq *this;
996133119f5733 Chanwoo Choi 2016-03-22 330 struct notifier_block nb;
95f7ed4a416189 Saravana Kannan 2021-03-02 331 struct devfreq_cpu_data *cpu_data[NR_CPUS];
996133119f5733 Chanwoo Choi 2016-03-22 @332 };
996133119f5733 Chanwoo Choi 2016-03-22 333 #endif
996133119f5733 Chanwoo Choi 2016-03-22 334

:::::: The code at line 332 was first introduced by commit
:::::: 996133119f57334c38b020dbfaaac5b5eb127e29 PM / devfreq: Add new passive governor

:::::: TO: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
:::::: CC: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>

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