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

             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.