Re: [PATCH 2/2] arm64: Define PAGE_OFFSET using GENMASK_ULL

From: kbuild test robot
Date: Thu Aug 03 2017 - 22:27:09 EST


Hi Matthias,

[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on v4.13-rc3 next-20170803]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Matthias-Kaehlcke/bitops-Avoid-integer-overflow-warning-in-GENMASK_ULL/20170803-230211
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64

All error/warnings (new ones prefixed by >>):

In file included from arch/arm64/include/asm/pgtable.h:22:0,
from arch/arm64/include/asm/kernel-pgtable.h:22,
from arch/arm64/kernel/head.S:34:
>> arch/arm64/include/asm/memory.h:68:33: error: missing binary operator before token "("
#define PAGE_OFFSET GENMASK_ULL(BITS_PER_LONG_LONG - 1, VA_BITS - 1)
^
>> arch/arm64/kernel/head.S:51:8: note: in expansion of macro 'PAGE_OFFSET'
#elif (PAGE_OFFSET & 0x1fffff) != 0
^~~~~~~~~~~
--
In file included from include/linux/printk.h:6:0,
from include/linux/kernel.h:13,
from arch/arm64/mm/init.c:20:
arch/arm64/mm/init.c: In function 'mem_init':
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
>> arch/arm64/mm/init.c:614:2: note: in expansion of macro 'pr_notice'
pr_notice(" vmalloc : 0x%16lx - 0x%16lx (%6ld GB)\n",
^~~~~~~~~
>> include/linux/kern_levels.h:4:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
>> arch/arm64/mm/init.c:614:2: note: in expansion of macro 'pr_notice'
pr_notice(" vmalloc : 0x%16lx - 0x%16lx (%6ld GB)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:626:2: note: in expansion of macro 'pr_notice'
pr_notice(" fixed : 0x%16lx - 0x%16lx (%6ld KB)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:626:2: note: in expansion of macro 'pr_notice'
pr_notice(" fixed : 0x%16lx - 0x%16lx (%6ld KB)\n",
^~~~~~~~~
>> include/linux/kern_levels.h:4:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:626:2: note: in expansion of macro 'pr_notice'
pr_notice(" fixed : 0x%16lx - 0x%16lx (%6ld KB)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:628:2: note: in expansion of macro 'pr_notice'
pr_notice(" PCI I/O : 0x%16lx - 0x%16lx (%6ld MB)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:628:2: note: in expansion of macro 'pr_notice'
pr_notice(" PCI I/O : 0x%16lx - 0x%16lx (%6ld MB)\n",
^~~~~~~~~
>> include/linux/kern_levels.h:4:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:628:2: note: in expansion of macro 'pr_notice'
pr_notice(" PCI I/O : 0x%16lx - 0x%16lx (%6ld MB)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:631:2: note: in expansion of macro 'pr_notice'
pr_notice(" vmemmap : 0x%16lx - 0x%16lx (%6ld GB maximum)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:631:2: note: in expansion of macro 'pr_notice'
pr_notice(" vmemmap : 0x%16lx - 0x%16lx (%6ld GB maximum)\n",
^~~~~~~~~
>> include/linux/kern_levels.h:4:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:631:2: note: in expansion of macro 'pr_notice'
pr_notice(" vmemmap : 0x%16lx - 0x%16lx (%6ld GB maximum)\n",
^~~~~~~~~
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:637:2: note: in expansion of macro 'pr_notice'
pr_notice(" memory : 0x%16lx - 0x%16lx (%6ld MB)\n",
^~~~~~~~~
>> include/linux/kern_levels.h:4:18: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:12:21: note: in expansion of macro 'KERN_SOH'
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
^~~~~~~~
>> include/linux/printk.h:306:9: note: in expansion of macro 'KERN_NOTICE'
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
arch/arm64/mm/init.c:637:2: note: in expansion of macro 'pr_notice'
pr_notice(" memory : 0x%16lx - 0x%16lx (%6ld MB)\n",
^~~~~~~~~
--
In file included from include/linux/printk.h:6:0,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:15,
from arch/arm64/include/asm/bug.h:66,
from include/linux/bug.h:4,
from include/linux/mmdebug.h:4,
from include/linux/mm.h:8,
from include/linux/mman.h:4,
from arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:19:
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c: In function 'kvm_mmu_init':
include/linux/kern_levels.h:4:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'long long unsigned int' [-Wformat=]
#define KERN_SOH "\001" /* ASCII Start Of Header */
^
include/linux/kern_levels.h:13:19: note: in expansion of macro 'KERN_SOH'
#define KERN_INFO KERN_SOH "6" /* informational */
^~~~~~~~
include/linux/printk.h:308:9: note: in expansion of macro 'KERN_INFO'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~
>> include/linux/kvm_host.h:446:2: note: in expansion of macro 'pr_info'
pr_info("kvm [%i]: " fmt, task_pid_nr(current), ## __VA_ARGS__)
^~~~~~~
>> arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1754:2: note: in expansion of macro 'kvm_info'
kvm_info("HYP VA range: %lx:%lx\n",
^~~~~~~~

vim +68 arch/arm64/include/asm/memory.h

56
57 /*
58 * PAGE_OFFSET - the virtual address of the start of the linear map (top
59 * (VA_BITS - 1))
60 * KIMAGE_VADDR - the virtual address of the start of the kernel image
61 * VA_BITS - the maximum number of bits for virtual addresses.
62 * VA_START - the first kernel virtual address.
63 * TASK_SIZE - the maximum size of a user space task.
64 * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area.
65 */
66 #define VA_BITS (CONFIG_ARM64_VA_BITS)
67 #define VA_START (UL(0xffffffffffffffff) << VA_BITS)
> 68 #define PAGE_OFFSET GENMASK_ULL(BITS_PER_LONG_LONG - 1, VA_BITS - 1)
69 #define KIMAGE_VADDR (MODULES_END)
70 #define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
71 #define MODULES_VADDR (VA_START + KASAN_SHADOW_SIZE)
72 #define MODULES_VSIZE (SZ_128M)
73 #define VMEMMAP_START (PAGE_OFFSET - VMEMMAP_SIZE)
74 #define PCI_IO_END (VMEMMAP_START - SZ_2M)
75 #define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE)
76 #define FIXADDR_TOP (PCI_IO_START - SZ_2M)
77 #define TASK_SIZE_64 (UL(1) << VA_BITS)
78

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

Attachment: .config.gz
Description: application/gzip