Arnd Bergmann <a...@kernel.org> writes: > From: Arnd Bergmann <a...@arndb.de> > > Both the vdso rework and the CONFIG_PAGE_SHIFT changes were merged during > the v6.9 merge window, so it is now possible to use CONFIG_PAGE_SHIFT > instead of including asm/page.h in the vdso. > > This avoids the workaround for arm64 and addresses a build warning > for powerpc64: > > In file included from <built-in>:4: > In file included from /home/arnd/arm-soc/arm-soc/lib/vdso/gettimeofday.c:5: > In file included from ../include/vdso/datapage.h:25: > arch/powerpc/include/asm/page.h:230:9: error: result of comparison of > constant 13835058055282163712 with expression of type 'unsigned long' is > always true [-Werror,-Wtautological-constant-out-of-range-compare] > 230 | return __pa(kaddr) >> PAGE_SHIFT; > | ^~~~~~~~~~~ > arch/powerpc/include/asm/page.h:217:37: note: expanded from macro '__pa' > 217 | VIRTUAL_WARN_ON((unsigned long)(x) < PAGE_OFFSET); > \ > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ > arch/powerpc/include/asm/page.h:202:73: note: expanded from macro > 'VIRTUAL_WARN_ON' > 202 | #define VIRTUAL_WARN_ON(x) > WARN_ON(IS_ENABLED(CONFIG_DEBUG_VIRTUAL) && (x)) > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ > arch/powerpc/include/asm/bug.h:88:25: note: expanded from macro 'WARN_ON' > 88 | int __ret_warn_on = !!(x); \ > | ^ > > Cc: Michael Ellerman <m...@ellerman.id.au> > Cc: linuxppc-dev@lists.ozlabs.org > Cc: Andy Lutomirski <l...@kernel.org> > Cc: Thomas Gleixner <t...@linutronix.de> > Cc: Vincenzo Frascino <vincenzo.frasc...@arm.com> > Cc: Anna-Maria Behnsen <anna-ma...@linutronix.de> > See-also: 8b3843ae3634 ("vdso/datapage: Quick fix - use asm/page-def.h for > ARM64") > Signed-off-by: Arnd Bergmann <a...@arndb.de> > --- > arch/powerpc/include/asm/vdso/gettimeofday.h | 3 +-- > include/vdso/datapage.h | 8 +------- > 2 files changed, 2 insertions(+), 9 deletions(-)
Acked-by: Michael Ellerman <m...@ellerman.id.au> (powerpc) cheers > diff --git a/arch/powerpc/include/asm/vdso/gettimeofday.h > b/arch/powerpc/include/asm/vdso/gettimeofday.h > index f0a4cf01e85c..78302f6c2580 100644 > --- a/arch/powerpc/include/asm/vdso/gettimeofday.h > +++ b/arch/powerpc/include/asm/vdso/gettimeofday.h > @@ -4,7 +4,6 @@ > > #ifndef __ASSEMBLY__ > > -#include <asm/page.h> > #include <asm/vdso/timebase.h> > #include <asm/barrier.h> > #include <asm/unistd.h> > @@ -95,7 +94,7 @@ const struct vdso_data *__arch_get_vdso_data(void); > static __always_inline > const struct vdso_data *__arch_get_timens_vdso_data(const struct vdso_data > *vd) > { > - return (void *)vd + PAGE_SIZE; > + return (void *)vd + (1U << CONFIG_PAGE_SHIFT); > } > #endif > > diff --git a/include/vdso/datapage.h b/include/vdso/datapage.h > index 5d5c0b8efff2..c71ddb6d4691 100644 > --- a/include/vdso/datapage.h > +++ b/include/vdso/datapage.h > @@ -19,12 +19,6 @@ > #include <vdso/time32.h> > #include <vdso/time64.h> > > -#ifdef CONFIG_ARM64 > -#include <asm/page-def.h> > -#else > -#include <asm/page.h> > -#endif > - > #ifdef CONFIG_ARCH_HAS_VDSO_DATA > #include <asm/vdso/data.h> > #else > @@ -132,7 +126,7 @@ extern struct vdso_data _timens_data[CS_BASES] > __attribute__((visibility("hidden > */ > union vdso_data_store { > struct vdso_data data[CS_BASES]; > - u8 page[PAGE_SIZE]; > + u8 page[1U << CONFIG_PAGE_SHIFT]; > }; > > /* > -- > 2.39.2