arch/arm/kernel/hibernate.c:29:40: warning: array subscript -1 is outside array bounds of 'const void[2147483647]'

From: kernel test robot
Date: Wed Oct 18 2023 - 08:17:46 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 06dc10eae55b5ceabfef287a7e5f16ceea204aa0
commit: a9ff6961601d9aa0c42b6eb7d850371f31b1f5e6 ARM: mm: Make virt_to_pfn() a static inline
date: 5 months ago
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20231018/202310182007.8ziiRe0j-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231018/202310182007.8ziiRe0j-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/202310182007.8ziiRe0j-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

arch/arm/kernel/hibernate.c: In function 'pfn_is_nosave':
>> arch/arm/kernel/hibernate.c:29:40: warning: array subscript -1 is outside array bounds of 'const void[2147483647]' [-Warray-bounds=]
29 | unsigned long nosave_end_pfn = virt_to_pfn(&__nosave_end - 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm/include/asm/sections.h:5,
from include/linux/interrupt.h:21,
from include/linux/kernel_stat.h:9,
from include/linux/cgroup.h:26,
from include/linux/memcontrol.h:13,
from include/linux/swap.h:9,
from include/linux/suspend.h:5,
from arch/arm/kernel/hibernate.c:18:
include/asm-generic/sections.h:59:45: note: at offset -1 into object '__nosave_end' of size [0, 2147483647]
59 | extern __visible const void __nosave_begin, __nosave_end;
| ^~~~~~~~~~~~


vim +29 arch/arm/kernel/hibernate.c

603fb42a66499a Sebastian Capella 2014-03-25 25
603fb42a66499a Sebastian Capella 2014-03-25 26 int pfn_is_nosave(unsigned long pfn)
603fb42a66499a Sebastian Capella 2014-03-25 27 {
603fb42a66499a Sebastian Capella 2014-03-25 28 unsigned long nosave_begin_pfn = virt_to_pfn(&__nosave_begin);
603fb42a66499a Sebastian Capella 2014-03-25 @29 unsigned long nosave_end_pfn = virt_to_pfn(&__nosave_end - 1);
603fb42a66499a Sebastian Capella 2014-03-25 30
603fb42a66499a Sebastian Capella 2014-03-25 31 return (pfn >= nosave_begin_pfn) && (pfn <= nosave_end_pfn);
603fb42a66499a Sebastian Capella 2014-03-25 32 }
603fb42a66499a Sebastian Capella 2014-03-25 33

:::::: The code at line 29 was first introduced by commit
:::::: 603fb42a66499ab353466c7afa3d38beea20a8a9 ARM: 8011/1: ARM hibernation / suspend-to-disk

:::::: TO: Sebastian Capella <sebastian.capella@xxxxxxxxxx>
:::::: CC: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>

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