[chanwoo:devfreq-testing 5/5] include/linux/list.h:638:9: warning: this 'for' clause does not guard...

From: kernel test robot
Date: Wed May 04 2022 - 08:49:04 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
head: 40eaf97ddb3a7e661942296ccf192af0edd3d77d
commit: 40eaf97ddb3a7e661942296ccf192af0edd3d77d [5/5] PM / devfreq: Use cpufreq_policy instead of NR_CPU
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220504/202205042019.gOXJsH4f-lkp@xxxxxxxxx/config)
compiler: mips-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git/commit/?id=40eaf97ddb3a7e661942296ccf192af0edd3d77d
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 40eaf97ddb3a7e661942296ccf192af0edd3d77d
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/

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

All warnings (new ones prefixed by >>):

drivers/devfreq/governor_passive.c: In function 'get_parent_cpu_data':
drivers/devfreq/governor_passive.c:31:17: error: expected expression before 'int'
31 | int first_cpu = parent_cpu_data->first_cpu;
| ^~~
In file included from include/linux/module.h:12,
from drivers/devfreq/governor_passive.c:10:
>> include/linux/list.h:638:9: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
638 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~
drivers/devfreq/governor_passive.c:30:9: note: in expansion of macro 'list_for_each_entry'
30 | list_for_each_entry(parent_cpu_data, &p_data->cpu_data_list, node)
| ^~~~~~~~~~~~~~~~~~~
drivers/devfreq/governor_passive.c:32:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
32 | if (first_cpu == cpumask_first(policy->related_cpus);)
| ^~
drivers/devfreq/governor_passive.c:32:21: error: 'first_cpu' undeclared (first use in this function)
32 | if (first_cpu == cpumask_first(policy->related_cpus);)
| ^~~~~~~~~
drivers/devfreq/governor_passive.c:32:21: note: each undeclared identifier is reported only once for each function it appears in
drivers/devfreq/governor_passive.c:32:69: error: expected ')' before ';' token
32 | if (first_cpu == cpumask_first(policy->related_cpus);)
| ~ ^
| )
In file included from include/linux/module.h:12,
from drivers/devfreq/governor_passive.c:10:
drivers/devfreq/governor_passive.c: In function 'cpufreq_passive_register_notifier':
include/linux/list.h:23:30: error: expected expression before '{' token
23 | #define LIST_HEAD_INIT(name) { &(name), &(name) }
| ^
drivers/devfreq/governor_passive.c:256:33: note: in expansion of macro 'LIST_HEAD_INIT'
256 | p_data->cpu_data_list = LIST_HEAD_INIT(p_data->cpu_data_list);
| ^~~~~~~~~~~~~~


vim +/for +638 include/linux/list.h

