From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: lib/maple_tree.c:4653 mas_next_slot() warn: ignoring unreachable code.
Date: Fri, 13 Oct 2023 13:34:45 +0800 [thread overview]
Message-ID: <202310131304.A7t0sbJr-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: "Liam R. Howlett" <Liam.Howlett@oracle.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ce583d5fb9d3f4e20473b9d5619d51ea3cc92283
commit: a8091f039c1ebf5cb0d5261e3613f18eb2a5d8b7 maple_tree: add MAS_UNDERFLOW and MAS_OVERFLOW states
date: 13 days ago
:::::: branch date: 3 hours ago
:::::: commit date: 13 days ago
config: x86_64-randconfig-161-20231003 (https://download.01.org/0day-ci/archive/20231013/202310131304.A7t0sbJr-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231013/202310131304.A7t0sbJr-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/202310131304.A7t0sbJr-lkp@intel.com/
smatch warnings:
lib/maple_tree.c:4653 mas_next_slot() warn: ignoring unreachable code.
vim +4653 lib/maple_tree.c
54a611b605901c Liam R. Howlett 2022-09-06 4591
54a611b605901c Liam R. Howlett 2022-09-06 4592 /*
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4593 * mas_next_slot() - Get the entry in the next slot
54a611b605901c Liam R. Howlett 2022-09-06 4594 *
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4595 * @mas: The maple state
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4596 * @max: The maximum starting range
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4597 * @empty: Can be empty
a8091f039c1ebf Liam R. Howlett 2023-09-21 4598 * @set_overflow: Should @mas->node be set to overflow when the limit is
a8091f039c1ebf Liam R. Howlett 2023-09-21 4599 * reached.
54a611b605901c Liam R. Howlett 2022-09-06 4600 *
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4601 * Return: The entry in the next slot which is possibly NULL
54a611b605901c Liam R. Howlett 2022-09-06 4602 */
a8091f039c1ebf Liam R. Howlett 2023-09-21 4603 static void *mas_next_slot(struct ma_state *mas, unsigned long max, bool empty,
a8091f039c1ebf Liam R. Howlett 2023-09-21 4604 bool set_overflow)
54a611b605901c Liam R. Howlett 2022-09-06 4605 {
54a611b605901c Liam R. Howlett 2022-09-06 4606 void __rcu **slots;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4607 unsigned long *pivots;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4608 unsigned long pivot;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4609 enum maple_type type;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4610 struct maple_node *node;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4611 unsigned char data_end;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4612 unsigned long save_point = mas->last;
54a611b605901c Liam R. Howlett 2022-09-06 4613 void *entry;
54a611b605901c Liam R. Howlett 2022-09-06 4614
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4615 retry:
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4616 node = mas_mn(mas);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4617 type = mte_node_type(mas->node);
39d0bd86c499ec Liam Howlett 2023-02-27 4618 pivots = ma_pivots(node, type);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4619 data_end = ma_data_end(node, type, pivots, mas->max);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4620 if (unlikely(mas_rewalk_if_dead(mas, node, save_point)))
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4621 goto retry;
54a611b605901c Liam R. Howlett 2022-09-06 4622
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4623 if (mas->max >= max) {
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4624 if (likely(mas->offset < data_end))
54a611b605901c Liam R. Howlett 2022-09-06 4625 pivot = pivots[mas->offset];
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4626 else
a8091f039c1ebf Liam R. Howlett 2023-09-21 4627 goto overflow;
54a611b605901c Liam R. Howlett 2022-09-06 4628
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4629 if (unlikely(mas_rewalk_if_dead(mas, node, save_point)))
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4630 goto retry;
54a611b605901c Liam R. Howlett 2022-09-06 4631
54a611b605901c Liam R. Howlett 2022-09-06 4632 if (pivot >= max)
a8091f039c1ebf Liam R. Howlett 2023-09-21 4633 goto overflow;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4634 }
54a611b605901c Liam R. Howlett 2022-09-06 4635
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4636 if (likely(mas->offset < data_end)) {
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4637 mas->index = pivots[mas->offset] + 1;
a8091f039c1ebf Liam R. Howlett 2023-09-21 4638 again:
54a611b605901c Liam R. Howlett 2022-09-06 4639 mas->offset++;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4640 if (likely(mas->offset < data_end))
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4641 mas->last = pivots[mas->offset];
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4642 else
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4643 mas->last = mas->max;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4644 } else {
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4645 if (mas_next_node(mas, node, max)) {
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4646 mas_rewalk(mas, save_point);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4647 goto retry;
54a611b605901c Liam R. Howlett 2022-09-06 4648 }
54a611b605901c Liam R. Howlett 2022-09-06 4649
a8091f039c1ebf Liam R. Howlett 2023-09-21 4650 if (WARN_ON_ONCE(mas_is_none(mas))) {
a8091f039c1ebf Liam R. Howlett 2023-09-21 4651 mas->node = MAS_OVERFLOW;
54a611b605901c Liam R. Howlett 2022-09-06 4652 return NULL;
a8091f039c1ebf Liam R. Howlett 2023-09-21 @4653 goto overflow;
a8091f039c1ebf Liam R. Howlett 2023-09-21 4654 }
54a611b605901c Liam R. Howlett 2022-09-06 4655
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4656 mas->offset = 0;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4657 mas->index = mas->min;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4658 node = mas_mn(mas);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4659 type = mte_node_type(mas->node);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4660 pivots = ma_pivots(node, type);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4661 mas->last = pivots[0];
54a611b605901c Liam R. Howlett 2022-09-06 4662 }
54a611b605901c Liam R. Howlett 2022-09-06 4663
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4664 slots = ma_slots(node, type);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4665 entry = mt_slot(mas->tree, slots, mas->offset);
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4666 if (unlikely(mas_rewalk_if_dead(mas, node, save_point)))
54a611b605901c Liam R. Howlett 2022-09-06 4667 goto retry;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4668
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4669 if (entry)
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4670 return entry;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4671
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4672 if (!empty) {
a8091f039c1ebf Liam R. Howlett 2023-09-21 4673 if (mas->last >= max)
a8091f039c1ebf Liam R. Howlett 2023-09-21 4674 goto overflow;
a8091f039c1ebf Liam R. Howlett 2023-09-21 4675
a8091f039c1ebf Liam R. Howlett 2023-09-21 4676 mas->index = mas->last + 1;
a8091f039c1ebf Liam R. Howlett 2023-09-21 4677 /* Node cannot end on NULL, so it's safe to short-cut here */
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4678 goto again;
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4679 }
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4680
fff4a58cc00b3b Liam R. Howlett 2023-05-18 4681 return entry;
a8091f039c1ebf Liam R. Howlett 2023-09-21 4682
a8091f039c1ebf Liam R. Howlett 2023-09-21 4683 overflow:
a8091f039c1ebf Liam R. Howlett 2023-09-21 4684 if (set_overflow)
a8091f039c1ebf Liam R. Howlett 2023-09-21 4685 mas->node = MAS_OVERFLOW;
a8091f039c1ebf Liam R. Howlett 2023-09-21 4686 return NULL;
54a611b605901c Liam R. Howlett 2022-09-06 4687 }
54a611b605901c Liam R. Howlett 2022-09-06 4688
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2023-10-13 5:35 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 5:34 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-10-03 11:54 lib/maple_tree.c:4653 mas_next_slot() warn: ignoring unreachable code kernel test robot
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=202310131304.A7t0sbJr-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@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.