* [avpatel:riscv_acpi_b2_v1 80/91] drivers/base/swnode.c:744 software_node_find_by_name() warn: iterator used outside loop: 'swnode'
@ 2023-08-06 16:04 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2023-08-06 16:04 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Anup Patel <apatel@ventanamicro.com>
CC: Sunil V L <sunilvl@ventanamicro.com>
tree: https://github.com/avpatel/linux.git riscv_acpi_b2_v1
head: b09364548457cec51680b8f8b1a5e917b5e74cf5
commit: 29c6edbe9ecad42c8e227ecbcbd656d357729a32 [80/91] swnode: Add support to create early during boot
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: microblaze-randconfig-m031-20230806 (https://download.01.org/0day-ci/archive/20230807/202308070005.kyNkYpSW-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230807/202308070005.kyNkYpSW-lkp@intel.com/reproduce)
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 <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202308070005.kyNkYpSW-lkp@intel.com/
smatch warnings:
drivers/base/swnode.c:744 software_node_find_by_name() warn: iterator used outside loop: 'swnode'
vim +/swnode +744 drivers/base/swnode.c
59abd83672f70c Heikki Krogerus 2018-11-09 697
1666faedb567d0 Heikki Krogerus 2019-08-19 698 /**
1666faedb567d0 Heikki Krogerus 2019-08-19 699 * software_node_find_by_name - Find software node by name
1666faedb567d0 Heikki Krogerus 2019-08-19 700 * @parent: Parent of the software node
1666faedb567d0 Heikki Krogerus 2019-08-19 701 * @name: Name of the software node
1666faedb567d0 Heikki Krogerus 2019-08-19 702 *
1666faedb567d0 Heikki Krogerus 2019-08-19 703 * The function will find a node that is child of @parent and that is named
1666faedb567d0 Heikki Krogerus 2019-08-19 704 * @name. If no node is found, the function returns NULL.
1666faedb567d0 Heikki Krogerus 2019-08-19 705 *
1666faedb567d0 Heikki Krogerus 2019-08-19 706 * NOTE: you will need to drop the reference with fwnode_handle_put() after use.
1666faedb567d0 Heikki Krogerus 2019-08-19 707 */
1666faedb567d0 Heikki Krogerus 2019-08-19 708 const struct software_node *
1666faedb567d0 Heikki Krogerus 2019-08-19 709 software_node_find_by_name(const struct software_node *parent, const char *name)
1666faedb567d0 Heikki Krogerus 2019-08-19 710 {
016049a816774e Heikki Krogerus 2019-08-30 711 struct swnode *swnode = NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 712 struct kobject *k;
1666faedb567d0 Heikki Krogerus 2019-08-19 713
1666faedb567d0 Heikki Krogerus 2019-08-19 714 if (!name)
1666faedb567d0 Heikki Krogerus 2019-08-19 715 return NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 716
29c6edbe9ecad4 Anup Patel 2023-04-25 717 spin_lock(&swnode_early_lock);
29c6edbe9ecad4 Anup Patel 2023-04-25 718
29c6edbe9ecad4 Anup Patel 2023-04-25 719 list_for_each_entry(swnode, &swnode_early_list, early) {
29c6edbe9ecad4 Anup Patel 2023-04-25 720 if (parent == swnode->node->parent && swnode->node->name &&
29c6edbe9ecad4 Anup Patel 2023-04-25 721 !strcmp(name, swnode->node->name)) {
29c6edbe9ecad4 Anup Patel 2023-04-25 722 kobject_get(&swnode->kobj);
29c6edbe9ecad4 Anup Patel 2023-04-25 723 spin_unlock(&swnode_early_lock);
29c6edbe9ecad4 Anup Patel 2023-04-25 724 return swnode->node;
29c6edbe9ecad4 Anup Patel 2023-04-25 725 }
29c6edbe9ecad4 Anup Patel 2023-04-25 726 }
29c6edbe9ecad4 Anup Patel 2023-04-25 727
29c6edbe9ecad4 Anup Patel 2023-04-25 728 spin_unlock(&swnode_early_lock);
29c6edbe9ecad4 Anup Patel 2023-04-25 729
1666faedb567d0 Heikki Krogerus 2019-08-19 730 spin_lock(&swnode_kset->list_lock);
1666faedb567d0 Heikki Krogerus 2019-08-19 731
1666faedb567d0 Heikki Krogerus 2019-08-19 732 list_for_each_entry(k, &swnode_kset->list, entry) {
1666faedb567d0 Heikki Krogerus 2019-08-19 733 swnode = kobj_to_swnode(k);
1666faedb567d0 Heikki Krogerus 2019-08-19 734 if (parent == swnode->node->parent && swnode->node->name &&
1666faedb567d0 Heikki Krogerus 2019-08-19 735 !strcmp(name, swnode->node->name)) {
1666faedb567d0 Heikki Krogerus 2019-08-19 736 kobject_get(&swnode->kobj);
1666faedb567d0 Heikki Krogerus 2019-08-19 737 break;
1666faedb567d0 Heikki Krogerus 2019-08-19 738 }
1666faedb567d0 Heikki Krogerus 2019-08-19 739 swnode = NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 740 }
1666faedb567d0 Heikki Krogerus 2019-08-19 741
1666faedb567d0 Heikki Krogerus 2019-08-19 742 spin_unlock(&swnode_kset->list_lock);
1666faedb567d0 Heikki Krogerus 2019-08-19 743
1666faedb567d0 Heikki Krogerus 2019-08-19 @744 return swnode ? swnode->node : NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 745 }
1666faedb567d0 Heikki Krogerus 2019-08-19 746 EXPORT_SYMBOL_GPL(software_node_find_by_name);
1666faedb567d0 Heikki Krogerus 2019-08-19 747
:::::: The code at line 744 was first introduced by commit
:::::: 1666faedb567d03cde1d656ae24c6cc253e67373 software node: Add software_node_find_by_name()
:::::: TO: Heikki Krogerus <heikki.krogerus@linux.intel.com>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* [avpatel:riscv_acpi_b2_v1 80/91] drivers/base/swnode.c:744 software_node_find_by_name() warn: iterator used outside loop: 'swnode'
@ 2023-08-07 5:45 Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2023-08-07 5:45 UTC (permalink / raw)
To: oe-kbuild, Anup Patel; +Cc: lkp, oe-kbuild-all, Sunil V L
tree: https://github.com/avpatel/linux.git riscv_acpi_b2_v1
head: b09364548457cec51680b8f8b1a5e917b5e74cf5
commit: 29c6edbe9ecad42c8e227ecbcbd656d357729a32 [80/91] swnode: Add support to create early during boot
config: microblaze-randconfig-m031-20230806 (https://download.01.org/0day-ci/archive/20230807/202308070005.kyNkYpSW-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230807/202308070005.kyNkYpSW-lkp@intel.com/reproduce)
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/202308070005.kyNkYpSW-lkp@intel.com/
smatch warnings:
drivers/base/swnode.c:744 software_node_find_by_name() warn: iterator used outside loop: 'swnode'
vim +/swnode +744 drivers/base/swnode.c
1666faedb567d0 Heikki Krogerus 2019-08-19 708 const struct software_node *
1666faedb567d0 Heikki Krogerus 2019-08-19 709 software_node_find_by_name(const struct software_node *parent, const char *name)
1666faedb567d0 Heikki Krogerus 2019-08-19 710 {
016049a816774e Heikki Krogerus 2019-08-30 711 struct swnode *swnode = NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 712 struct kobject *k;
1666faedb567d0 Heikki Krogerus 2019-08-19 713
1666faedb567d0 Heikki Krogerus 2019-08-19 714 if (!name)
1666faedb567d0 Heikki Krogerus 2019-08-19 715 return NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 716
29c6edbe9ecad4 Anup Patel 2023-04-25 717 spin_lock(&swnode_early_lock);
29c6edbe9ecad4 Anup Patel 2023-04-25 718
29c6edbe9ecad4 Anup Patel 2023-04-25 719 list_for_each_entry(swnode, &swnode_early_list, early) {
29c6edbe9ecad4 Anup Patel 2023-04-25 720 if (parent == swnode->node->parent && swnode->node->name &&
29c6edbe9ecad4 Anup Patel 2023-04-25 721 !strcmp(name, swnode->node->name)) {
29c6edbe9ecad4 Anup Patel 2023-04-25 722 kobject_get(&swnode->kobj);
29c6edbe9ecad4 Anup Patel 2023-04-25 723 spin_unlock(&swnode_early_lock);
29c6edbe9ecad4 Anup Patel 2023-04-25 724 return swnode->node;
29c6edbe9ecad4 Anup Patel 2023-04-25 725 }
29c6edbe9ecad4 Anup Patel 2023-04-25 726 }
29c6edbe9ecad4 Anup Patel 2023-04-25 727
29c6edbe9ecad4 Anup Patel 2023-04-25 728 spin_unlock(&swnode_early_lock);
29c6edbe9ecad4 Anup Patel 2023-04-25 729
1666faedb567d0 Heikki Krogerus 2019-08-19 730 spin_lock(&swnode_kset->list_lock);
1666faedb567d0 Heikki Krogerus 2019-08-19 731
1666faedb567d0 Heikki Krogerus 2019-08-19 732 list_for_each_entry(k, &swnode_kset->list, entry) {
The static checker is concerned that "&swnode_kset->list" can be empty.
I don't know if it can't or not. Just introduce a "found = false;"
variable and set "found = true" before the break.
1666faedb567d0 Heikki Krogerus 2019-08-19 733 swnode = kobj_to_swnode(k);
1666faedb567d0 Heikki Krogerus 2019-08-19 734 if (parent == swnode->node->parent && swnode->node->name &&
1666faedb567d0 Heikki Krogerus 2019-08-19 735 !strcmp(name, swnode->node->name)) {
1666faedb567d0 Heikki Krogerus 2019-08-19 736 kobject_get(&swnode->kobj);
1666faedb567d0 Heikki Krogerus 2019-08-19 737 break;
1666faedb567d0 Heikki Krogerus 2019-08-19 738 }
1666faedb567d0 Heikki Krogerus 2019-08-19 739 swnode = NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 740 }
1666faedb567d0 Heikki Krogerus 2019-08-19 741
1666faedb567d0 Heikki Krogerus 2019-08-19 742 spin_unlock(&swnode_kset->list_lock);
1666faedb567d0 Heikki Krogerus 2019-08-19 743
1666faedb567d0 Heikki Krogerus 2019-08-19 @744 return swnode ? swnode->node : NULL;
1666faedb567d0 Heikki Krogerus 2019-08-19 745 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-08-07 5:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-06 16:04 [avpatel:riscv_acpi_b2_v1 80/91] drivers/base/swnode.c:744 software_node_find_by_name() warn: iterator used outside loop: 'swnode' kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2023-08-07 5:45 Dan Carpenter
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.