All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.