Message ID | 20200513034705.172983-4-aneesh.kumar@linux.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2,1/5] powerpc/pmem: Add new instructions for persistent storage and sync | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (78263190ec9727216ca715bfc0ee8b58b657d1ea) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 16 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
Hi "Aneesh, I love your patch! Yet something to improve: [auto build test ERROR on powerpc/next] [also build test ERROR on linux-nvdimm/libnvdimm-for-next v5.7-rc5 next-20200512] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Aneesh-Kumar-K-V/powerpc-pmem-Add-new-instructions-for-persistent-storage-and-sync/20200513-133938 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-storcenter_defconfig (attached as .config) compiler: powerpc-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): WARNING: unmet direct dependencies detected for PPC_INDIRECT_PCI Depends on PCI Selected by - MPC10X_BRIDGE In file included from include/linux/highmem.h:12, from include/linux/pagemap.h:11, from include/linux/blkdev.h:16, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/linux/memcontrol.h:22, from include/linux/swap.h:9, from include/linux/suspend.h:5, from arch/powerpc/kernel/asm-offsets.c:23: arch/powerpc/include/asm/cacheflush.h: In function 'arch_pmem_flush_barrier': >> arch/powerpc/include/asm/cacheflush.h:126:22: error: 'CPU_FTR_ARCH_31' undeclared (first use in this function); did you mean 126 | if (cpu_has_feature(CPU_FTR_ARCH_31)) | ^~~~~~~~~~~~~~~ | CPU_FTR_ARCH_300 arch/powerpc/include/asm/cacheflush.h:126:22: note: each undeclared identifier is reported only once for each function it appears in Makefile arch block certs crypto drivers fs include init ipc kernel lib mm net scripts security sound source usr virt [scripts/Makefile.build:100: arch/powerpc/kernel/asm-offsets.s] Error 1 Target '__build' not remade because of errors. Makefile arch block certs crypto drivers fs include init ipc kernel lib mm net scripts security sound source usr virt [Makefile:1141: prepare0] Error 2 Target 'prepare' not remade because of errors. make: Makefile arch block certs crypto drivers fs include init ipc kernel lib mm net scripts security sound source usr virt [Makefile:180: sub-make] Error 2 vim +/CPU_FTR_ARCH_31 +126 arch/powerpc/include/asm/cacheflush.h 113 114 #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ 115 do { \ 116 memcpy(dst, src, len); \ 117 flush_icache_user_range(vma, page, vaddr, len); \ 118 } while (0) 119 #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ 120 memcpy(dst, src, len) 121 122 123 #define arch_pmem_flush_barrier arch_pmem_flush_barrier 124 static inline void arch_pmem_flush_barrier(void) 125 { > 126 if (cpu_has_feature(CPU_FTR_ARCH_31)) 127 asm volatile(PPC_PHWSYNC ::: "memory"); 128 else 129 asm volatile("hwsync" ::: "memory"); 130 } 131 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/arch/powerpc/include/asm/cacheflush.h b/arch/powerpc/include/asm/cacheflush.h index e92191b390f3..f22057dc9dd0 100644 --- a/arch/powerpc/include/asm/cacheflush.h +++ b/arch/powerpc/include/asm/cacheflush.h @@ -119,6 +119,16 @@ static inline void invalidate_dcache_range(unsigned long start, #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ memcpy(dst, src, len) + +#define arch_pmem_flush_barrier arch_pmem_flush_barrier +static inline void arch_pmem_flush_barrier(void) +{ + if (cpu_has_feature(CPU_FTR_ARCH_31)) + asm volatile(PPC_PHWSYNC ::: "memory"); + else + asm volatile("hwsync" ::: "memory"); +} + #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_CACHEFLUSH_H */
of_pmem on POWER10 can now use phwsync instead of hwsync to ensure all previous writes are architecturally visible for the platform buffer flush. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> --- arch/powerpc/include/asm/cacheflush.h | 10 ++++++++++ 1 file changed, 10 insertions(+)