All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/base/regmap/regcache-maple.c:185 regcache_maple_drop() error: uninitialized symbol 'ret'.
@ 2023-05-04  2:17 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-05-04  2:17 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mark Brown <broonie@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fa31fc82fb775445c176e576304c4098222f47f2
commit: f033c26de5a5734625d2dd1dc196745fae186f1b regmap: Add maple tree based register cache
date:   4 weeks ago
:::::: branch date: 7 hours ago
:::::: commit date: 4 weeks ago
config: nios2-randconfig-m031-20230503 (https://download.01.org/0day-ci/archive/20230504/202305041044.OhP7ORwW-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202305041044.OhP7ORwW-lkp@intel.com/

New smatch warnings:
drivers/base/regmap/regcache-maple.c:185 regcache_maple_drop() error: uninitialized symbol 'ret'.
drivers/base/regmap/regcache-maple.c:216 regcache_maple_sync() error: uninitialized symbol 'ret'.

Old smatch warnings:
arch/nios2/include/asm/thread_info.h:62 current_thread_info() error: uninitialized symbol 'sp'.

vim +/ret +185 drivers/base/regmap/regcache-maple.c

f033c26de5a573 Mark Brown 2023-03-30  106  
f033c26de5a573 Mark Brown 2023-03-30  107  static int regcache_maple_drop(struct regmap *map, unsigned int min,
f033c26de5a573 Mark Brown 2023-03-30  108  			       unsigned int max)
f033c26de5a573 Mark Brown 2023-03-30  109  {
f033c26de5a573 Mark Brown 2023-03-30  110  	struct maple_tree *mt = map->cache;
f033c26de5a573 Mark Brown 2023-03-30  111  	MA_STATE(mas, mt, min, max);
f033c26de5a573 Mark Brown 2023-03-30  112  	unsigned long *entry, *lower, *upper;
f033c26de5a573 Mark Brown 2023-03-30  113  	unsigned long lower_index, lower_last;
f033c26de5a573 Mark Brown 2023-03-30  114  	unsigned long upper_index, upper_last;
f033c26de5a573 Mark Brown 2023-03-30  115  	int ret;
f033c26de5a573 Mark Brown 2023-03-30  116  
f033c26de5a573 Mark Brown 2023-03-30  117  	lower = NULL;
f033c26de5a573 Mark Brown 2023-03-30  118  	upper = NULL;
f033c26de5a573 Mark Brown 2023-03-30  119  
f033c26de5a573 Mark Brown 2023-03-30  120  	mas_lock(&mas);
f033c26de5a573 Mark Brown 2023-03-30  121  
f033c26de5a573 Mark Brown 2023-03-30  122  	mas_for_each(&mas, entry, max) {
f033c26de5a573 Mark Brown 2023-03-30  123  		/*
f033c26de5a573 Mark Brown 2023-03-30  124  		 * This is safe because the regmap lock means the
f033c26de5a573 Mark Brown 2023-03-30  125  		 * Maple lock is redundant, but we need to take it due
f033c26de5a573 Mark Brown 2023-03-30  126  		 * to lockdep asserts in the maple tree code.
f033c26de5a573 Mark Brown 2023-03-30  127  		 */
f033c26de5a573 Mark Brown 2023-03-30  128  		mas_unlock(&mas);
f033c26de5a573 Mark Brown 2023-03-30  129  
f033c26de5a573 Mark Brown 2023-03-30  130  		/* Do we need to save any of this entry? */
f033c26de5a573 Mark Brown 2023-03-30  131  		if (mas.index < min) {
f033c26de5a573 Mark Brown 2023-03-30  132  			lower_index = mas.index;
f033c26de5a573 Mark Brown 2023-03-30  133  			lower_last = min -1;
f033c26de5a573 Mark Brown 2023-03-30  134  
f033c26de5a573 Mark Brown 2023-03-30  135  			lower = kmemdup(entry, ((min - mas.index) *
f033c26de5a573 Mark Brown 2023-03-30  136  						sizeof(unsigned long)),
f033c26de5a573 Mark Brown 2023-03-30  137  					GFP_KERNEL);
f033c26de5a573 Mark Brown 2023-03-30  138  			if (!lower) {
f033c26de5a573 Mark Brown 2023-03-30  139  				ret = -ENOMEM;
f033c26de5a573 Mark Brown 2023-03-30  140  				goto out;
f033c26de5a573 Mark Brown 2023-03-30  141  			}
f033c26de5a573 Mark Brown 2023-03-30  142  		}
f033c26de5a573 Mark Brown 2023-03-30  143  
f033c26de5a573 Mark Brown 2023-03-30  144  		if (mas.last > max) {
f033c26de5a573 Mark Brown 2023-03-30  145  			upper_index = max + 1;
f033c26de5a573 Mark Brown 2023-03-30  146  			upper_last = mas.last;
f033c26de5a573 Mark Brown 2023-03-30  147  
f033c26de5a573 Mark Brown 2023-03-30  148  			upper = kmemdup(&entry[max + 1],
f033c26de5a573 Mark Brown 2023-03-30  149  					((mas.last - max) *
f033c26de5a573 Mark Brown 2023-03-30  150  					 sizeof(unsigned long)),
f033c26de5a573 Mark Brown 2023-03-30  151  					GFP_KERNEL);
f033c26de5a573 Mark Brown 2023-03-30  152  			if (!upper) {
f033c26de5a573 Mark Brown 2023-03-30  153  				ret = -ENOMEM;
f033c26de5a573 Mark Brown 2023-03-30  154  				goto out;
f033c26de5a573 Mark Brown 2023-03-30  155  			}
f033c26de5a573 Mark Brown 2023-03-30  156  		}
f033c26de5a573 Mark Brown 2023-03-30  157  
f033c26de5a573 Mark Brown 2023-03-30  158  		kfree(entry);
f033c26de5a573 Mark Brown 2023-03-30  159  		mas_lock(&mas);
f033c26de5a573 Mark Brown 2023-03-30  160  		mas_erase(&mas);
f033c26de5a573 Mark Brown 2023-03-30  161  
f033c26de5a573 Mark Brown 2023-03-30  162  		/* Insert new nodes with the saved data */
f033c26de5a573 Mark Brown 2023-03-30  163  		if (lower) {
f033c26de5a573 Mark Brown 2023-03-30  164  			mas_set_range(&mas, lower_index, lower_last);
f033c26de5a573 Mark Brown 2023-03-30  165  			ret = mas_store_gfp(&mas, lower, GFP_KERNEL);
f033c26de5a573 Mark Brown 2023-03-30  166  			if (ret != 0)
f033c26de5a573 Mark Brown 2023-03-30  167  				goto out;
f033c26de5a573 Mark Brown 2023-03-30  168  			lower = NULL;
f033c26de5a573 Mark Brown 2023-03-30  169  		}
f033c26de5a573 Mark Brown 2023-03-30  170  
f033c26de5a573 Mark Brown 2023-03-30  171  		if (upper) {
f033c26de5a573 Mark Brown 2023-03-30  172  			mas_set_range(&mas, upper_index, upper_last);
f033c26de5a573 Mark Brown 2023-03-30  173  			ret = mas_store_gfp(&mas, upper, GFP_KERNEL);
f033c26de5a573 Mark Brown 2023-03-30  174  			if (ret != 0)
f033c26de5a573 Mark Brown 2023-03-30  175  				goto out;
f033c26de5a573 Mark Brown 2023-03-30  176  			upper = NULL;
f033c26de5a573 Mark Brown 2023-03-30  177  		}
f033c26de5a573 Mark Brown 2023-03-30  178  	}
f033c26de5a573 Mark Brown 2023-03-30  179  
f033c26de5a573 Mark Brown 2023-03-30  180  out:
f033c26de5a573 Mark Brown 2023-03-30  181  	mas_unlock(&mas);
f033c26de5a573 Mark Brown 2023-03-30  182  	kfree(lower);
f033c26de5a573 Mark Brown 2023-03-30  183  	kfree(upper);
f033c26de5a573 Mark Brown 2023-03-30  184  
f033c26de5a573 Mark Brown 2023-03-30 @185  	return ret;
f033c26de5a573 Mark Brown 2023-03-30  186  }
f033c26de5a573 Mark Brown 2023-03-30  187  
f033c26de5a573 Mark Brown 2023-03-30  188  static int regcache_maple_sync(struct regmap *map, unsigned int min,
f033c26de5a573 Mark Brown 2023-03-30  189  			       unsigned int max)
f033c26de5a573 Mark Brown 2023-03-30  190  {
f033c26de5a573 Mark Brown 2023-03-30  191  	struct maple_tree *mt = map->cache;
f033c26de5a573 Mark Brown 2023-03-30  192  	unsigned long *entry;
f033c26de5a573 Mark Brown 2023-03-30  193  	MA_STATE(mas, mt, min, max);
f033c26de5a573 Mark Brown 2023-03-30  194  	unsigned long lmin = min;
f033c26de5a573 Mark Brown 2023-03-30  195  	unsigned long lmax = max;
f033c26de5a573 Mark Brown 2023-03-30  196  	unsigned int r;
f033c26de5a573 Mark Brown 2023-03-30  197  	int ret;
f033c26de5a573 Mark Brown 2023-03-30  198  
f033c26de5a573 Mark Brown 2023-03-30  199  	map->cache_bypass = true;
f033c26de5a573 Mark Brown 2023-03-30  200  
f033c26de5a573 Mark Brown 2023-03-30  201  	rcu_read_lock();
f033c26de5a573 Mark Brown 2023-03-30  202  
f033c26de5a573 Mark Brown 2023-03-30  203  	mas_for_each(&mas, entry, max) {
f033c26de5a573 Mark Brown 2023-03-30  204  		for (r = max(mas.index, lmin); r <= min(mas.last, lmax); r++) {
f033c26de5a573 Mark Brown 2023-03-30  205  			ret = regcache_sync_val(map, r, entry[r - mas.index]);
f033c26de5a573 Mark Brown 2023-03-30  206  			if (ret != 0)
f033c26de5a573 Mark Brown 2023-03-30  207  				goto out;
f033c26de5a573 Mark Brown 2023-03-30  208  		}
f033c26de5a573 Mark Brown 2023-03-30  209  	}
f033c26de5a573 Mark Brown 2023-03-30  210  
f033c26de5a573 Mark Brown 2023-03-30  211  out:
f033c26de5a573 Mark Brown 2023-03-30  212  	rcu_read_unlock();
f033c26de5a573 Mark Brown 2023-03-30  213  
f033c26de5a573 Mark Brown 2023-03-30  214  	map->cache_bypass = false;
f033c26de5a573 Mark Brown 2023-03-30  215  
f033c26de5a573 Mark Brown 2023-03-30 @216  	return ret;
f033c26de5a573 Mark Brown 2023-03-30  217  }
f033c26de5a573 Mark Brown 2023-03-30  218  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-05-04  2:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-04  2:17 drivers/base/regmap/regcache-maple.c:185 regcache_maple_drop() error: uninitialized symbol 'ret' kernel test robot

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.