Re: [PATCH v4] memory_hotplug: Add a bounds check to __add_pages

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

 



Hi Alastair,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3 next-20190925]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Alastair-D-Silva/memory_hotplug-Add-a-bounds-check-to-__add_pages/20190926-094437
config: i386-randconfig-g004-201938 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

   mm/memory_hotplug.c: In function 'check_hotplug_memory_addressable':
>> mm/memory_hotplug.c:286:15: warning: right shift count >= width of type [-Wshift-count-overflow]
     if (max_addr >> MAX_PHYSMEM_BITS) {
                  ^~
   In file included from arch/x86/include/asm/bug.h:83:0,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/mm.h:9,
                    from mm/memory_hotplug.c:9:
>> mm/memory_hotplug.c:290:13: warning: left shift count >= width of type [-Wshift-count-overflow]
           (1ul << (MAX_PHYSMEM_BITS + 1)) - 1);
                ^
   include/asm-generic/bug.h:112:21: note: in definition of macro '__WARN_printf_taint'
     do { __warn_printk(arg); __WARN_TAINT(taint); } while (0)
                        ^~~
   include/asm-generic/bug.h:135:3: note: in expansion of macro '__WARN_printf'
      __WARN_printf(format);     \
      ^~~~~~~~~~~~~
>> mm/memory_hotplug.c:287:3: note: in expansion of macro 'WARN'
      WARN(1,
      ^~~~

vim +286 mm/memory_hotplug.c

   280	
   281	static int check_hotplug_memory_addressable(unsigned long pfn,
   282						    unsigned long nr_pages)
   283	{
   284		unsigned long max_addr = ((pfn + nr_pages) << PAGE_SHIFT) - 1;
   285	
 > 286		if (max_addr >> MAX_PHYSMEM_BITS) {
 > 287			WARN(1,
   288			     "Hotplugged memory exceeds maximum addressable address, range=%#lx-%#lx, maximum=%#lx\n",
   289			     pfn << PAGE_SHIFT, max_addr,
 > 290			     (1ul << (MAX_PHYSMEM_BITS + 1)) - 1);
   291			return -E2BIG;
   292		}
   293	
   294		return 0;
   295	}
   296	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[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