6d7581e62f8be4 Jiri Pirko 2013-05-29 557
008208c6b26f21 Oleg Nesterov 2013-11-12 558 /**
008208c6b26f21 Oleg Nesterov 2013-11-12 559 * list_next_entry - get the next element in list
008208c6b26f21 Oleg Nesterov 2013-11-12 560 * @pos: the type * to cursor
3943f42c11896c Andrey Utkin 2014-11-14 561 * @member: the name of the list_head within the struct.
008208c6b26f21 Oleg Nesterov 2013-11-12 562 */
008208c6b26f21 Oleg Nesterov 2013-11-12 563 #define list_next_entry(pos, member) \
008208c6b26f21 Oleg Nesterov 2013-11-12 564 list_entry((pos)->member.next, typeof(*(pos)), member)
008208c6b26f21 Oleg Nesterov 2013-11-12 565
008208c6b26f21 Oleg Nesterov 2013-11-12 566 /**
008208c6b26f21 Oleg Nesterov 2013-11-12 567 * list_prev_entry - get the prev element in list
008208c6b26f21 Oleg Nesterov 2013-11-12 568 * @pos: the type * to cursor
3943f42c11896c Andrey Utkin 2014-11-14 569 * @member: the name of the list_head within the struct.
008208c6b26f21 Oleg Nesterov 2013-11-12 570 */
008208c6b26f21 Oleg Nesterov 2013-11-12 571 #define list_prev_entry(pos, member) \
008208c6b26f21 Oleg Nesterov 2013-11-12 572 list_entry((pos)->member.prev, typeof(*(pos)), member)
008208c6b26f21 Oleg Nesterov 2013-11-12 573
^1da177e4c3f41 Linus Torvalds 2005-04-16 574 /**
^1da177e4c3f41 Linus Torvalds 2005-04-16 575 * list_for_each - iterate over a list
8e3a67a99231f9 Randy Dunlap 2006-06-25 576 * @pos: the &struct list_head to use as a loop cursor.
^1da177e4c3f41 Linus Torvalds 2005-04-16 577 * @head: the head for your list.
^1da177e4c3f41 Linus Torvalds 2005-04-16 578 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 579 #define list_for_each(pos, head) \
0425473037db40 Andy Shevchenko 2022-01-19 580 for (pos = (head)->next; !list_is_head(pos, (head)); pos = pos->next)
^1da177e4c3f41 Linus Torvalds 2005-04-16 581
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 582 /**
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 583 * list_for_each_continue - continue iteration over a list
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 584 * @pos: the &struct list_head to use as a loop cursor.
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 585 * @head: the head for your list.
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 586 *
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 587 * Continue to iterate over a list, continuing after the current position.
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 588 */
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 589 #define list_for_each_continue(pos, head) \
0425473037db40 Andy Shevchenko 2022-01-19 590 for (pos = pos->next; !list_is_head(pos, (head)); pos = pos->next)
28ca0d6d39ab1d Pavel Begunkov 2019-11-29 591
^1da177e4c3f41 Linus Torvalds 2005-04-16 592 /**
^1da177e4c3f41 Linus Torvalds 2005-04-16 593 * list_for_each_prev - iterate over a list backwards
8e3a67a99231f9 Randy Dunlap 2006-06-25 594 * @pos: the &struct list_head to use as a loop cursor.
^1da177e4c3f41 Linus Torvalds 2005-04-16 595 * @head: the head for your list.
^1da177e4c3f41 Linus Torvalds 2005-04-16 596 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 597 #define list_for_each_prev(pos, head) \
0425473037db40 Andy Shevchenko 2022-01-19 598 for (pos = (head)->prev; !list_is_head(pos, (head)); pos = pos->prev)
^1da177e4c3f41 Linus Torvalds 2005-04-16 599
^1da177e4c3f41 Linus Torvalds 2005-04-16 600 /**
^1da177e4c3f41 Linus Torvalds 2005-04-16 601 * list_for_each_safe - iterate over a list safe against removal of list entry
8e3a67a99231f9 Randy Dunlap 2006-06-25 602 * @pos: the &struct list_head to use as a loop cursor.
^1da177e4c3f41 Linus Torvalds 2005-04-16 603 * @n: another &struct list_head to use as temporary storage
^1da177e4c3f41 Linus Torvalds 2005-04-16 604 * @head: the head for your list.
^1da177e4c3f41 Linus Torvalds 2005-04-16 605 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 606 #define list_for_each_safe(pos, n, head) \
0425473037db40 Andy Shevchenko 2022-01-19 607 for (pos = (head)->next, n = pos->next; \
0425473037db40 Andy Shevchenko 2022-01-19 608 !list_is_head(pos, (head)); \
^1da177e4c3f41 Linus Torvalds 2005-04-16 609 pos = n, n = pos->next)
^1da177e4c3f41 Linus Torvalds 2005-04-16 610
37c42524d60906 Denis V. Lunev 2007-10-16 611 /**
8f731f7d83d6c6 Randy Dunlap 2007-10-18 612 * list_for_each_prev_safe - iterate over a list backwards safe against removal of list entry
37c42524d60906 Denis V. Lunev 2007-10-16 613 * @pos: the &struct list_head to use as a loop cursor.
37c42524d60906 Denis V. Lunev 2007-10-16 614 * @n: another &struct list_head to use as temporary storage
37c42524d60906 Denis V. Lunev 2007-10-16 615 * @head: the head for your list.
37c42524d60906 Denis V. Lunev 2007-10-16 616 */
37c42524d60906 Denis V. Lunev 2007-10-16 617 #define list_for_each_prev_safe(pos, n, head) \
37c42524d60906 Denis V. Lunev 2007-10-16 618 for (pos = (head)->prev, n = pos->prev; \
0425473037db40 Andy Shevchenko 2022-01-19 619 !list_is_head(pos, (head)); \
37c42524d60906 Denis V. Lunev 2007-10-16 620 pos = n, n = pos->prev)
37c42524d60906 Denis V. Lunev 2007-10-16 621
e130816164e244 Andy Shevchenko 2020-10-15 622 /**
e130816164e244 Andy Shevchenko 2020-10-15 623 * list_entry_is_head - test if the entry points to the head of the list
e130816164e244 Andy Shevchenko 2020-10-15 624 * @pos: the type * to cursor
e130816164e244 Andy Shevchenko 2020-10-15 625 * @head: the head for your list.
e130816164e244 Andy Shevchenko 2020-10-15 626 * @member: the name of the list_head within the struct.
e130816164e244 Andy Shevchenko 2020-10-15 627 */
e130816164e244 Andy Shevchenko 2020-10-15 628 #define list_entry_is_head(pos, head, member) \
e130816164e244 Andy Shevchenko 2020-10-15 629 (&pos->member == (head))
e130816164e244 Andy Shevchenko 2020-10-15 630
^1da177e4c3f41 Linus Torvalds 2005-04-16 631 /**
^1da177e4c3f41 Linus Torvalds 2005-04-16 632 * list_for_each_entry - iterate over list of given type
8e3a67a99231f9 Randy Dunlap 2006-06-25 633 * @pos: the type * to use as a loop cursor.
^1da177e4c3f41 Linus Torvalds 2005-04-16 634 * @head: the head for your list.
3943f42c11896c Andrey Utkin 2014-11-14 635 * @member: the name of the list_head within the struct.
^1da177e4c3f41 Linus Torvalds 2005-04-16 636 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 637 #define list_for_each_entry(pos, head, member) \
93be3c2eb3371f Oleg Nesterov 2013-11-12 @638 for (pos = list_first_entry(head, typeof(*pos), member); \
e130816164e244 Andy Shevchenko 2020-10-15 639 !list_entry_is_head(pos, head, member); \
8120e2e5141a42 Oleg Nesterov 2013-11-12 640 pos = list_next_entry(pos, member))
^1da177e4c3f41 Linus Torvalds 2005-04-16 641

:::::: The code at line 638 was first introduced by commit
:::::: 93be3c2eb3371f022ad88acf1ab6bee8e3c38378 list: introduce list_last_entry(), use list_{first,last}_entry()

:::::: TO: Oleg Nesterov <oleg@xxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

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