RE: [linux-next:master 1948/2656] block/blk-iocost.c:1101:11: error: call to __compiletime_assert_560 declared with 'error' attribute: clamp() low limit 1 greater than high limit active

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: kernel test robot
> Sent: 11 December 2024 19:35
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   91e71d606356e50f238d7a87aacdee4abc427f07
> commit: 212fe932ee57ec4a0f41bdc42b58c64fe3062147 [1948/2656] minmax.h: simplify the variants of
> clamp()
> config: s390-defconfig (https://download.01.org/0day-ci/archive/20241212/202412120322.3GfVe3vF-
> lkp@xxxxxxxxx/config)
> compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project
> 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
> reproduce (this is a W=1 build): (https://download.01.org/0day-
> ci/archive/20241212/202412120322.3GfVe3vF-lkp@xxxxxxxxx/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@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202412120322.3GfVe3vF-lkp@xxxxxxxxx/
> 
...
> b0853ab4a238c54 Tejun Heo   2020-09-01  1084  static void __propagate_weights(struct ioc_gq *iocg, u32
> active, u32 inuse,
> b0853ab4a238c54 Tejun Heo   2020-09-01  1085  				bool save, struct ioc_now *now)
> 7caa47151ab2e64 Tejun Heo   2019-08-28  1086  {
> 7caa47151ab2e64 Tejun Heo   2019-08-28  1087  	struct ioc *ioc = iocg->ioc;
> 7caa47151ab2e64 Tejun Heo   2019-08-28  1088  	int lvl;
> 7caa47151ab2e64 Tejun Heo   2019-08-28  1089
> 7caa47151ab2e64 Tejun Heo   2019-08-28  1090  	lockdep_assert_held(&ioc->lock);
> 7caa47151ab2e64 Tejun Heo   2019-08-28  1091
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1092  	/*
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1093  	 * For an active leaf node, its inuse shouldn't be
> zero or exceed
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1094  	 * @active. An active internal node's inuse is solely
> determined by the
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1095  	 * inuse to active ratio of its children regardless of
> @inuse.
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1096  	 */
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1097  	if (list_empty(&iocg->active_list) && iocg-
> >child_active_sum) {
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1098  		inuse = DIV64_U64_ROUND_UP(active * iocg-
> >child_inuse_sum,
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1099  					   iocg->child_active_sum);
> e9f4eee9a0023ba Tejun Heo   2021-05-11  1100  	} else {
> db84a72af6be422 Tejun Heo   2020-09-01 @1101  		inuse = clamp_t(u32, inuse, 1, active);
...

Duplicate - there is an inlined call that passes 'active = 0'.
IIRC the clamp() is there to avoid a divide by zero later.
The code is buggy and I think there is a fix pending.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux