All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Liam R. Howlett" <liam@infradead.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [liam:maple_marks_v7.2 27/31] lib/maple_tree.c:2586:38: warning: result of comparison of constant 94416707145727 with expression of type 'unsigned long' is always false
Date: Sat, 27 Jun 2026 04:16:26 +0800	[thread overview]
Message-ID: <202606270428.Q97lALXU-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/liam/linux.git maple_marks_v7.2
head:   be119ad50e9c87a4a975871d84614f7c6aeaf0de
commit: 6660fa9424f74b0ad010d43c448244824351754d [27/31] maple_tree: Remove requirement for NULLs to never be at end of a node
config: arm-allnoconfig (https://download.01.org/0day-ci/archive/20260627/202606270428.Q97lALXU-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260627/202606270428.Q97lALXU-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/202606270428.Q97lALXU-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> lib/maple_tree.c:2586:38: warning: result of comparison of constant 94416707145727 with expression of type 'unsigned long' is always false [-Wtautological-constant-out-of-range-compare]
    2586 |         if (unlikely(total == 29 && cp->max == 0x55df1a4a4fffUL))
         |                                     ~~~~~~~ ^  ~~~~~~~~~~~~~~~~
   include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   lib/maple_tree.c:2596:39: warning: result of comparison of constant 94416707145727 with expression of type 'unsigned long' is always false [-Wtautological-constant-out-of-range-compare]
    2596 |                 if (unlikely(total == 29 && cp->max == 0x55df1a4a4fffUL))
         |                                             ~~~~~~~ ^  ~~~~~~~~~~~~~~~~
   include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   lib/maple_tree.c:2624:38: warning: result of comparison of constant 94416707145727 with expression of type 'unsigned long' is always false [-Wtautological-constant-out-of-range-compare]
    2624 |         if (unlikely(total == 29 && cp->max == 0x55df1a4a4fffUL))
         |                                     ~~~~~~~ ^  ~~~~~~~~~~~~~~~~
   include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   lib/maple_tree.c:2764:41: warning: result of comparison of constant 94416707145727 with expression of type 'unsigned long' is always false [-Wtautological-constant-out-of-range-compare]
    2764 |         if (unlikely(cp->data == 29 && cp->max == 0x55df1a4a4fffUL))
         |                                        ~~~~~~~ ^  ~~~~~~~~~~~~~~~~
   include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   4 warnings generated.


vim +2586 lib/maple_tree.c

  2556	
  2557	/*
  2558	 * dst_setup() - Set up one or more destinations for the new data.
  2559	 * @cp: The maple copy node
  2560	 * @mas: The maple state
  2561	 * @mt: The source node type
  2562	 */
  2563	static inline
  2564	void dst_setup(struct maple_copy *cp, struct ma_state *mas, enum maple_type mt)
  2565	{
  2566		int capacity = mt_slots[mt];
  2567		int total;
  2568		int min_count;
  2569		int left_count;
  2570		int left_low;
  2571		int left_high;
  2572		int shift;
  2573	
  2574		/* Data is 1 indexed, every src has +1 added.  */
  2575	
  2576		if (cp->data <= capacity) {
  2577			cp->split = cp->data - 1;
  2578			cp->d_count = 1;
  2579			goto node_setup;
  2580		}
  2581	
  2582		total = cp->data;
  2583		if (total > capacity * 2)
  2584			goto split_3way;
  2585	
> 2586		if (unlikely(total == 29 && cp->max == 0x55df1a4a4fffUL))
  2587			pr_err("dst_setup pre mas=%lx-%lx data=%d write_off=%u\n",
  2588			       mas->index, mas->last, total, cp->write_off);
  2589	
  2590		cp->split = (total - 1) / 2;
  2591		cp->d_count = 2;
  2592		if (!ma_is_leaf(mt))
  2593			goto node_setup;
  2594	
  2595		if (cp->write_off < cp->split || cp->write_off > cp->split + 1) {
  2596			if (unlikely(total == 29 && cp->max == 0x55df1a4a4fffUL))
  2597				pr_err("dst_setup fast split=%u\n", cp->split);
  2598			goto node_setup;
  2599		}
  2600	
  2601		min_count = mt_min_slots[mt] + 1;
  2602		left_count = cp->split + 1;
  2603	
  2604		left_low = min_count;
  2605		if (total - capacity > left_low)
  2606			left_low = total - capacity;
  2607	
  2608		left_high = capacity;
  2609		if (total - min_count < left_high)
  2610			left_high = total - min_count;
  2611	
  2612		if (left_count < left_low)
  2613			left_count = left_low;
  2614		else if (left_count > left_high)
  2615			left_count = left_high;
  2616	
  2617		shift = left_count - left_low;
  2618		if (shift > 2)
  2619			shift = 2;
  2620	
  2621		if (shift > 0)
  2622			left_count -= shift;
  2623	
  2624		if (unlikely(total == 29 && cp->max == 0x55df1a4a4fffUL))
  2625			pr_err("dst_setup edge split=%d left_low=%d left_high=%d shift=%d\n",
  2626			       left_count - 1, left_low, left_high, shift);
  2627	
  2628		if ((left_count < min_count) || (left_count > capacity) ||
  2629		    (total - left_count < min_count) || (total - left_count > capacity))
  2630			goto split_3way;
  2631	
  2632		cp->split = left_count - 1;
  2633	
  2634		goto node_setup;
  2635	
  2636	split_3way:
  2637		/* No other choice but to 3-way split the data */
  2638		cp->split = (cp->data + 2) / 3;
  2639		cp->d_count = 3;
  2640	
  2641	node_setup:
  2642		for (int i = 0; i < cp->d_count; i++) {
  2643			cp->dst[i].mt = mt;
  2644			cp->dst[i].node = ma_mnode_ptr(mas_pop_node(mas));
  2645		}
  2646	}
  2647	

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

                 reply	other threads:[~2026-06-26 20:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202606270428.Q97lALXU-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=liam@infradead.org \
    --cc=llvm@lists.linux.dev \
    --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.