Message ID | 0e779b35cf66fd4aa5ec0ec09fb7820f6c518cb3.1557824379.git.christophe.leroy@c-s.fr (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/4] powerpc/64: flush_inval_dcache_range() becomesflush_dcache_range() | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch next (8150a153c013aa2dd1ffae43370b89ac1347a7fb) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 15 lines checked |
Christophe Leroy <christophe.leroy@c-s.fr> writes: > PPC32 also have flush_dcache_range() so it can also support > ARCH_HAS_PMEM_API and ARCH_HAS_UACCESS_FLUSHCACHE without changes. > > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> > --- > arch/powerpc/Kconfig | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index d7996cfaceca..cf6e30f637be 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -127,13 +127,13 @@ config PPC > select ARCH_HAS_KCOV > select ARCH_HAS_MMIOWB if PPC64 > select ARCH_HAS_PHYS_TO_DMA > - select ARCH_HAS_PMEM_API if PPC64 > + select ARCH_HAS_PMEM_API > select ARCH_HAS_PTE_SPECIAL > select ARCH_HAS_MEMBARRIER_CALLBACKS > select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64 > select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION) > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > - select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64 > + select ARCH_HAS_UACCESS_FLUSHCACHE > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_ZONE_DEVICE if PPC_BOOK3S_64 > select ARCH_HAVE_NMI_SAFE_CMPXCHG This didn't build for me, probably due to something that's changed in the long period between you posting it and me applying it? corenet32_smp_defconfig: powerpc64-unknown-linux-gnu-ld: lib/iov_iter.o: in function `_copy_from_iter_flushcache': powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `memcpy_page_flushcache' powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `memcpy_flushcache' powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `__copy_from_user_flushcache' powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `memcpy_flushcache' cheers
On Mon, Jul 15, 2019 at 4:49 PM Michael Ellerman <mpe@ellerman.id.au> wrote: > > Christophe Leroy <christophe.leroy@c-s.fr> writes: > > PPC32 also have flush_dcache_range() so it can also support > > ARCH_HAS_PMEM_API and ARCH_HAS_UACCESS_FLUSHCACHE without changes. > > > > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> > > --- > > arch/powerpc/Kconfig | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > > index d7996cfaceca..cf6e30f637be 100644 > > --- a/arch/powerpc/Kconfig > > +++ b/arch/powerpc/Kconfig > > @@ -127,13 +127,13 @@ config PPC > > select ARCH_HAS_KCOV > > select ARCH_HAS_MMIOWB if PPC64 > > select ARCH_HAS_PHYS_TO_DMA > > - select ARCH_HAS_PMEM_API if PPC64 > > + select ARCH_HAS_PMEM_API > > select ARCH_HAS_PTE_SPECIAL > > select ARCH_HAS_MEMBARRIER_CALLBACKS > > select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64 > > select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION) > > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > > - select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64 > > + select ARCH_HAS_UACCESS_FLUSHCACHE > > select ARCH_HAS_UBSAN_SANITIZE_ALL > > select ARCH_HAS_ZONE_DEVICE if PPC_BOOK3S_64 > > select ARCH_HAVE_NMI_SAFE_CMPXCHG > > This didn't build for me, probably due to something that's changed in > the long period between you posting it and me applying it? > > corenet32_smp_defconfig: > > powerpc64-unknown-linux-gnu-ld: lib/iov_iter.o: in function `_copy_from_iter_flushcache': > powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `memcpy_page_flushcache' > powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `memcpy_flushcache' > powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `__copy_from_user_flushcache' > powerpc64-unknown-linux-gnu-ld: /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined reference to `memcpy_flushcache' I think lib/pmem.c just needs to be moved out of obj64-y. > > cheers
Michael Ellerman <mpe@ellerman.id.au> a écrit : > Christophe Leroy <christophe.leroy@c-s.fr> writes: >> PPC32 also have flush_dcache_range() so it can also support >> ARCH_HAS_PMEM_API and ARCH_HAS_UACCESS_FLUSHCACHE without changes. >> >> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> >> --- >> arch/powerpc/Kconfig | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig >> index d7996cfaceca..cf6e30f637be 100644 >> --- a/arch/powerpc/Kconfig >> +++ b/arch/powerpc/Kconfig >> @@ -127,13 +127,13 @@ config PPC >> select ARCH_HAS_KCOV >> select ARCH_HAS_MMIOWB if PPC64 >> select ARCH_HAS_PHYS_TO_DMA >> - select ARCH_HAS_PMEM_API if PPC64 >> + select ARCH_HAS_PMEM_API >> select ARCH_HAS_PTE_SPECIAL >> select ARCH_HAS_MEMBARRIER_CALLBACKS >> select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64 >> select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && >> !RELOCATABLE && !HIBERNATION) >> select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST >> - select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64 >> + select ARCH_HAS_UACCESS_FLUSHCACHE >> select ARCH_HAS_UBSAN_SANITIZE_ALL >> select ARCH_HAS_ZONE_DEVICE if PPC_BOOK3S_64 >> select ARCH_HAVE_NMI_SAFE_CMPXCHG > > This didn't build for me, probably due to something that's changed in > the long period between you posting it and me applying it? > > corenet32_smp_defconfig: > > powerpc64-unknown-linux-gnu-ld: lib/iov_iter.o: in function > `_copy_from_iter_flushcache': > powerpc64-unknown-linux-gnu-ld: > /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined > reference to `memcpy_page_flushcache' > powerpc64-unknown-linux-gnu-ld: > /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined > reference to `memcpy_flushcache' > powerpc64-unknown-linux-gnu-ld: > /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined > reference to `__copy_from_user_flushcache' > powerpc64-unknown-linux-gnu-ld: > /scratch/michael/build/maint/build~/../lib/iov_iter.c:825: undefined > reference to `memcpy_flushcache' > Looks like arch/powerpc/lib/Makefile only builds pmem.o for ppc64 Moving it from obj64-y to obj-y should do it. I'll update the patch when I'm back in two weeks unless you can fix it before. Christophe
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index d7996cfaceca..cf6e30f637be 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -127,13 +127,13 @@ config PPC select ARCH_HAS_KCOV select ARCH_HAS_MMIOWB if PPC64 select ARCH_HAS_PHYS_TO_DMA - select ARCH_HAS_PMEM_API if PPC64 + select ARCH_HAS_PMEM_API select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_MEMBARRIER_CALLBACKS select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64 select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION) select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST - select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64 + select ARCH_HAS_UACCESS_FLUSHCACHE select ARCH_HAS_UBSAN_SANITIZE_ALL select ARCH_HAS_ZONE_DEVICE if PPC_BOOK3S_64 select ARCH_HAVE_NMI_SAFE_CMPXCHG
PPC32 also have flush_dcache_range() so it can also support ARCH_HAS_PMEM_API and ARCH_HAS_UACCESS_FLUSHCACHE without changes. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> --- arch/powerpc/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)