Hi Arnd, thank you for testing my code. On 28/02/2019 11:40, Arnd Bergmann wrote: > On Fri, Feb 22, 2019 at 1:25 PM Vincenzo Frascino > <vincenzo.frascino@xxxxxxx> wrote: >> >> vDSO (virtual dynamic shared object) is a mechanism that the Linux >> kernel provides as an alternative to system calls to reduce where >> possible the costs in terms of cycles. >> This is possible because certain syscalls like gettimeofday() do >> not write any data and return one or more values that are stored >> in the kernel, which makes relatively safe calling them directly >> as a library function. > > I tried applying the series on top of v5.0-rc7, and got a set of > build warnings with arm64 defconfig: > > In file included from /git/arm-soc/arch/arm64/include/asm/thread_info.h:30:0, > from /git/arm-soc/include/linux/thread_info.h:38, > from /git/arm-soc/arch/arm64/include/asm/preempt.h:5, > from /git/arm-soc/include/linux/preempt.h:78, > from /git/arm-soc/include/linux/spinlock.h:51, > from /git/arm-soc/include/linux/seqlock.h:36, > from /git/arm-soc/include/linux/time.h:6, > from /git/arm-soc/lib/vdso/gettimeofday.c:7, > from <command-line>:0: > /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘kaslr_offset’: > /git/arm-soc/arch/arm64/include/asm/memory.h:191:2: warning: left > shift count >= width of type [enabled by default] > return kimage_vaddr - KIMAGE_VADDR; > ^ > /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘virt_to_phys’: > /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left > shift count >= width of type [enabled by default] > return __virt_to_phys((unsigned long)(x)); > ^ > /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left > shift count >= width of type [enabled by default] > /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘phys_to_virt’: > /git/arm-soc/arch/arm64/include/asm/memory.h:289:2: warning: left > shift count >= width of type [enabled by default] > return (void *)(__phys_to_virt(x)); > ^ > In file included from /git/arm-soc/arch/arm64/include/asm/pgtable-hwdef.h:19:0, > from /git/arm-soc/arch/arm64/include/asm/processor.h:46, > from /git/arm-soc/arch/arm64/include/asm/elf.h:129, > from /git/arm-soc/include/linux/elf.h:5, > from /git/arm-soc/include/linux/elfnote.h:62, > from /git/arm-soc/arch/arm64/kernel/vdso32/note.c:11: > /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘kaslr_offset’: > /git/arm-soc/arch/arm64/include/asm/memory.h:191:2: warning: left > shift count >= width of type [enabled by default] > return kimage_vaddr - KIMAGE_VADDR; > ^ > /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘virt_to_phys’: > /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left > shift count >= width of type [enabled by default] > return __virt_to_phys((unsigned long)(x)); > ^ > /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left > shift count >= width of type [enabled by default] > /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘phys_to_virt’: > /git/arm-soc/arch/arm64/include/asm/memory.h:289:2: warning: left > shift count >= width of type [enabled by default] > return (void *)(__phys_to_virt(x)); > ^ > > I think this is all harmless, but we need to limit the set of header files > that can be included indirectly when compiling the vdso in arm32 mode. > I agree with you on the principle, but I am unable to replicate the warnings. Did you make any customization to the default defconfig? What is the top commit-id you have on your tree? > Arnd > -- Regards, Vincenzo