All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Liam R. Howlett" <Liam.Howlett@Oracle.com>
To: kernel test robot <lkp@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	oe-kbuild-all@lists.linux.dev,
	Linux Memory Management List <linux-mm@kvack.org>,
	maple-tree@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/12] maple_tree: Separate ma_state node from status.
Date: Thu, 2 Nov 2023 13:39:03 -0400	[thread overview]
Message-ID: <20231102173903.f4uizdrh3shj4b27@revolver> (raw)
In-Reply-To: <202311021622.6KoUHJP7-lkp@intel.com>

* kernel test robot <lkp@intel.com> [231102 04:43]:
> Hi Liam,
> 
> kernel test robot noticed the following build warnings:
> 
> [auto build test WARNING on akpm-mm/mm-everything]
> [also build test WARNING on linus/master v6.6 next-20231102]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
> 
> url:    https://github.com/intel-lab-lkp/linux/commits/Liam-R-Howlett/maple_tree-Remove-unnecessary-default-labels-from-switch-statements/20231102-033618
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link:    https://lore.kernel.org/r/20231101171629.3612299-9-Liam.Howlett%40oracle.com
> patch subject: [PATCH 08/12] maple_tree: Separate ma_state node from status.
> config: arc-randconfig-001-20231102 (https://download.01.org/0day-ci/archive/20231102/202311021622.6KoUHJP7-lkp@intel.com/config)
> compiler: arceb-elf-gcc (GCC) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231102/202311021622.6KoUHJP7-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>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202311021622.6KoUHJP7-lkp@intel.com/
> 
> All warnings (new ones prefixed by >>):
> 
>    drivers/base/regmap/regcache-maple.c: In function 'regcache_maple_drop':
>    drivers/base/regmap/regcache-maple.c:113:23: warning: 'lower_index' is used uninitialized [-Wuninitialized]
>      113 |         unsigned long lower_index, lower_last;
>          |                       ^~~~~~~~~~~
>    drivers/base/regmap/regcache-maple.c:113:36: warning: 'lower_last' is used uninitialized [-Wuninitialized]
>      113 |         unsigned long lower_index, lower_last;
>          |                                    ^~~~~~~~~~
> >> drivers/base/regmap/regcache-maple.c:114:23: warning: 'upper_index' is used uninitialized [-Wuninitialized]
>      114 |         unsigned long upper_index, upper_last;
>          |                       ^~~~~~~~~~~
> >> drivers/base/regmap/regcache-maple.c:114:36: warning: 'upper_last' is used uninitialized [-Wuninitialized]
>      114 |         unsigned long upper_index, upper_last;
>          |                                    ^~~~~~~~~~
> 

From the above git blame, I can see that I didn't write any of this.
How did the bot blame my commits?  It's interesting because it cannot be
randomly selecting the author of the data structure being used..

Also, I don't see how the bot is correct.  Did you upgrade your bots GCC
and this is a false positive?


> 
> vim +/upper_index +114 drivers/base/regmap/regcache-maple.c
> 
> f033c26de5a5734 Mark Brown    2023-03-30  106  
> f033c26de5a5734 Mark Brown    2023-03-30  107  static int regcache_maple_drop(struct regmap *map, unsigned int min,
> f033c26de5a5734 Mark Brown    2023-03-30  108  			       unsigned int max)
> f033c26de5a5734 Mark Brown    2023-03-30  109  {
> f033c26de5a5734 Mark Brown    2023-03-30  110  	struct maple_tree *mt = map->cache;
> f033c26de5a5734 Mark Brown    2023-03-30  111  	MA_STATE(mas, mt, min, max);
> f033c26de5a5734 Mark Brown    2023-03-30  112  	unsigned long *entry, *lower, *upper;
> f033c26de5a5734 Mark Brown    2023-03-30  113  	unsigned long lower_index, lower_last;
> f033c26de5a5734 Mark Brown    2023-03-30 @114  	unsigned long upper_index, upper_last;
> f033c26de5a5734 Mark Brown    2023-03-30  115  	int ret;
> f033c26de5a5734 Mark Brown    2023-03-30  116  
> f033c26de5a5734 Mark Brown    2023-03-30  117  	lower = NULL;

lower is null..

> f033c26de5a5734 Mark Brown    2023-03-30  118  	upper = NULL;
> f033c26de5a5734 Mark Brown    2023-03-30  119  
> f033c26de5a5734 Mark Brown    2023-03-30  120  	mas_lock(&mas);
> f033c26de5a5734 Mark Brown    2023-03-30  121  
> f033c26de5a5734 Mark Brown    2023-03-30  122  	mas_for_each(&mas, entry, max) {
> f033c26de5a5734 Mark Brown    2023-03-30  123  		/*
> f033c26de5a5734 Mark Brown    2023-03-30  124  		 * This is safe because the regmap lock means the
> f033c26de5a5734 Mark Brown    2023-03-30  125  		 * Maple lock is redundant, but we need to take it due
> f033c26de5a5734 Mark Brown    2023-03-30  126  		 * to lockdep asserts in the maple tree code.
> f033c26de5a5734 Mark Brown    2023-03-30  127  		 */
> f033c26de5a5734 Mark Brown    2023-03-30  128  		mas_unlock(&mas);
> f033c26de5a5734 Mark Brown    2023-03-30  129  
> f033c26de5a5734 Mark Brown    2023-03-30  130  		/* Do we need to save any of this entry? */
> f033c26de5a5734 Mark Brown    2023-03-30  131  		if (mas.index < min) {
> f033c26de5a5734 Mark Brown    2023-03-30  132  			lower_index = mas.index;
> f033c26de5a5734 Mark Brown    2023-03-30  133  			lower_last = min -1;
> f033c26de5a5734 Mark Brown    2023-03-30  134  
> f033c26de5a5734 Mark Brown    2023-03-30  135  			lower = kmemdup(entry, ((min - mas.index) *
> f033c26de5a5734 Mark Brown    2023-03-30  136  						sizeof(unsigned long)),
> b0393e1fe40e962 Guenter Roeck 2023-07-20  137  					map->alloc_flags);

Lower is only ever set here.. but lower_index/lower_last are also set
here..

> f033c26de5a5734 Mark Brown    2023-03-30  138  			if (!lower) {
> f033c26de5a5734 Mark Brown    2023-03-30  139  				ret = -ENOMEM;
> 451941ac1ee2be1 Mark Brown    2023-04-03  140  				goto out_unlocked;
> f033c26de5a5734 Mark Brown    2023-03-30  141  			}
> f033c26de5a5734 Mark Brown    2023-03-30  142  		}
> f033c26de5a5734 Mark Brown    2023-03-30  143  
> f033c26de5a5734 Mark Brown    2023-03-30  144  		if (mas.last > max) {
> f033c26de5a5734 Mark Brown    2023-03-30  145  			upper_index = max + 1;
> f033c26de5a5734 Mark Brown    2023-03-30  146  			upper_last = mas.last;
> f033c26de5a5734 Mark Brown    2023-03-30  147  
> f033c26de5a5734 Mark Brown    2023-03-30  148  			upper = kmemdup(&entry[max + 1],
> f033c26de5a5734 Mark Brown    2023-03-30  149  					((mas.last - max) *
> f033c26de5a5734 Mark Brown    2023-03-30  150  					 sizeof(unsigned long)),
> b0393e1fe40e962 Guenter Roeck 2023-07-20  151  					map->alloc_flags);
> f033c26de5a5734 Mark Brown    2023-03-30  152  			if (!upper) {
> f033c26de5a5734 Mark Brown    2023-03-30  153  				ret = -ENOMEM;
> 451941ac1ee2be1 Mark Brown    2023-04-03  154  				goto out_unlocked;
> f033c26de5a5734 Mark Brown    2023-03-30  155  			}
> f033c26de5a5734 Mark Brown    2023-03-30  156  		}
> f033c26de5a5734 Mark Brown    2023-03-30  157  
> f033c26de5a5734 Mark Brown    2023-03-30  158  		kfree(entry);
> f033c26de5a5734 Mark Brown    2023-03-30  159  		mas_lock(&mas);
> f033c26de5a5734 Mark Brown    2023-03-30  160  		mas_erase(&mas);
> f033c26de5a5734 Mark Brown    2023-03-30  161  
> f033c26de5a5734 Mark Brown    2023-03-30  162  		/* Insert new nodes with the saved data */
> f033c26de5a5734 Mark Brown    2023-03-30  163  		if (lower) {

Only used if lower isn't NULL, so we know lower_index and lower_last are
set.

> f033c26de5a5734 Mark Brown    2023-03-30  164  			mas_set_range(&mas, lower_index, lower_last);
> b0393e1fe40e962 Guenter Roeck 2023-07-20  165  			ret = mas_store_gfp(&mas, lower, map->alloc_flags);
> f033c26de5a5734 Mark Brown    2023-03-30  166  			if (ret != 0)
> f033c26de5a5734 Mark Brown    2023-03-30  167  				goto out;
> f033c26de5a5734 Mark Brown    2023-03-30  168  			lower = NULL;

lower is reset for the next loop.

> f033c26de5a5734 Mark Brown    2023-03-30  169  		}
> f033c26de5a5734 Mark Brown    2023-03-30  170  
> f033c26de5a5734 Mark Brown    2023-03-30  171  		if (upper) {
> f033c26de5a5734 Mark Brown    2023-03-30  172  			mas_set_range(&mas, upper_index, upper_last);
> b0393e1fe40e962 Guenter Roeck 2023-07-20  173  			ret = mas_store_gfp(&mas, upper, map->alloc_flags);
> f033c26de5a5734 Mark Brown    2023-03-30  174  			if (ret != 0)
> f033c26de5a5734 Mark Brown    2023-03-30  175  				goto out;
> f033c26de5a5734 Mark Brown    2023-03-30  176  			upper = NULL;
> f033c26de5a5734 Mark Brown    2023-03-30  177  		}
> f033c26de5a5734 Mark Brown    2023-03-30  178  	}
> f033c26de5a5734 Mark Brown    2023-03-30  179  
> f033c26de5a5734 Mark Brown    2023-03-30  180  out:
> f033c26de5a5734 Mark Brown    2023-03-30  181  	mas_unlock(&mas);
> 451941ac1ee2be1 Mark Brown    2023-04-03  182  out_unlocked:
> f033c26de5a5734 Mark Brown    2023-03-30  183  	kfree(lower);
> f033c26de5a5734 Mark Brown    2023-03-30  184  	kfree(upper);
> f033c26de5a5734 Mark Brown    2023-03-30  185  
> f033c26de5a5734 Mark Brown    2023-03-30  186  	return ret;
> f033c26de5a5734 Mark Brown    2023-03-30  187  }
> f033c26de5a5734 Mark Brown    2023-03-30  188  
> 
> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2023-11-02 17:39 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-01 17:16 [PATCH 00/12] maple_tree: iterator state changes Liam R. Howlett
2023-11-01 17:16 ` [PATCH 01/12] maple_tree: Remove unnecessary default labels from switch statements Liam R. Howlett
2023-11-01 17:16 ` [PATCH 02/12] maple_tree: Make mas_erase() more robust Liam R. Howlett
2023-11-01 17:16 ` [PATCH 03/12] maple_tree: Move debug check to __mas_set_range() Liam R. Howlett
2023-11-01 17:16 ` [PATCH 04/12] maple_tree: Add end of node tracking to the maple state Liam R. Howlett
2023-11-01 17:16 ` [PATCH 05/12] maple_tree: Use cached node end in mas_next() Liam R. Howlett
2023-11-01 17:16 ` [PATCH 06/12] maple_tree: Use cached node end in mas_destroy() Liam R. Howlett
2023-11-01 17:16 ` [PATCH 07/12] maple_tree: Clean up inlines for some functions Liam R. Howlett
2023-11-01 17:16 ` [PATCH 08/12] maple_tree: Separate ma_state node from status Liam R. Howlett
2023-11-02  8:42   ` kernel test robot
2023-11-02 17:39     ` Liam R. Howlett [this message]
2023-11-06 15:41   ` [PATCH] maple_tree: Fix comments about MAS_* Liam R. Howlett
2023-11-06 15:45   ` [PATCH] maple_tree: Update forking to separate maple state and node Liam R. Howlett
2023-11-01 17:16 ` [PATCH 09/12] maple_tree: Remove mas_searchable() Liam R. Howlett
2023-11-01 17:16 ` [PATCH 10/12] maple_tree: Use maple state end for write operations Liam R. Howlett
2023-11-01 17:16 ` [PATCH 11/12] maple_tree: Don't find node end in mtree_lookup_walk() Liam R. Howlett
2023-11-01 17:16 ` [PATCH 12/12] maple_tree: mtree_range_walk() clean up Liam R. Howlett

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=20231102173903.f4uizdrh3shj4b27@revolver \
    --to=liam.howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lkp@intel.com \
    --cc=maple-tree@lists.infradead.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.