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
next prev parent 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.