lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202501072245.XEsNqAlW-lkp@intel.com>
Date: Tue, 7 Jan 2025 22:10:15 +0800
From: kernel test robot <lkp@...el.com>
To: Huang Ying <ying.huang@...el.com>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	linux-kernel@...r.kernel.org,
	Andrew Morton <akpm@...ux-foundation.org>,
	Linux Memory Management List <linux-mm@...ck.org>
Subject: kernel/resource.c:1838:43: warning: implicit conversion from
 'unsigned long long' to 'resource_size_t' (aka 'unsigned int') changes value
 from 68719476735 to 4294967295

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fbfd64d25c7af3b8695201ebc85efe90be28c5a3
commit: 99185c10d5d9214d0d0c8b7866660203e344ee3b resource, kunit: add test case for region_intersects()
date:   4 months ago
config: arm-randconfig-001-20241228 (https://download.01.org/0day-ci/archive/20250107/202501072245.XEsNqAlW-lkp@intel.com/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/20250107/202501072245.XEsNqAlW-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501072245.XEsNqAlW-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> kernel/resource.c:1838:43: warning: implicit conversion from 'unsigned long long' to 'resource_size_t' (aka 'unsigned int') changes value from 68719476735 to 4294967295 [-Wconstant-conversion]
                   end = min_t(resource_size_t, base->end, MAX_PHYS_ADDR);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
   kernel/resource.c:1827:52: note: expanded from macro 'MAX_PHYS_ADDR'
   #define MAX_PHYS_ADDR           ((1ULL << MAX_PHYSMEM_BITS) - 1)
                                                               ^
   include/linux/minmax.h:213:52: note: expanded from macro 'min_t'
   #define min_t(type, x, y) __cmp_once(min, type, x, y)
                             ~~~~~~~~~~~~~~~~~~~~~~~~~^~
   include/linux/minmax.h:96:33: note: expanded from macro '__cmp_once'
           __cmp_once_unique(op, type, x, y, __UNIQUE_ID(x_), __UNIQUE_ID(y_))
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:93:31: note: expanded from macro '__cmp_once_unique'
           ({ type ux = (x); type uy = (y); __cmp(op, ux, uy); })
                                  ~~    ^
   kernel/resource.c:1855:45: warning: implicit conversion from 'unsigned long long' to 'resource_size_t' (aka 'unsigned int') changes value from 68719476735 to 4294967295 [-Wconstant-conversion]
                   addr <= min_t(resource_size_t, base->end, MAX_PHYS_ADDR);
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
   kernel/resource.c:1827:52: note: expanded from macro 'MAX_PHYS_ADDR'
   #define MAX_PHYS_ADDR           ((1ULL << MAX_PHYSMEM_BITS) - 1)
                                                               ^
   include/linux/minmax.h:213:52: note: expanded from macro 'min_t'
   #define min_t(type, x, y) __cmp_once(min, type, x, y)
                             ~~~~~~~~~~~~~~~~~~~~~~~~~^~
   include/linux/minmax.h:96:33: note: expanded from macro '__cmp_once'
           __cmp_once_unique(op, type, x, y, __UNIQUE_ID(x_), __UNIQUE_ID(y_))
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:93:31: note: expanded from macro '__cmp_once_unique'
           ({ type ux = (x); type uy = (y); __cmp(op, ux, uy); })
                                  ~~    ^
   2 warnings generated.


vim +1838 kernel/resource.c

  1831	
  1832	static resource_size_t gfr_start(struct resource *base, resource_size_t size,
  1833					 resource_size_t align, unsigned long flags)
  1834	{
  1835		if (flags & GFR_DESCENDING) {
  1836			resource_size_t end;
  1837	
> 1838			end = min_t(resource_size_t, base->end, MAX_PHYS_ADDR);
  1839			return end - size + 1;
  1840		}
  1841	
  1842		return ALIGN(max(base->start, align), align);
  1843	}
  1844	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