From: kernel test robot <lkp@intel.com>
To: Chanwoo Choi <cw00.choi@samsung.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [chanwoo:devfreq-testing 5/5] include/linux/list.h:638:9: warning: this 'for' clause does not guard...
Date: Wed, 4 May 2022 20:48:11 +0800 [thread overview]
Message-ID: <202205042019.gOXJsH4f-lkp@intel.com> (raw)
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@intel.com/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@intel.com>
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@redhat.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-05-04 12:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-04 12:48 kernel test robot [this message]
2022-05-04 19:53 ` [chanwoo:devfreq-testing 5/5] include/linux/list.h:638:9: warning: this 'for' clause does not guard Andy Shevchenko
2022-05-04 19:53 ` Andy Shevchenko
2022-05-09 3:06 ` Chanwoo Choi
2022-05-09 3:06 ` Chanwoo Choi
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=202205042019.gOXJsH4f-lkp@intel.com \
--to=lkp@intel.com \
--cc=cw00.choi@samsung.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.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.