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 <l...@intel.com>

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

Reply via email to