Re: [PATCH v4 5/8] powerpc/pmem/of_pmem: Update of_pmem to use the new barrier instruction.
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 scottwood/next v5.7-rc7] [cannot apply to next-20200529] [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/Support-new-pmem-flush-and-sync-instructions-for-POWER/20200531-062841 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-ppc6xx_defconfig (attached as .config) compiler: powerpc-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): 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 COMPILER=gcc-9.3.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>, old ones prefixed by <<): In file included from arch/powerpc/include/asm/asm-prototypes.h:12, from arch/powerpc/kernel/early_32.c:11: arch/powerpc/include/asm/cacheflush.h: In function 'arch_pmem_flush_barrier': arch/powerpc/include/asm/cacheflush.h:126:6: error: implicit declaration of function 'cpu_has_feature'; did you mean 'mmu_has_feature'? [-Werror=implicit-function-declaration] 126 | if (cpu_has_feature(CPU_FTR_ARCH_207S)) | ^~~ | mmu_has_feature In file included from arch/powerpc/include/asm/cputhreads.h:7, from arch/powerpc/include/asm/mmu_context.h:12, from arch/powerpc/include/asm/asm-prototypes.h:17, from arch/powerpc/kernel/early_32.c:11: arch/powerpc/include/asm/cpu_has_feature.h: At top level: >> arch/powerpc/include/asm/cpu_has_feature.h:49:20: error: conflicting types >> for 'cpu_has_feature' 49 | static inline bool cpu_has_feature(unsigned long feature) |^~~ In file included from arch/powerpc/include/asm/asm-prototypes.h:12, from arch/powerpc/kernel/early_32.c:11: arch/powerpc/include/asm/cacheflush.h:126:6: note: previous implicit declaration of 'cpu_has_feature' was here 126 | if (cpu_has_feature(CPU_FTR_ARCH_207S)) | ^~~ cc1: all warnings being treated as errors vim +/cpu_has_feature +49 arch/powerpc/include/asm/cpu_has_feature.h c812c7d8f1470a Aneesh Kumar K.V 2016-07-23 38 4db7327194dba0 Kevin Hao2016-07-23 39 if (CPU_FTRS_ALWAYS & feature) 4db7327194dba0 Kevin Hao2016-07-23 40 return true; 4db7327194dba0 Kevin Hao2016-07-23 41 4db7327194dba0 Kevin Hao2016-07-23 42 if (!(CPU_FTRS_POSSIBLE & feature)) 4db7327194dba0 Kevin Hao2016-07-23 43 return false; 4db7327194dba0 Kevin Hao2016-07-23 44 4db7327194dba0 Kevin Hao2016-07-23 45 i = __builtin_ctzl(feature); 4db7327194dba0 Kevin Hao2016-07-23 46 return static_branch_likely(_feature_keys[i]); 4db7327194dba0 Kevin Hao2016-07-23 47 } 4db7327194dba0 Kevin Hao2016-07-23 48 #else b92a226e528423 Kevin Hao2016-07-23 @49 static inline bool cpu_has_feature(unsigned long feature) b92a226e528423 Kevin Hao2016-07-23 50 { b92a226e528423 Kevin Hao2016-07-23 51 return early_cpu_has_feature(feature); b92a226e528423 Kevin Hao2016-07-23 52 } 4db7327194dba0 Kevin Hao2016-07-23 53 #endif b92a226e528423 Kevin Hao2016-07-23 54 :: The code at line 49 was first introduced by commit :: b92a226e528423b8d249dd09bb450d53361fbfcb powerpc: Move cpu_has_feature() to a separate file :: TO: Kevin Hao :: CC: Michael Ellerman --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH v3 5/7] powerpc/pmem/of_pmem: Update of_pmem to use the new barrier instruction.
Hi "Aneesh, I love your patch! Yet something to improve: [auto build test ERROR on powerpc/next] [also build test ERROR on v5.7-rc7] [cannot apply to next-20200529] [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-Restrict-papr_scm-to-P8-and-above/20200519-195350 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-randconfig-r016-20200529 (attached as .config) compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 2d068e534f1671459e1b135852c1b3c10502e929) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>, old ones prefixed by <<): In file included from arch/powerpc/kernel/syscall_64.c:4: In file included from arch/powerpc/include/asm/asm-prototypes.h:12: >> arch/powerpc/include/asm/cacheflush.h:126:6: error: implicit declaration of >> function 'cpu_has_feature' [-Werror,-Wimplicit-function-declaration] if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ arch/powerpc/include/asm/cacheflush.h:126:6: note: did you mean 'mmu_has_feature'? arch/powerpc/include/asm/mmu.h:234:20: note: 'mmu_has_feature' declared here static inline bool mmu_has_feature(unsigned long feature) ^ In file included from arch/powerpc/kernel/syscall_64.c:4: In file included from arch/powerpc/include/asm/asm-prototypes.h:17: In file included from arch/powerpc/include/asm/mmu_context.h:12: In file included from arch/powerpc/include/asm/cputhreads.h:7: >> arch/powerpc/include/asm/cpu_has_feature.h:49:20: error: static declaration >> of 'cpu_has_feature' follows non-static declaration static inline bool cpu_has_feature(unsigned long feature) ^ arch/powerpc/include/asm/cacheflush.h:126:6: note: previous implicit declaration is here if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ 2 errors generated. -- In file included from arch/powerpc/kernel/kprobes.c:23: >> arch/powerpc/include/asm/cacheflush.h:126:6: error: implicit declaration of >> function 'cpu_has_feature' [-Werror,-Wimplicit-function-declaration] if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ arch/powerpc/include/asm/cacheflush.h:126:6: note: did you mean 'mmu_has_feature'? arch/powerpc/include/asm/mmu.h:234:20: note: 'mmu_has_feature' declared here static inline bool mmu_has_feature(unsigned long feature) ^ 1 error generated. -- In file included from arch/powerpc/kernel/optprobes.c:15: >> arch/powerpc/include/asm/cacheflush.h:126:6: error: implicit declaration of >> function 'cpu_has_feature' [-Werror,-Wimplicit-function-declaration] if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ arch/powerpc/include/asm/cacheflush.h:126:6: note: did you mean 'mmu_has_feature'? arch/powerpc/include/asm/mmu.h:234:20: note: 'mmu_has_feature' declared here static inline bool mmu_has_feature(unsigned long feature) ^ arch/powerpc/kernel/optprobes.c:149:6: warning: no previous prototype for function 'patch_imm32_load_insns' [-Wmissing-prototypes] void patch_imm32_load_insns(unsigned int val, kprobe_opcode_t *addr) ^ arch/powerpc/kernel/optprobes.c:149:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void patch_imm32_load_insns(unsigned int val, kprobe_opcode_t *addr) ^ static arch/powerpc/kernel/optprobes.c:167:6: warning: no previous prototype for function 'patch_imm64_load_insns' [-Wmissing-prototypes] void patch_imm64_load_insns(unsigned long val, int reg, kprobe_opcode_t *addr) ^ arch/powerpc/kernel/optprobes.c:167:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void patch_imm64_load_insns(unsigned long val, int reg, kprobe_opcode_t *addr) ^ static 2 warnings and 1 error generated. -- In file included from arch/powerpc/kernel/epapr_paravirt.c:11: >> arch/powerpc/include/asm/cacheflush.h:126:6: error: implicit declaration of >> function 'cpu_has_feature' [-Werror,-Wimplicit-function-declaration] if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ arch/powerpc/include/asm/cacheflush.h:126:6: note: did you mean 'mmu_has_feature'? arch/powerpc/include/asm/mmu.h:234:20: note: 'mmu_has_feature' declared here static inline bool mmu_has_feature(unsigned long feature) ^ In file included from arch/powerpc/kernel/epapr_parav
Re: [PATCH v3 3/7] powerpc/pmem: Add flush routines using new pmem store and sync instruction
Hi "Aneesh, I love your patch! Yet something to improve: [auto build test ERROR on powerpc/next] [also build test ERROR on v5.7-rc7 next-20200529] [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-Restrict-papr_scm-to-P8-and-above/20200519-195350 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-randconfig-r016-20200529 (attached as .config) compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 2d068e534f1671459e1b135852c1b3c10502e929) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>, old ones prefixed by <<): >> arch/powerpc/lib/pmem.c:44:6: error: implicit declaration of function >> 'cpu_has_feature' [-Werror,-Wimplicit-function-declaration] if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ arch/powerpc/lib/pmem.c:44:6: note: did you mean 'mmu_has_feature'? arch/powerpc/include/asm/mmu.h:234:20: note: 'mmu_has_feature' declared here static inline bool mmu_has_feature(unsigned long feature) ^ arch/powerpc/lib/pmem.c:50:6: error: implicit declaration of function 'cpu_has_feature' [-Werror,-Wimplicit-function-declaration] if (cpu_has_feature(CPU_FTR_ARCH_207S)) ^ arch/powerpc/lib/pmem.c:57:6: warning: no previous prototype for function 'arch_wb_cache_pmem' [-Wmissing-prototypes] void arch_wb_cache_pmem(void *addr, size_t size) ^ arch/powerpc/lib/pmem.c:57:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void arch_wb_cache_pmem(void *addr, size_t size) ^ static arch/powerpc/lib/pmem.c:64:6: warning: no previous prototype for function 'arch_invalidate_pmem' [-Wmissing-prototypes] void arch_invalidate_pmem(void *addr, size_t size) ^ arch/powerpc/lib/pmem.c:64:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void arch_invalidate_pmem(void *addr, size_t size) ^ static 2 warnings and 2 errors generated. vim +/cpu_has_feature +44 arch/powerpc/lib/pmem.c 41 42 static inline void clean_pmem_range(unsigned long start, unsigned long stop) 43 { > 44 if (cpu_has_feature(CPU_FTR_ARCH_207S)) 45 return __clean_pmem_range(start, stop); 46 } 47 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH v2 4/5] powerpc/pmem/of_pmem: Update of_pmem to use the new barrier instruction.
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 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-...@lists.01.org ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH 5/5] dax,iomap: Add helper dax_iomap_zero() to zero a range
Hi Vivek, I love your patch! Yet something to improve: [auto build test ERROR on dm/for-next] [also build test ERROR on s390/features xfs-linux/for-next linus/master linux-nvdimm/libnvdimm-for-next v5.5 next-20200203] [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/Vivek-Goyal/dax-pmem-Provide-a-dax-operation-to-zero-range-of-memory/20200204-082750 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: s390-alldefconfig (attached as .config) compiler: s390-linux-gcc (GCC) 7.5.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 GCC_VERSION=7.5.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): >> drivers/s390/block/dcssblk.c:65:21: error: 'dcssblk_dax_zero_page_range' >> undeclared here (not in a function); did you mean >> 'generic_dax_zero_page_range'? .zero_page_range = dcssblk_dax_zero_page_range, ^~~ generic_dax_zero_page_range drivers/s390/block/dcssblk.c:945:12: warning: 'dcssblk_dax_zero_page_range' defined but not used [-Wunused-function] static int dcssblk_dax_zero_page_range(struct dax_device *dax_dev,pgoff_t pgoff, ^~~ vim +65 drivers/s390/block/dcssblk.c b3a9a0c36e1f7b Dan Williams 2018-05-02 59 7a2765f6e82063 Dan Williams 2017-01-26 60 static const struct dax_operations dcssblk_dax_ops = { 7a2765f6e82063 Dan Williams 2017-01-26 61.direct_access = dcssblk_dax_direct_access, 7bf7eac8d64805 Dan Williams 2019-05-16 62.dax_supported = generic_fsdax_supported, 5d61e43b3975c0 Dan Williams 2017-06-27 63.copy_from_iter = dcssblk_dax_copy_from_iter, b3a9a0c36e1f7b Dan Williams 2018-05-02 64.copy_to_iter = dcssblk_dax_copy_to_iter, c5cb636194a0d8 Vivek Goyal2020-02-03 @65.zero_page_range = dcssblk_dax_zero_page_range, ^1da177e4c3f41 Linus Torvalds 2005-04-16 66 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 67 :: The code at line 65 was first introduced by commit :: c5cb636194a0d8d33d549903c92189385db48406 s390,dax: Add dax zero_page_range operation to dcssblk driver :: TO: Vivek Goyal :: CC: 0day robot --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH v2 16/27] nvdimm/ocxl: Implement the Read Error Log command
Hi Alastair, Thank you for the patch! Yet something to improve: [auto build test ERROR on v5.4-rc8] [also build test ERROR on char-misc/char-misc-testing] [cannot apply to linux-nvdimm/libnvdimm-for-next linus/master next-20191205] [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/Alastair-D-Silva/Add-support-for-OpenCAPI-SCM-devices/20191203-120511 base:af42d3466bdc8f39806b26f593604fdc54140bcb config: x86_64-randconfig-b001-20191203 (attached as .config) compiler: gcc-7 (Debian 7.5.0-1) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): In file included from :32:0: >> ./usr/include/nvdimm/ocxl-scm.h:21:24: error: C++ style comments are not >> allowed in ISO C90 __u32 log_identifier; // out ^ >> ./usr/include/nvdimm/ocxl-scm.h:21:24: error: (this will be reported only >> once per input file) --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH 16/16] libnvdimm/e820: Retrieve and populate correct 'target_node' info
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on powerpc/next] [cannot apply to v5.4-rc6 next-20191108] [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/Dan-Williams/Memory-Hierarchy-Enable-target-node-lookups-for-reserved-memory/20191109-080607 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: x86_64-randconfig-d002-201944 (attached as .config) compiler: gcc-7 (Debian 7.4.0-14) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): ld: drivers/nvdimm/e820.o: in function `e820_register_one': >> drivers/nvdimm/e820.c:27: undefined reference to `numa_map_to_online_node' vim +27 drivers/nvdimm/e820.c 18 19 static int e820_register_one(struct resource *res, void *data) 20 { 21 struct nd_region_desc ndr_desc; 22 struct nvdimm_bus *nvdimm_bus = data; 23 int nid = memory_add_physaddr_to_target_node(res->start); 24 25 memset(_desc, 0, sizeof(ndr_desc)); 26 ndr_desc.res = res; > 27 ndr_desc.numa_node = numa_map_to_online_node(nid); 28 ndr_desc.target_node = nid; 29 set_bit(ND_REGION_PAGEMAP, _desc.flags); 30 if (!nvdimm_pmem_region_create(nvdimm_bus, _desc)) 31 return -ENXIO; 32 return 0; 33 } 34 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
[RFC PATCH] nvdimm: scm_get() can be static
Fixes: 0d40f55b9035 ("nvdimm: Add driver for OpenCAPI Storage Class Memory") Signed-off-by: kbuild test robot --- ocxl-scm.c |4 ++-- ocxl-scm_internal.c |4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/nvdimm/ocxl-scm.c b/drivers/nvdimm/ocxl-scm.c index f4e6cc022de8a..c169cb0bc71d4 100644 --- a/drivers/nvdimm/ocxl-scm.c +++ b/drivers/nvdimm/ocxl-scm.c @@ -733,7 +733,7 @@ static void scm_put(struct scm_data *scm_data) put_device(_data->dev); } -struct scm_data *scm_get(struct scm_data *scm_data) +static struct scm_data *scm_get(struct scm_data *scm_data) { return (get_device(_data->dev) == NULL) ? NULL : scm_data; } @@ -2142,7 +2142,7 @@ static int scm_probe(struct pci_dev *pdev, const struct pci_device_id *ent) return -ENXIO; } -struct pci_driver scm_pci_driver = { +static struct pci_driver scm_pci_driver = { .name = "ocxl-scm", .id_table = scm_pci_tbl, .probe = scm_probe, diff --git a/drivers/nvdimm/ocxl-scm_internal.c b/drivers/nvdimm/ocxl-scm_internal.c index e7c247835817b..ee11fb72e1ecd 100644 --- a/drivers/nvdimm/ocxl-scm_internal.c +++ b/drivers/nvdimm/ocxl-scm_internal.c @@ -64,8 +64,8 @@ int scm_admin_command_request(struct scm_data *scm_data, u8 op_code) return scm_command_request(scm_data, _data->admin_command, op_code); } -int scm_command_response(const struct scm_data *scm_data, -const struct command_metadata *cmd) +static int scm_command_response(const struct scm_data *scm_data, + const struct command_metadata *cmd) { u64 val; u16 id; ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH 08/10] nvdimm: Add driver for OpenCAPI Storage Class Memory
Hi Alastair, Thank you for the patch! Yet something to improve: [auto build test ERROR on char-misc/char-misc-testing] [cannot apply to v5.4-rc5 next-20191025] [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/Alastair-D-Silva/Add-support-for-OpenCAPI-SCM-devices/20191028-043750 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git da80d2e516eb858eb5bcca7fa5f5a13ed86930e4 config: x86_64-allyesconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-14) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/nvdimm/ocxl-scm.c: In function 'scm_register_lpc_mem': >> drivers/nvdimm/ocxl-scm.c:476:16: error: implicit declaration of function >> 'of_node_to_nid'; did you mean 'zone_to_nid'? >> [-Werror=implicit-function-declaration] target_node = of_node_to_nid(scm_data->pdev->dev.of_node); ^~ zone_to_nid cc1: some warnings being treated as errors -- drivers/misc/ocxl/main.c: In function 'init_ocxl': >> drivers/misc/ocxl/main.c:12:7: error: 'tlbie_capable' undeclared (first use >> in this function); did you mean 'ptracer_capable'? if (!tlbie_capable) ^ ptracer_capable drivers/misc/ocxl/main.c:12:7: note: each undeclared identifier is reported only once for each function it appears in -- >> drivers/misc/ocxl/config.c:4:10: fatal error: asm/pnv-ocxl.h: No such file >> or directory #include ^~~~ compilation terminated. -- >> drivers/misc/ocxl/file.c:9:10: fatal error: asm/reg.h: No such file or >> directory #include ^~~ compilation terminated. -- drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_read32': >> drivers/misc/ocxl/mmio.c:20:10: error: implicit declaration of function >> 'readl_be'; did you mean 'readsb'? [-Werror=implicit-function-declaration] *val = readl_be((char *)afu->global_mmio_ptr + offset); ^~~~ readsb drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_read64': >> drivers/misc/ocxl/mmio.c:45:10: error: implicit declaration of function >> 'readq_be'; did you mean 'readsb'? [-Werror=implicit-function-declaration] *val = readq_be((char *)afu->global_mmio_ptr + offset); ^~~~ readsb drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_write32': >> drivers/misc/ocxl/mmio.c:70:3: error: implicit declaration of function >> 'writel_be'; did you mean 'writesb'? [-Werror=implicit-function-declaration] writel_be(val, (char *)afu->global_mmio_ptr + offset); ^ writesb drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_write64': >> drivers/misc/ocxl/mmio.c:96:3: error: implicit declaration of function >> 'writeq_be'; did you mean 'writesb'? [-Werror=implicit-function-declaration] writeq_be(val, (char *)afu->global_mmio_ptr + offset); ^ writesb cc1: some warnings being treated as errors -- >> drivers/misc/ocxl/link.c:7:10: fatal error: asm/copro.h: No such file or >> directory #include ^ compilation terminated. -- drivers/misc/ocxl/context.c: In function 'ocxl_context_attach': >> drivers/misc/ocxl/context.c:82:21: error: 'mm_context_t {aka struct >> }' has no member named 'id' pidr = mm->context.id; ^ -- >> drivers/misc/ocxl/afu_irq.c:4:10: fatal error: asm/pnv-ocxl.h: No such file >> or directory #include ^~~~ compilation terminated. -- drivers/misc/ocxl/core.c: In function 'ocxl_function_open': >> drivers/misc/ocxl/core.c:546:7: error: implicit declaration of function >> 'radix_enabled'; did you mean 'pat_enabled'? >> [-Werror=implicit-function-declaration] if (!radix_enabled()) { ^ pat_enabled cc1: some warnings being treated as errors vim +476 drivers/nvdimm/ocxl-scm.c 402 403 /** 404 * scm_register_lpc_mem() - Discover persistent memory on a device and register it with the NVDIMM subsystem 405 * @scm_data: The SCM device data 406 * Return: 0 on success 407 */ 408 static int scm_register_lpc_mem(struct scm_data *scm_data) 409 { 410 struct nd_region_desc region_desc; 411 struct nd_mapping_desc nd_mapping_desc; 412 struct resource *lpc_mem; 413
Re: [PATCH 08/10] nvdimm: Add driver for OpenCAPI Storage Class Memory
Hi Alastair, Thank you for the patch! Yet something to improve: [auto build test ERROR on char-misc/char-misc-testing] [cannot apply to v5.4-rc5 next-20191025] [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/Alastair-D-Silva/Add-support-for-OpenCAPI-SCM-devices/20191028-043750 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git da80d2e516eb858eb5bcca7fa5f5a13ed86930e4 config: s390-allmodconfig (attached as .config) compiler: s390-linux-gcc (GCC) 7.4.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 GCC_VERSION=7.4.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/misc/ocxl/main.c: In function 'init_ocxl': >> drivers/misc/ocxl/main.c:12:7: error: 'tlbie_capable' undeclared (first use >> in this function); did you mean 'iommu_capable'? if (!tlbie_capable) ^ iommu_capable drivers/misc/ocxl/main.c:12:7: note: each undeclared identifier is reported only once for each function it appears in -- drivers/misc/ocxl/core.c: In function 'ocxl_function_open': >> drivers/misc/ocxl/core.c:546:7: error: implicit declaration of function >> 'radix_enabled'; did you mean 'zdev_enabled'? >> [-Werror=implicit-function-declaration] if (!radix_enabled()) { ^ zdev_enabled cc1: some warnings being treated as errors vim +12 drivers/misc/ocxl/main.c 5ef3166e8a32d7 Frederic Barrat 2018-01-23 7 5ef3166e8a32d7 Frederic Barrat 2018-01-23 8 static int __init init_ocxl(void) 5ef3166e8a32d7 Frederic Barrat 2018-01-23 9 { 5ef3166e8a32d7 Frederic Barrat 2018-01-23 10 int rc = 0; 5ef3166e8a32d7 Frederic Barrat 2018-01-23 11 2275d7b5754a57 Nicholas Piggin 2019-09-03 @12 if (!tlbie_capable) 2275d7b5754a57 Nicholas Piggin 2019-09-03 13 return -EINVAL; 2275d7b5754a57 Nicholas Piggin 2019-09-03 14 5ef3166e8a32d7 Frederic Barrat 2018-01-23 15 rc = ocxl_file_init(); 5ef3166e8a32d7 Frederic Barrat 2018-01-23 16 if (rc) 5ef3166e8a32d7 Frederic Barrat 2018-01-23 17 return rc; 5ef3166e8a32d7 Frederic Barrat 2018-01-23 18 5ef3166e8a32d7 Frederic Barrat 2018-01-23 19 rc = pci_register_driver(_pci_driver); 5ef3166e8a32d7 Frederic Barrat 2018-01-23 20 if (rc) { 5ef3166e8a32d7 Frederic Barrat 2018-01-23 21 ocxl_file_exit(); 5ef3166e8a32d7 Frederic Barrat 2018-01-23 22 return rc; 5ef3166e8a32d7 Frederic Barrat 2018-01-23 23 } 5ef3166e8a32d7 Frederic Barrat 2018-01-23 24 return 0; 5ef3166e8a32d7 Frederic Barrat 2018-01-23 25 } 5ef3166e8a32d7 Frederic Barrat 2018-01-23 26 :: The code at line 12 was first introduced by commit :: 2275d7b5754a573ffb2ca9e40bd0546eeb986696 powerpc/64s/radix: introduce options to disable use of the tlbie instruction :: TO: Nicholas Piggin :: CC: Michael Ellerman --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH 04/10] powerpc: Map & release OpenCAPI LPC memory
Hi Alastair, Thank you for the patch! Yet something to improve: [auto build test ERROR on char-misc/char-misc-testing] [cannot apply to v5.4-rc5 next-20191025] [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/Alastair-D-Silva/Add-support-for-OpenCAPI-SCM-devices/20191028-043750 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git da80d2e516eb858eb5bcca7fa5f5a13ed86930e4 config: mips-allmodconfig (attached as .config) compiler: mips-linux-gcc (GCC) 7.4.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 GCC_VERSION=7.4.0 make.cross ARCH=mips If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): In file included from include/linux/mmzone.h:811:0, from include/linux/gfp.h:6, from include/linux/xarray.h:14, from include/linux/radix-tree.h:18, from include/linux/idr.h:15, from include/linux/kernfs.h:13, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/of.h:17, from include/linux/clk-provider.h:9, from arch/mips/generic/init.c:8: >> include/linux/memory_hotplug.h:342:5: error: "CONFIG_MEMORY_HOTPLUG_SPARSE" >> is not defined, evaluates to 0 [-Werror=undef] #if CONFIG_MEMORY_HOTPLUG_SPARSE ^~~~ cc1: all warnings being treated as errors vim +/CONFIG_MEMORY_HOTPLUG_SPARSE +342 include/linux/memory_hotplug.h 341 > 342 #if CONFIG_MEMORY_HOTPLUG_SPARSE 343 int check_hotplug_memory_addressable(unsigned long pfn, 344 unsigned long nr_pages); 345 #endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */ 346 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH 04/10] powerpc: Map & release OpenCAPI LPC memory
Hi Alastair, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on char-misc/char-misc-testing] [also build test WARNING on v5.4-rc5] [cannot apply to next-20191025] [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/Alastair-D-Silva/Add-support-for-OpenCAPI-SCM-devices/20191028-043750 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git da80d2e516eb858eb5bcca7fa5f5a13ed86930e4 config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-14) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): In file included from include/linux/mmzone.h:811:0, from include/linux/gfp.h:6, from include/linux/mm.h:10, from include/linux/pid_namespace.h:7, from include/linux/ptrace.h:10, from include/linux/audit.h:13, from security/commoncap.c:6: >> include/linux/memory_hotplug.h:342:5: warning: >> "CONFIG_MEMORY_HOTPLUG_SPARSE" is not defined, evaluates to 0 [-Wundef] #if CONFIG_MEMORY_HOTPLUG_SPARSE ^~~~ -- In file included from include/linux/mmzone.h:811:0, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/kernel/asm-offsets.c:9: >> include/linux/memory_hotplug.h:342:5: warning: >> "CONFIG_MEMORY_HOTPLUG_SPARSE" is not defined, evaluates to 0 [-Wundef] #if CONFIG_MEMORY_HOTPLUG_SPARSE ^~~~ 7 real 4 user 3 sys 112.50% cpu make prepare vim +/CONFIG_MEMORY_HOTPLUG_SPARSE +342 include/linux/memory_hotplug.h 341 > 342 #if CONFIG_MEMORY_HOTPLUG_SPARSE 343 int check_hotplug_memory_addressable(unsigned long pfn, 344 unsigned long nr_pages); 345 #endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */ 346 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
[linux-nvdimm:libnvdimm-for-next 5/15] drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function 'alloc_dax'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: 3b6047778c09037615e7b919c922081ef1a37a7f commit: fee8be32c5bab110c34884dfc4a68dd0105d2607 [5/15] libnvdimm: add dax_dev sync flag config: s390-debug_defconfig (attached as .config) compiler: s390-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout fee8be32c5bab110c34884dfc4a68dd0105d2607 # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/s390//block/dcssblk.c: In function 'dcssblk_add_store': >> drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function >> 'alloc_dax' dev_info->dax_dev = alloc_dax(dev_info, dev_info->gd->disk_name, ^ In file included from drivers/s390//block/dcssblk.c:23:0: include/linux/dax.h:43:20: note: declared here struct dax_device *alloc_dax(void *private, const char *host, ^ vim +/alloc_dax +681 drivers/s390//block/dcssblk.c b2300b9efe Hongjie Yang 2008-10-10 542 b2300b9efe Hongjie Yang 2008-10-10 543 /* ^1da177e4c Linus Torvalds2005-04-16 544 * device attribute for adding devices ^1da177e4c Linus Torvalds2005-04-16 545 */ ^1da177e4c Linus Torvalds2005-04-16 546 static ssize_t e404e274f6 Yani Ioannou 2005-05-17 547 dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) ^1da177e4c Linus Torvalds2005-04-16 548 { b2300b9efe Hongjie Yang 2008-10-10 549int rc, i, j, num_of_segments; ^1da177e4c Linus Torvalds2005-04-16 550struct dcssblk_dev_info *dev_info; b2300b9efe Hongjie Yang 2008-10-10 551struct segment_info *seg_info, *temp; ^1da177e4c Linus Torvalds2005-04-16 552char *local_buf; ^1da177e4c Linus Torvalds2005-04-16 553unsigned long seg_byte_size; ^1da177e4c Linus Torvalds2005-04-16 554 ^1da177e4c Linus Torvalds2005-04-16 555dev_info = NULL; b2300b9efe Hongjie Yang 2008-10-10 556seg_info = NULL; ^1da177e4c Linus Torvalds2005-04-16 557if (dev != dcssblk_root_dev) { ^1da177e4c Linus Torvalds2005-04-16 558rc = -EINVAL; ^1da177e4c Linus Torvalds2005-04-16 559goto out_nobuf; ^1da177e4c Linus Torvalds2005-04-16 560} b2300b9efe Hongjie Yang 2008-10-10 561if ((count < 1) || (buf[0] == '\0') || (buf[0] == '\n')) { b2300b9efe Hongjie Yang 2008-10-10 562rc = -ENAMETOOLONG; b2300b9efe Hongjie Yang 2008-10-10 563goto out_nobuf; b2300b9efe Hongjie Yang 2008-10-10 564} b2300b9efe Hongjie Yang 2008-10-10 565 ^1da177e4c Linus Torvalds2005-04-16 566local_buf = kmalloc(count + 1, GFP_KERNEL); ^1da177e4c Linus Torvalds2005-04-16 567if (local_buf == NULL) { ^1da177e4c Linus Torvalds2005-04-16 568rc = -ENOMEM; ^1da177e4c Linus Torvalds2005-04-16 569goto out_nobuf; ^1da177e4c Linus Torvalds2005-04-16 570} b2300b9efe Hongjie Yang 2008-10-10 571 ^1da177e4c Linus Torvalds2005-04-16 572/* ^1da177e4c Linus Torvalds2005-04-16 573 * parse input ^1da177e4c Linus Torvalds2005-04-16 574 */ b2300b9efe Hongjie Yang 2008-10-10 575num_of_segments = 0; 3a9f9183bd Ameen Ali 2015-02-24 576for (i = 0; (i < count && (buf[i] != '\0') && (buf[i] != '\n')); i++) { 42cfc6b590 Martin Schwidefsky2015-08-19 577for (j = i; j < count && 42cfc6b590 Martin Schwidefsky2015-08-19 578(buf[j] != ':') && b2300b9efe Hongjie Yang 2008-10-10 579(buf[j] != '\0') && 42cfc6b590 Martin Schwidefsky2015-08-19 580(buf[j] != '\n'); j++) { b2300b9efe Hongjie Yang 2008-10-10 581 local_buf[j-i] = toupper(buf[j]); b2300b9efe Hongjie Yang 2008-10-10 582} b2300b9efe Hongjie Yang 2008-10-10 583local_buf[j-i] = '\0'; b2300b9efe Hongjie Yang 2008-10-10 584if (((j - i) == 0) || ((j - i) > 8)) { ^1da177e4c Linus Torvalds2005-04-16 585rc = -ENAMETOOLONG; b2300b9efe Hongjie Yang 2008-10-10 586goto seg_list_del; ^1da177e4c
[linux-nvdimm:libnvdimm-for-next 6/15] drivers/md/dm-table.c:897:9: error: implicit declaration of function 'dax_synchronous'; did you mean 'device_synchronous'?
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: 3b6047778c09037615e7b919c922081ef1a37a7f commit: 38887edec2472179cc79bb45034731f5f816f064 [6/15] dm: enable synchronous dax config: parisc-c3000_defconfig (attached as .config) compiler: hppa-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 38887edec2472179cc79bb45034731f5f816f064 # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=parisc If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/md/dm-table.c: In function 'device_synchronous': >> drivers/md/dm-table.c:897:9: error: implicit declaration of function >> 'dax_synchronous'; did you mean 'device_synchronous'? >> [-Werror=implicit-function-declaration] return dax_synchronous(dev->dax_dev); ^~~ device_synchronous drivers/md/dm-table.c: In function 'dm_table_set_restrictions': >> drivers/md/dm-table.c:1925:4: error: implicit declaration of function >> 'set_dax_synchronous'; did you mean 'device_synchronous'? >> [-Werror=implicit-function-declaration] set_dax_synchronous(t->md->dax_dev); ^~~ device_synchronous cc1: some warnings being treated as errors vim +897 drivers/md/dm-table.c 892 893 /* Check devices support synchronous DAX */ 894 static int device_synchronous(struct dm_target *ti, struct dm_dev *dev, 895 sector_t start, sector_t len, void *data) 896 { > 897 return dax_synchronous(dev->dax_dev); 898 } 899 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[linux-nvdimm:libnvdimm-fixes 2/3] drivers//dax/super.c:76:6: error: redefinition of 'generic_fsdax_supported'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-fixes head: ac09ef3d6de21992ad8e372dc97017cc3c46e15e commit: 17a1362dd849b1c01dedcda38a6c0f5e26582407 [2/3] dax: Arrange for dax_supported check to span multiple devices config: i386-randconfig-x006-201920 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: git checkout 17a1362dd849b1c01dedcda38a6c0f5e26582407 # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): >> drivers//dax/super.c:76:6: error: redefinition of 'generic_fsdax_supported' bool generic_fsdax_supported(struct dax_device *dax_dev, ^~~ In file included from drivers//dax/super.c:23:0: include/linux/dax.h:112:20: note: previous definition of 'generic_fsdax_supported' was here static inline bool generic_fsdax_supported(struct dax_device *dax_dev, ^~~ vim +/generic_fsdax_supported +76 drivers//dax/super.c 75 > 76 bool generic_fsdax_supported(struct dax_device *dax_dev, 77 struct block_device *bdev, int blocksize, sector_t start, 78 sector_t sectors) 79 { 80 bool dax_enabled = false; 81 pgoff_t pgoff, pgoff_end; 82 char buf[BDEVNAME_SIZE]; 83 void *kaddr, *end_kaddr; 84 pfn_t pfn, end_pfn; 85 sector_t last_page; 86 long len, len2; 87 int err, id; 88 89 if (blocksize != PAGE_SIZE) { 90 pr_debug("%s: error: unsupported blocksize for dax\n", 91 bdevname(bdev, buf)); 92 return false; 93 } 94 95 err = bdev_dax_pgoff(bdev, start, PAGE_SIZE, ); 96 if (err) { 97 pr_debug("%s: error: unaligned partition for dax\n", 98 bdevname(bdev, buf)); 99 return false; 100 } 101 102 last_page = PFN_DOWN((start + sectors - 1) * 512) * PAGE_SIZE / 512; 103 err = bdev_dax_pgoff(bdev, last_page, PAGE_SIZE, _end); 104 if (err) { 105 pr_debug("%s: error: unaligned partition for dax\n", 106 bdevname(bdev, buf)); 107 return false; 108 } 109 110 id = dax_read_lock(); 111 len = dax_direct_access(dax_dev, pgoff, 1, , ); 112 len2 = dax_direct_access(dax_dev, pgoff_end, 1, _kaddr, _pfn); 113 dax_read_unlock(id); 114 115 if (len < 1 || len2 < 1) { 116 pr_debug("%s: error: dax access failed (%ld)\n", 117 bdevname(bdev, buf), len < 1 ? len : len2); 118 return false; 119 } 120 121 if (IS_ENABLED(CONFIG_FS_DAX_LIMITED) && pfn_t_special(pfn)) { 122 /* 123 * An arch that has enabled the pmem api should also 124 * have its drivers support pfn_t_devmap() 125 * 126 * This is a developer warning and should not trigger in 127 * production. dax_flush() will crash since it depends 128 * on being able to do (page_address(pfn_to_page())). 129 */ 130 WARN_ON(IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API)); 131 dax_enabled = true; 132 } else if (pfn_t_devmap(pfn) && pfn_t_devmap(end_pfn)) { 133 struct dev_pagemap *pgmap, *end_pgmap; 134 135 pgmap = get_dev_pagemap(pfn_t_to_pfn(pfn), NULL); 136 end_pgmap = get_dev_pagemap(pfn_t_to_pfn(end_pfn), NULL); 137 if (pgmap && pgmap == end_pgmap && pgmap->type == MEMORY_DEVICE_FS_DAX 138 && pfn_t_to_page(pfn)->pgmap == pgmap 139 && pfn_t_to_page(end_pfn)->pgmap == pgmap 140 && pfn_t_to_pfn(pfn) == PHYS_PFN(__pa(kaddr)) 141 && pfn_t_to_pfn(end_pfn) == PHYS_PFN(__pa(end_kaddr))) 142 dax_enabled = true; 143 put_dev_pagemap(pgmap); 144 put_dev_pagemap(end_pgmap); 145 146 } 147 148 if (!dax_enabled) { 149 pr_debug("%s: error: dax support not enabled\n", 150 bdevname(bdev, buf)); 151
Re: [PATCH] libnvdimm/dimm: Add a no-BLK quirk based on NVDIMM family
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linux-nvdimm/libnvdimm-for-next] [also build test ERROR on v5.0-rc4 next-20190201] [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/Dan-Williams/libnvdimm-dimm-Add-a-no-BLK-quirk-based-on-NVDIMM-family/20190203-213444 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-allmodconfig (attached as .config) compiler: gcc-8 (Debian 8.2.0-14) 8.2.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/acpi/nfit/core.c: In function 'acpi_nfit_register_dimms': >> drivers/acpi/nfit/core.c:2003:27: error: 'NVDIMM_FAMILY_HYPERV' undeclared >> (first use in this function); did you mean 'NVDIMM_FAMILY_HPE1'? if (nfit_mem->family == NVDIMM_FAMILY_HYPERV) ^~~~ NVDIMM_FAMILY_HPE1 drivers/acpi/nfit/core.c:2003:27: note: each undeclared identifier is reported only once for each function it appears in vim +2003 drivers/acpi/nfit/core.c 1944 1945 static int acpi_nfit_register_dimms(struct acpi_nfit_desc *acpi_desc) 1946 { 1947 struct nfit_mem *nfit_mem; 1948 int dimm_count = 0, rc; 1949 struct nvdimm *nvdimm; 1950 1951 list_for_each_entry(nfit_mem, _desc->dimms, list) { 1952 struct acpi_nfit_flush_address *flush; 1953 unsigned long flags = 0, cmd_mask; 1954 struct nfit_memdev *nfit_memdev; 1955 u32 device_handle; 1956 u16 mem_flags; 1957 1958 device_handle = __to_nfit_memdev(nfit_mem)->device_handle; 1959 nvdimm = acpi_nfit_dimm_by_handle(acpi_desc, device_handle); 1960 if (nvdimm) { 1961 dimm_count++; 1962 continue; 1963 } 1964 1965 if (nfit_mem->bdw && nfit_mem->memdev_pmem) 1966 set_bit(NDD_ALIASING, ); 1967 1968 /* collate flags across all memdevs for this dimm */ 1969 list_for_each_entry(nfit_memdev, _desc->memdevs, list) { 1970 struct acpi_nfit_memory_map *dimm_memdev; 1971 1972 dimm_memdev = __to_nfit_memdev(nfit_mem); 1973 if (dimm_memdev->device_handle 1974 != nfit_memdev->memdev->device_handle) 1975 continue; 1976 dimm_memdev->flags |= nfit_memdev->memdev->flags; 1977 } 1978 1979 mem_flags = __to_nfit_memdev(nfit_mem)->flags; 1980 if (mem_flags & ACPI_NFIT_MEM_NOT_ARMED) 1981 set_bit(NDD_UNARMED, ); 1982 1983 rc = acpi_nfit_add_dimm(acpi_desc, nfit_mem, device_handle); 1984 if (rc) 1985 continue; 1986 1987 /* 1988 * TODO: provide translation for non-NVDIMM_FAMILY_INTEL 1989 * devices (i.e. from nd_cmd to acpi_dsm) to standardize the 1990 * userspace interface. 1991 */ 1992 cmd_mask = 1UL << ND_CMD_CALL; 1993 if (nfit_mem->family == NVDIMM_FAMILY_INTEL) { 1994 /* 1995 * These commands have a 1:1 correspondence 1996 * between DSM payload and libnvdimm ioctl 1997 * payload format. 1998 */ 1999 cmd_mask |= nfit_mem->dsm_mask & NVDIMM_STANDARD_CMDMASK; 2000 } 2001 2002 /* Quirk to ignore LOCAL for labels on HYPERV DIMMs */ > 2003 if (nfit_mem->family == NVDIMM_FAMILY_HYPERV) 2004 set_bit(NDD_NOBLK, ); 2005 2006 if (test_bit(NFIT_MEM_LSR, _mem->flags)) { 2007 set_bit(ND_CMD_GET_CONFIG_SIZE, _mask); 2008 set_bit(ND_CMD_GET_CONFIG_DATA, _mask); 2009 } 2010 if (test_bit(NFIT_MEM_LSW, _mem->flags)) 2011 set_bit(ND_CMD_SET_CONFIG_DATA, _mask); 2012 2013 flush = nfit_mem->nfit_flush ? nfit_mem->nfit_flush->flush 2014 : NULL; 2015 nvdimm = __nvdimm_create(acpi_desc->nvdimm_bus, nfit_mem, 2016 acpi_nfit_dimm_attribute_groups, 2017
Re: [PATCH] libnvdimm/dimm: Add a no-BLK quirk based on NVDIMM family
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linux-nvdimm/libnvdimm-for-next] [also build test ERROR on v5.0-rc4 next-20190201] [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/Dan-Williams/libnvdimm-dimm-Add-a-no-BLK-quirk-based-on-NVDIMM-family/20190203-213444 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-randconfig-x018-201905 (attached as .config) compiler: gcc-8 (Debian 8.2.0-14) 8.2.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/acpi//nfit/core.c: In function 'acpi_nfit_register_dimms': >> drivers/acpi//nfit/core.c:2003:27: error: 'NVDIMM_FAMILY_HYPERV' undeclared >> (first use in this function); did you mean 'NVDIMM_FAMILY_HPE2'? if (nfit_mem->family == NVDIMM_FAMILY_HYPERV) ^~~~ NVDIMM_FAMILY_HPE2 drivers/acpi//nfit/core.c:2003:27: note: each undeclared identifier is reported only once for each function it appears in vim +2003 drivers/acpi//nfit/core.c 1944 1945 static int acpi_nfit_register_dimms(struct acpi_nfit_desc *acpi_desc) 1946 { 1947 struct nfit_mem *nfit_mem; 1948 int dimm_count = 0, rc; 1949 struct nvdimm *nvdimm; 1950 1951 list_for_each_entry(nfit_mem, _desc->dimms, list) { 1952 struct acpi_nfit_flush_address *flush; 1953 unsigned long flags = 0, cmd_mask; 1954 struct nfit_memdev *nfit_memdev; 1955 u32 device_handle; 1956 u16 mem_flags; 1957 1958 device_handle = __to_nfit_memdev(nfit_mem)->device_handle; 1959 nvdimm = acpi_nfit_dimm_by_handle(acpi_desc, device_handle); 1960 if (nvdimm) { 1961 dimm_count++; 1962 continue; 1963 } 1964 1965 if (nfit_mem->bdw && nfit_mem->memdev_pmem) 1966 set_bit(NDD_ALIASING, ); 1967 1968 /* collate flags across all memdevs for this dimm */ 1969 list_for_each_entry(nfit_memdev, _desc->memdevs, list) { 1970 struct acpi_nfit_memory_map *dimm_memdev; 1971 1972 dimm_memdev = __to_nfit_memdev(nfit_mem); 1973 if (dimm_memdev->device_handle 1974 != nfit_memdev->memdev->device_handle) 1975 continue; 1976 dimm_memdev->flags |= nfit_memdev->memdev->flags; 1977 } 1978 1979 mem_flags = __to_nfit_memdev(nfit_mem)->flags; 1980 if (mem_flags & ACPI_NFIT_MEM_NOT_ARMED) 1981 set_bit(NDD_UNARMED, ); 1982 1983 rc = acpi_nfit_add_dimm(acpi_desc, nfit_mem, device_handle); 1984 if (rc) 1985 continue; 1986 1987 /* 1988 * TODO: provide translation for non-NVDIMM_FAMILY_INTEL 1989 * devices (i.e. from nd_cmd to acpi_dsm) to standardize the 1990 * userspace interface. 1991 */ 1992 cmd_mask = 1UL << ND_CMD_CALL; 1993 if (nfit_mem->family == NVDIMM_FAMILY_INTEL) { 1994 /* 1995 * These commands have a 1:1 correspondence 1996 * between DSM payload and libnvdimm ioctl 1997 * payload format. 1998 */ 1999 cmd_mask |= nfit_mem->dsm_mask & NVDIMM_STANDARD_CMDMASK; 2000 } 2001 2002 /* Quirk to ignore LOCAL for labels on HYPERV DIMMs */ > 2003 if (nfit_mem->family == NVDIMM_FAMILY_HYPERV) 2004 set_bit(NDD_NOBLK, ); 2005 2006 if (test_bit(NFIT_MEM_LSR, _mem->flags)) { 2007 set_bit(ND_CMD_GET_CONFIG_SIZE, _mask); 2008 set_bit(ND_CMD_GET_CONFIG_DATA, _mask); 2009 } 2010 if (test_bit(NFIT_MEM_LSW, _mem->flags)) 2011 set_bit(ND_CMD_SET_CONFIG_DATA, _mask); 2012 2013 flush = nfit_mem->nfit_flush ? nfit_mem->nfit_flush->flush 2014 : NULL; 2015 nvdimm = __nvdimm_create(acpi_desc->nvdimm_bus, nfit_mem, 2016 acpi_nfit_dimm_attribute_groups, 2017
[linux-nvdimm:for-5.0/nvdimm-security 2/17] arch/powerpc//platforms/pseries/papr_scm.c:219:14: error: too few arguments to function 'nvdimm_create'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git for-5.0/nvdimm-security head: bddbf9de5dcd455addac2862e8bc3f41881d29f7 commit: 625fea4fc86b6dca5a43b5882f23f537088571a6 [2/17] acpi/nfit, libnvdimm: Store dimm id as a member to struct nvdimm config: powerpc64-allyesconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 625fea4fc86b6dca5a43b5882f23f537088571a6 # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=powerpc64 Note: the linux-nvdimm/for-5.0/nvdimm-security HEAD bddbf9de5dcd455addac2862e8bc3f41881d29f7 builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): arch/powerpc//platforms/pseries/papr_scm.c: In function 'papr_scm_nvdimm_init': >> arch/powerpc//platforms/pseries/papr_scm.c:219:14: error: too few arguments >> to function 'nvdimm_create' p->nvdimm = nvdimm_create(p->bus, p, papr_scm_dimm_groups, ^ In file included from arch/powerpc//platforms/pseries/papr_scm.c:12:0: include/linux/libnvdimm.h:178:16: note: declared here struct nvdimm *nvdimm_create(struct nvdimm_bus *nvdimm_bus, void *provider_data, ^ vim +/nvdimm_create +219 arch/powerpc//platforms/pseries/papr_scm.c b5beae5e Oliver O'Halloran 2018-10-15 193 b5beae5e Oliver O'Halloran 2018-10-15 194 static int papr_scm_nvdimm_init(struct papr_scm_priv *p) b5beae5e Oliver O'Halloran 2018-10-15 195 { b5beae5e Oliver O'Halloran 2018-10-15 196 struct device *dev = >pdev->dev; b5beae5e Oliver O'Halloran 2018-10-15 197 struct nd_mapping_desc mapping; b5beae5e Oliver O'Halloran 2018-10-15 198 struct nd_region_desc ndr_desc; b5beae5e Oliver O'Halloran 2018-10-15 199 unsigned long dimm_flags; b5beae5e Oliver O'Halloran 2018-10-15 200 b5beae5e Oliver O'Halloran 2018-10-15 201 p->bus_desc.ndctl = papr_scm_ndctl; b5beae5e Oliver O'Halloran 2018-10-15 202 p->bus_desc.module = THIS_MODULE; b5beae5e Oliver O'Halloran 2018-10-15 203 p->bus_desc.of_node = p->pdev->dev.of_node; b5beae5e Oliver O'Halloran 2018-10-15 204 p->bus_desc.attr_groups = bus_attr_groups; b5beae5e Oliver O'Halloran 2018-10-15 205 p->bus_desc.provider_name = kstrdup(p->pdev->name, GFP_KERNEL); b5beae5e Oliver O'Halloran 2018-10-15 206 b5beae5e Oliver O'Halloran 2018-10-15 207 if (!p->bus_desc.provider_name) b5beae5e Oliver O'Halloran 2018-10-15 208 return -ENOMEM; b5beae5e Oliver O'Halloran 2018-10-15 209 b5beae5e Oliver O'Halloran 2018-10-15 210 p->bus = nvdimm_bus_register(NULL, >bus_desc); b5beae5e Oliver O'Halloran 2018-10-15 211 if (!p->bus) { b5beae5e Oliver O'Halloran 2018-10-15 212 dev_err(dev, "Error creating nvdimm bus %pOF\n", p->dn); b5beae5e Oliver O'Halloran 2018-10-15 213 return -ENXIO; b5beae5e Oliver O'Halloran 2018-10-15 214 } b5beae5e Oliver O'Halloran 2018-10-15 215 b5beae5e Oliver O'Halloran 2018-10-15 216 dimm_flags = 0; b5beae5e Oliver O'Halloran 2018-10-15 217 set_bit(NDD_ALIASING, _flags); b5beae5e Oliver O'Halloran 2018-10-15 218 b5beae5e Oliver O'Halloran 2018-10-15 @219 p->nvdimm = nvdimm_create(p->bus, p, papr_scm_dimm_groups, b5beae5e Oliver O'Halloran 2018-10-15 220 dimm_flags, PAPR_SCM_DIMM_CMD_MASK, 0, NULL); b5beae5e Oliver O'Halloran 2018-10-15 221 if (!p->nvdimm) { b5beae5e Oliver O'Halloran 2018-10-15 222 dev_err(dev, "Error creating DIMM object for %pOF\n", p->dn); b5beae5e Oliver O'Halloran 2018-10-15 223 goto err; b5beae5e Oliver O'Halloran 2018-10-15 224 } b5beae5e Oliver O'Halloran 2018-10-15 225 b5beae5e Oliver O'Halloran 2018-10-15 226 /* now add the region */ b5beae5e Oliver O'Halloran 2018-10-15 227 b5beae5e Oliver O'Halloran 2018-10-15 228 memset(, 0, sizeof(mapping)); b5beae5e Oliver O'Halloran 2018-10-15 229 mapping.nvdimm = p->nvdimm; b5beae5e Oliver O'Halloran 2018-10-15 230 mapping.start = 0; b5beae5e Oliver O'Halloran 2018-10-15 231 mapping.size = p->blocks * p->block_size; // XXX: potential overflow? b5beae5e Oliver O'Halloran 2018-10-15 232 b5beae5e Oliver O'Halloran 2018-10-15 233 memset(_desc, 0, sizeof(ndr_desc)); b5beae5e Oliver O'Halloran 2018-10-15 234 ndr_desc.attr_groups = region_attr_groups; b5beae5e Oliver O'Halloran 2018-10-15 235 ndr_desc.numa_node = dev_to_node(>pdev->dev); b5beae5e Oliver O'Halloran 2018-10-15 236 ndr_desc.res = >res; b5beae5e Oliver O'Halloran 2018-10-15 237 ndr_desc.of_node = p->dn; b5beae5e Oliver O'Halloran 2018-10-15 238 ndr_desc.provider_data = p; b5beae5e Oliver O'Halloran 2018-10-15 239
Re: [driver-core PATCH v5 5/9] driver core: Establish clear order of operations for deferred probe and remove
Hi Alexander, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on driver-core/master] url: https://github.com/0day-ci/linux/commits/Alexander-Duyck/Add-NUMA-aware-async_schedule-calls/20181106-093800 reproduce: make htmldocs All warnings (new ones prefixed by >>): include/net/mac80211.h:1001: warning: Function parameter or member 'status.is_valid_ack_signal' not described in 'ieee80211_tx_info' include/net/mac80211.h:1001: warning: Function parameter or member 'status.status_driver_data' not described in 'ieee80211_tx_info' include/net/mac80211.h:1001: warning: Function parameter or member 'driver_rates' not described in 'ieee80211_tx_info' include/net/mac80211.h:1001: warning: Function parameter or member 'pad' not described in 'ieee80211_tx_info' include/net/mac80211.h:1001: warning: Function parameter or member 'rate_driver_data' not described in 'ieee80211_tx_info' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct ieee80211_ftm_responder_params ' include/net/mac80211.h:477: warning: cannot understand function prototype: 'struct
Re: [PATCH v2 1/2] libnvdimm: nd_region flush callback support
Hi Pankaj, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.19-rc7 next-20181012] [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/Pankaj-Gupta/libnvdimm-nd_region-flush-callback-support/20181013-152624 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-randconfig-g0-10131621 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from drivers//acpi/nfit/core.c:14:0: >> include/linux/libnvdimm.h:206:54: warning: 'struct bio' declared inside >> parameter list int nvdimm_flush(struct nd_region *nd_region, struct bio *bio, bool async); ^ >> include/linux/libnvdimm.h:206:54: warning: its scope is only this definition >> or declaration, which is probably not what you want vim +206 include/linux/libnvdimm.h 159 160 void badrange_init(struct badrange *badrange); 161 int badrange_add(struct badrange *badrange, u64 addr, u64 length); 162 void badrange_forget(struct badrange *badrange, phys_addr_t start, 163 unsigned int len); 164 int nvdimm_bus_add_badrange(struct nvdimm_bus *nvdimm_bus, u64 addr, 165 u64 length); 166 struct nvdimm_bus *nvdimm_bus_register(struct device *parent, 167 struct nvdimm_bus_descriptor *nfit_desc); 168 void nvdimm_bus_unregister(struct nvdimm_bus *nvdimm_bus); 169 struct nvdimm_bus *to_nvdimm_bus(struct device *dev); 170 struct nvdimm *to_nvdimm(struct device *dev); 171 struct nd_region *to_nd_region(struct device *dev); 172 struct device *nd_region_dev(struct nd_region *nd_region); 173 struct nd_blk_region *to_nd_blk_region(struct device *dev); 174 struct nvdimm_bus_descriptor *to_nd_desc(struct nvdimm_bus *nvdimm_bus); 175 struct device *to_nvdimm_bus_dev(struct nvdimm_bus *nvdimm_bus); 176 const char *nvdimm_name(struct nvdimm *nvdimm); 177 struct kobject *nvdimm_kobj(struct nvdimm *nvdimm); 178 unsigned long nvdimm_cmd_mask(struct nvdimm *nvdimm); 179 void *nvdimm_provider_data(struct nvdimm *nvdimm); 180 struct nvdimm *nvdimm_create(struct nvdimm_bus *nvdimm_bus, void *provider_data, 181 const struct attribute_group **groups, unsigned long flags, 182 unsigned long cmd_mask, int num_flush, 183 struct resource *flush_wpq); 184 const struct nd_cmd_desc *nd_cmd_dimm_desc(int cmd); 185 const struct nd_cmd_desc *nd_cmd_bus_desc(int cmd); 186 u32 nd_cmd_in_size(struct nvdimm *nvdimm, int cmd, 187 const struct nd_cmd_desc *desc, int idx, void *buf); 188 u32 nd_cmd_out_size(struct nvdimm *nvdimm, int cmd, 189 const struct nd_cmd_desc *desc, int idx, const u32 *in_field, 190 const u32 *out_field, unsigned long remainder); 191 int nvdimm_bus_check_dimm_count(struct nvdimm_bus *nvdimm_bus, int dimm_count); 192 struct nd_region *nvdimm_pmem_region_create(struct nvdimm_bus *nvdimm_bus, 193 struct nd_region_desc *ndr_desc); 194 struct nd_region *nvdimm_blk_region_create(struct nvdimm_bus *nvdimm_bus, 195 struct nd_region_desc *ndr_desc); 196 struct nd_region *nvdimm_volatile_region_create(struct nvdimm_bus *nvdimm_bus, 197 struct nd_region_desc *ndr_desc); 198 void *nd_region_provider_data(struct nd_region *nd_region); 199 void *nd_blk_region_provider_data(struct nd_blk_region *ndbr); 200 void nd_blk_region_set_provider_data(struct nd_blk_region *ndbr, void *data); 201 struct nvdimm *nd_blk_region_to_dimm(struct nd_blk_region *ndbr); 202 unsigned long nd_blk_memremap_flags(struct nd_blk_region *ndbr); 203 unsigned int nd_region_acquire_lane(struct nd_region *nd_region); 204 void nd_region_release_lane(struct nd_region *nd_region, unsigned int lane); 205 u64 nd_fletcher64(void *addr, size_t len, bool le); > 206 int nvdimm_flush(struct nd_region *nd_region, struct bio *bio, bool > async); 207 int generic_nvdimm_flush(struct nd_region *nd_region); 208 int nvdimm_has_flush(struct nd_region *nd_region); 209 int nvdimm_has_cache(struct nd_region *nd_region); 210 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v2 1/2] libnvdimm: nd_region flush callback support
Hi Pankaj, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.19-rc7 next-20181012] [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/Pankaj-Gupta/libnvdimm-nd_region-flush-callback-support/20181013-152624 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-randconfig-x017-201840 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from drivers/nvdimm/bus.c:14:0: >> include/linux/libnvdimm.h:206:54: warning: 'struct bio' declared inside >> parameter list will not be visible outside of this definition or declaration int nvdimm_flush(struct nd_region *nd_region, struct bio *bio, bool async); ^~~ vim +206 include/linux/libnvdimm.h 159 160 void badrange_init(struct badrange *badrange); 161 int badrange_add(struct badrange *badrange, u64 addr, u64 length); 162 void badrange_forget(struct badrange *badrange, phys_addr_t start, 163 unsigned int len); 164 int nvdimm_bus_add_badrange(struct nvdimm_bus *nvdimm_bus, u64 addr, 165 u64 length); 166 struct nvdimm_bus *nvdimm_bus_register(struct device *parent, 167 struct nvdimm_bus_descriptor *nfit_desc); 168 void nvdimm_bus_unregister(struct nvdimm_bus *nvdimm_bus); 169 struct nvdimm_bus *to_nvdimm_bus(struct device *dev); 170 struct nvdimm *to_nvdimm(struct device *dev); 171 struct nd_region *to_nd_region(struct device *dev); 172 struct device *nd_region_dev(struct nd_region *nd_region); 173 struct nd_blk_region *to_nd_blk_region(struct device *dev); 174 struct nvdimm_bus_descriptor *to_nd_desc(struct nvdimm_bus *nvdimm_bus); 175 struct device *to_nvdimm_bus_dev(struct nvdimm_bus *nvdimm_bus); 176 const char *nvdimm_name(struct nvdimm *nvdimm); 177 struct kobject *nvdimm_kobj(struct nvdimm *nvdimm); 178 unsigned long nvdimm_cmd_mask(struct nvdimm *nvdimm); 179 void *nvdimm_provider_data(struct nvdimm *nvdimm); 180 struct nvdimm *nvdimm_create(struct nvdimm_bus *nvdimm_bus, void *provider_data, 181 const struct attribute_group **groups, unsigned long flags, 182 unsigned long cmd_mask, int num_flush, 183 struct resource *flush_wpq); 184 const struct nd_cmd_desc *nd_cmd_dimm_desc(int cmd); 185 const struct nd_cmd_desc *nd_cmd_bus_desc(int cmd); 186 u32 nd_cmd_in_size(struct nvdimm *nvdimm, int cmd, 187 const struct nd_cmd_desc *desc, int idx, void *buf); 188 u32 nd_cmd_out_size(struct nvdimm *nvdimm, int cmd, 189 const struct nd_cmd_desc *desc, int idx, const u32 *in_field, 190 const u32 *out_field, unsigned long remainder); 191 int nvdimm_bus_check_dimm_count(struct nvdimm_bus *nvdimm_bus, int dimm_count); 192 struct nd_region *nvdimm_pmem_region_create(struct nvdimm_bus *nvdimm_bus, 193 struct nd_region_desc *ndr_desc); 194 struct nd_region *nvdimm_blk_region_create(struct nvdimm_bus *nvdimm_bus, 195 struct nd_region_desc *ndr_desc); 196 struct nd_region *nvdimm_volatile_region_create(struct nvdimm_bus *nvdimm_bus, 197 struct nd_region_desc *ndr_desc); 198 void *nd_region_provider_data(struct nd_region *nd_region); 199 void *nd_blk_region_provider_data(struct nd_blk_region *ndbr); 200 void nd_blk_region_set_provider_data(struct nd_blk_region *ndbr, void *data); 201 struct nvdimm *nd_blk_region_to_dimm(struct nd_blk_region *ndbr); 202 unsigned long nd_blk_memremap_flags(struct nd_blk_region *ndbr); 203 unsigned int nd_region_acquire_lane(struct nd_region *nd_region); 204 void nd_region_release_lane(struct nd_region *nd_region, unsigned int lane); 205 u64 nd_fletcher64(void *addr, size_t len, bool le); > 206 int nvdimm_flush(struct nd_region *nd_region, struct bio *bio, bool > async); 207 int generic_nvdimm_flush(struct nd_region *nd_region); 208 int nvdimm_has_flush(struct nd_region *nd_region); 209 int nvdimm_has_cache(struct nd_region *nd_region); 210 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 3/4] mm: Defer ZONE_DEVICE page initialization to the point where we init pgmap
Hi Alexander, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.19-rc3] [cannot apply to next-20180910] [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/Alexander-Duyck/Address-issues-slowing-persistent-memory-initialization/20180911-144536 config: openrisc-or1ksim_defconfig (attached as .config) compiler: or1k-linux-gcc (GCC) 6.0.0 20160327 (experimental) 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 make.cross ARCH=openrisc All errors (new ones prefixed by >>): mm/page_alloc.c: In function 'memmap_init_zone': >> mm/page_alloc.c:5566:21: error: 'ZONE_DEVICE' undeclared (first use in this >> function) } else if (zone == ZONE_DEVICE) { ^~~ mm/page_alloc.c:5566:21: note: each undeclared identifier is reported only once for each function it appears in vim +/ZONE_DEVICE +5566 mm/page_alloc.c 5551 5552 if (highest_memmap_pfn < end_pfn - 1) 5553 highest_memmap_pfn = end_pfn - 1; 5554 /* 5556 * Honor reservation requested by the driver for this ZONE_DEVICE 5557 * memory. We limit the total number of pages to initialize to just 5558 * those that might contain the memory mapping. We will defer the 5559 * ZONE_DEVICE page initialization until after we have released 5560 * the hotplug lock. 5561 */ 5562 if (altmap && start_pfn == altmap->base_pfn) { 5563 start_pfn += altmap->reserve; 5564 end_pfn = altmap->base_pfn + 5565vmem_altmap_offset(altmap); > 5566 } else if (zone == ZONE_DEVICE) { 5567 end_pfn = start_pfn; 5568 } 5569 5570 for (pfn = start_pfn; pfn < end_pfn; pfn++) { 5571 /* 5572 * There can be holes in boot-time mem_map[]s handed to this 5573 * function. They do not exist on hotplugged memory. 5574 */ 5575 if (context != MEMMAP_EARLY) 5576 goto not_early; 5577 5578 if (!early_pfn_valid(pfn)) 5579 continue; 5580 if (!early_pfn_in_nid(pfn, nid)) 5581 continue; 5582 if (!update_defer_init(pgdat, pfn, end_pfn, _initialised)) 5583 break; 5584 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 3/4] mm: Defer ZONE_DEVICE page initialization to the point where we init pgmap
Hi Alexander, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v4.19-rc3] [cannot apply to next-20180910] [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/Alexander-Duyck/Address-issues-slowing-persistent-memory-initialization/20180911-144536 config: x86_64-randconfig-x009-201836 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/asm-generic/bug.h:5:0, from arch/x86/include/asm/bug.h:83, from include/linux/bug.h:5, from include/linux/mmdebug.h:5, from include/linux/mm.h:9, from mm/page_alloc.c:18: mm/page_alloc.c: In function 'memmap_init_zone': mm/page_alloc.c:5566:21: error: 'ZONE_DEVICE' undeclared (first use in this function); did you mean 'ZONE_MOVABLE'? } else if (zone == ZONE_DEVICE) { ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> mm/page_alloc.c:5566:9: note: in expansion of macro 'if' } else if (zone == ZONE_DEVICE) { ^~ mm/page_alloc.c:5566:21: note: each undeclared identifier is reported only once for each function it appears in } else if (zone == ZONE_DEVICE) { ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> mm/page_alloc.c:5566:9: note: in expansion of macro 'if' } else if (zone == ZONE_DEVICE) { ^~ vim +/if +5566 mm/page_alloc.c 5551 5552 if (highest_memmap_pfn < end_pfn - 1) 5553 highest_memmap_pfn = end_pfn - 1; 5554 /* 5556 * Honor reservation requested by the driver for this ZONE_DEVICE 5557 * memory. We limit the total number of pages to initialize to just 5558 * those that might contain the memory mapping. We will defer the 5559 * ZONE_DEVICE page initialization until after we have released 5560 * the hotplug lock. 5561 */ 5562 if (altmap && start_pfn == altmap->base_pfn) { 5563 start_pfn += altmap->reserve; 5564 end_pfn = altmap->base_pfn + 5565vmem_altmap_offset(altmap); > 5566 } else if (zone == ZONE_DEVICE) { 5567 end_pfn = start_pfn; 5568 } 5569 5570 for (pfn = start_pfn; pfn < end_pfn; pfn++) { 5571 /* 5572 * There can be holes in boot-time mem_map[]s handed to this 5573 * function. They do not exist on hotplugged memory. 5574 */ 5575 if (context != MEMMAP_EARLY) 5576 goto not_early; 5577 5578 if (!early_pfn_valid(pfn)) 5579 continue; 5580 if (!early_pfn_in_nid(pfn, nid)) 5581 continue; 5582 if (!update_defer_init(pgdat, pfn, end_pfn, _initialised)) 5583 break; 5584 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 3/3] libnvdimm, region_devs: reset related seeds when fail to create namespace
Hi Ocean, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.19-rc3 next-20180910] [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/Ocean-He/libnvdimm-reset-seeds-for-next-namespace-creation/20180911-005505 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/nvdimm/region_devs.c:84:29: sparse: expression using sizeof(void) drivers/nvdimm/region_devs.c:84:29: sparse: expression using sizeof(void) drivers/nvdimm/region_devs.c:405:37: sparse: expression using sizeof(void) drivers/nvdimm/region_devs.c:405:37: sparse: expression using sizeof(void) >> drivers/nvdimm/region_devs.c:710:6: sparse: symbol >> 'nd_region_detach_and_reset' was not declared. Should it be static? drivers/nvdimm/region_devs.c:1127:31: sparse: expression using sizeof(void) drivers/nvdimm/region_devs.c:985:9: sparse: context imbalance in 'nd_region_acquire_lane' - wrong count at exit drivers/nvdimm/region_devs.c:998:36: sparse: context imbalance in 'nd_region_release_lane' - unexpected unlock Please review and possibly fold the followup patch. --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[RFC PATCH] libnvdimm, region_devs: nd_region_detach_and_reset() can be static
Fixes: 39ac5d361db2 ("libnvdimm, region_devs: reset related seeds when fail to create namespace") Signed-off-by: kbuild test robot --- region_devs.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c index 4c46fb6..a2f667e 100644 --- a/drivers/nvdimm/region_devs.c +++ b/drivers/nvdimm/region_devs.c @@ -707,7 +707,7 @@ void nd_mapping_free_labels(struct nd_mapping *nd_mapping) * To ensure pfn_seed/dax_seed and namespace_seed are ready for * next namespace creation, here to do detach and reset. */ -void nd_region_detach_and_reset(struct device *dev, +static void nd_region_detach_and_reset(struct device *dev, struct nd_region *nd_region) { /* Only nd_pmem has been verified, fix me for other dev type. */ ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 3/3] virtio-pmem: Add virtio pmem driver
Hi Pankaj, Thank you for the patch! Yet something to improve: [auto build test ERROR on linux-nvdimm/libnvdimm-for-next] [also build test ERROR on v4.19-rc2 next-20180905] [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/Pankaj-Gupta/kvm-fake-DAX-device/20180903-160032 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: i386-allyesconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/virtio/virtio_pmem.o: In function `virtio_pmem_remove': >> virtio_pmem.c:(.text+0x299): undefined reference to `nvdimm_bus_unregister' drivers/virtio/virtio_pmem.o: In function `virtio_pmem_probe': >> virtio_pmem.c:(.text+0x5e3): undefined reference to `nvdimm_bus_register' >> virtio_pmem.c:(.text+0x62a): undefined reference to >> `nvdimm_pmem_region_create' virtio_pmem.c:(.text+0x63b): undefined reference to `nvdimm_bus_unregister' --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 2/3] libnvdimm: nd_region flush callback support
Hi Pankaj, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.19-rc2 next-20180831] [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/Pankaj-Gupta/kvm-fake-DAX-device/20180903-160032 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ :: branch date: 7 hours ago :: commit date: 7 hours ago drivers/nvdimm/pmem.c:116:25: sparse: expression using sizeof(void) drivers/nvdimm/pmem.c:135:25: sparse: expression using sizeof(void) >> drivers/nvdimm/pmem.c:204:32: sparse: incorrect type in assignment >> (different base types) @@expected restricted blk_status_t [usertype] >> bi_status @@got e] bi_status @@ drivers/nvdimm/pmem.c:204:32:expected restricted blk_status_t [usertype] bi_status drivers/nvdimm/pmem.c:204:32:got int drivers/nvdimm/pmem.c:208:9: sparse: expression using sizeof(void) drivers/nvdimm/pmem.c:208:9: sparse: expression using sizeof(void) include/linux/bvec.h:82:37: sparse: expression using sizeof(void) include/linux/bvec.h:82:37: sparse: expression using sizeof(void) include/linux/bvec.h:83:32: sparse: expression using sizeof(void) include/linux/bvec.h:83:32: sparse: expression using sizeof(void) drivers/nvdimm/pmem.c:220:32: sparse: incorrect type in assignment (different base types) @@expected restricted blk_status_t [usertype] bi_status @@got e] bi_status @@ drivers/nvdimm/pmem.c:220:32:expected restricted blk_status_t [usertype] bi_status drivers/nvdimm/pmem.c:220:32:got int # https://github.com/0day-ci/linux/commit/69b95edd2a1f4676361988fa36866b59427e2cfa git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 69b95edd2a1f4676361988fa36866b59427e2cfa vim +204 drivers/nvdimm/pmem.c 59e647398 drivers/nvdimm/pmem.c Dan Williams 2016-03-08 107 bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 108 static void write_pmem(void *pmem_addr, struct page *page, bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 109 unsigned int off, unsigned int len) bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 110 { 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 111 unsigned int chunk; 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 112 void *mem; bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 113 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 114 while (len) { 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 115 mem = kmap_atomic(page); 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 @116 chunk = min_t(unsigned int, len, PAGE_SIZE); 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 117 memcpy_flushcache(pmem_addr, mem + off, chunk); bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 118 kunmap_atomic(mem); 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 119 len -= chunk; 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 120 off = 0; 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 121 page++; 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 122 pmem_addr += PAGE_SIZE; 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 123 } bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 124 } bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 125 4e4cbee93 drivers/nvdimm/pmem.c Christoph Hellwig 2017-06-03 126 static blk_status_t read_pmem(struct page *page, unsigned int off, bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 127 void *pmem_addr, unsigned int len) bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 128 { 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 129 unsigned int chunk; 60622d682 drivers/nvdimm/pmem.c Dan Williams 2018-05-03 130 unsigned long rem; 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 131 void *mem; bd697a80c drivers/nvdimm/pmem.c Vishal Verma 2016-09-30 132 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 133 while (len) { 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 134 mem = kmap_atomic(page); 98cc093cb drivers/nvdimm/pmem.c Huang Ying2017-09-06 135 chunk = min_t(unsigned int, len, PAGE_SIZE); 60622d682 drivers/nvdimm/pmem.c Dan Williams 2018-05-03 136 rem = memcpy_mcsafe(mem + off, pmem_addr, chunk);
Re: [PATCH 3/3] virtio-pmem: Add virtio pmem driver
Hi Pankaj, Thank you for the patch! Yet something to improve: [auto build test ERROR on linux-nvdimm/libnvdimm-for-next] [also build test ERROR on v4.19-rc2 next-20180903] [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/Pankaj-Gupta/kvm-fake-DAX-device/20180903-160032 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: i386-randconfig-a3-201835 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 :: branch date: 21 hours ago :: commit date: 21 hours ago All errors (new ones prefixed by >>): drivers/virtio/virtio_pmem.o: In function `virtio_pmem_remove': >> drivers/virtio/virtio_pmem.c:220: undefined reference to >> `nvdimm_bus_unregister' drivers/virtio/virtio_pmem.o: In function `virtio_pmem_probe': >> drivers/virtio/virtio_pmem.c:186: undefined reference to >> `nvdimm_bus_register' >> drivers/virtio/virtio_pmem.c:198: undefined reference to >> `nvdimm_pmem_region_create' drivers/virtio/virtio_pmem.c:207: undefined reference to `nvdimm_bus_unregister' # https://github.com/0day-ci/linux/commit/acce2633da18b0ad58d0cc9243a85b03020ca099 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout acce2633da18b0ad58d0cc9243a85b03020ca099 vim +220 drivers/virtio/virtio_pmem.c acce2633 Pankaj Gupta 2018-08-31 147 acce2633 Pankaj Gupta 2018-08-31 148 static int virtio_pmem_probe(struct virtio_device *vdev) acce2633 Pankaj Gupta 2018-08-31 149 { acce2633 Pankaj Gupta 2018-08-31 150 int err = 0; acce2633 Pankaj Gupta 2018-08-31 151 struct resource res; acce2633 Pankaj Gupta 2018-08-31 152 struct virtio_pmem *vpmem; acce2633 Pankaj Gupta 2018-08-31 153 struct nvdimm_bus *nvdimm_bus; acce2633 Pankaj Gupta 2018-08-31 154 struct nd_region_desc ndr_desc; acce2633 Pankaj Gupta 2018-08-31 155 int nid = dev_to_node(>dev); acce2633 Pankaj Gupta 2018-08-31 156 struct nd_region *nd_region; acce2633 Pankaj Gupta 2018-08-31 157 acce2633 Pankaj Gupta 2018-08-31 158 if (!vdev->config->get) { acce2633 Pankaj Gupta 2018-08-31 159 dev_err(>dev, "%s failure: config disabled\n", acce2633 Pankaj Gupta 2018-08-31 160 __func__); acce2633 Pankaj Gupta 2018-08-31 161 return -EINVAL; acce2633 Pankaj Gupta 2018-08-31 162 } acce2633 Pankaj Gupta 2018-08-31 163 acce2633 Pankaj Gupta 2018-08-31 164 vdev->priv = vpmem = devm_kzalloc(>dev, sizeof(*vpmem), acce2633 Pankaj Gupta 2018-08-31 165 GFP_KERNEL); acce2633 Pankaj Gupta 2018-08-31 166 if (!vpmem) { acce2633 Pankaj Gupta 2018-08-31 167 err = -ENOMEM; acce2633 Pankaj Gupta 2018-08-31 168 goto out_err; acce2633 Pankaj Gupta 2018-08-31 169 } acce2633 Pankaj Gupta 2018-08-31 170 acce2633 Pankaj Gupta 2018-08-31 171 vpmem->vdev = vdev; acce2633 Pankaj Gupta 2018-08-31 172 err = init_vq(vpmem); acce2633 Pankaj Gupta 2018-08-31 173 if (err) acce2633 Pankaj Gupta 2018-08-31 174 goto out_err; acce2633 Pankaj Gupta 2018-08-31 175 acce2633 Pankaj Gupta 2018-08-31 176 virtio_cread(vpmem->vdev, struct virtio_pmem_config, acce2633 Pankaj Gupta 2018-08-31 177 start, >start); acce2633 Pankaj Gupta 2018-08-31 178 virtio_cread(vpmem->vdev, struct virtio_pmem_config, acce2633 Pankaj Gupta 2018-08-31 179 size, >size); acce2633 Pankaj Gupta 2018-08-31 180 acce2633 Pankaj Gupta 2018-08-31 181 res.start = vpmem->start; acce2633 Pankaj Gupta 2018-08-31 182 res.end = vpmem->start + vpmem->size-1; acce2633 Pankaj Gupta 2018-08-31 183 vpmem->nd_desc.provider_name = "virtio-pmem"; acce2633 Pankaj Gupta 2018-08-31 184 vpmem->nd_desc.module = THIS_MODULE; acce2633 Pankaj Gupta 2018-08-31 185 acce2633 Pankaj Gupta 2018-08-31 @186 vpmem->nvdimm_bus = nvdimm_bus = nvdimm_bus_register(>dev, acce2633 Pankaj Gupta 2018-08-31 187 >nd_desc); acce2633 Pankaj Gupta 2018-08-31 188 if (!nvdimm_bus) acce2633 Pankaj Gupta 2018-08-31 189 goto out_vq; acce2633 Pankaj Gupta 2018-08-31 190 acce2633 Pankaj Gupta 2018-08-31 191 dev_set_drvdata(>dev, nvdimm_bus); acce2633 Pankaj Gupta 2018-08-31 192 memset(_desc, 0, sizeof(ndr_desc)); acce2633 Pankaj Gupta 2018-08-31 193 acce2633 Pankaj Gupta 2018-08-31 194 ndr_desc.res = acce2633 Pankaj Gupta 2018-08-31 195 ndr_desc.numa_node = nid; acce2633 Pankaj Gupta 2018-08-31 196 ndr_desc.flush = virtio_pmem_flush; acce2633 Pankaj Gupta 2018-08-31 197 set_bit(ND_REGION_PAGEMAP, _desc.flags); acce2633 Pankaj Gupta 2018-08-31 @198 nd_region = nvdimm_pmem_region_create(nvdimm_bus, _desc); acce2633 Pankaj Gupta 2018-08-31 199 acce2633 Pankaj Gupta 2018-08-31 200 if
Re: [PATCH v5 07/11] filesystem-dax: Introduce dax_lock_mapping_entry()
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.18-rc3] [cannot apply to next-20180704] [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/Dan-Williams/device-dax-Convert-to-vmf_insert_mixed-and-vm_fault_t/20180705-075150 config: openrisc-or1ksim_defconfig (attached as .config) compiler: or1k-linux-gcc (GCC) 6.0.0 20160327 (experimental) 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 make.cross ARCH=openrisc All error/warnings (new ones prefixed by >>): In file included from include/linux/mempolicy.h:11:0, from init/main.c:56: include/linux/dax.h: In function 'dax_lock_mapping_entry': include/linux/dax.h:128:15: error: 'page' redeclared as different kind of symbol struct page *page = pfn_to_page(pfn); ^~~~ include/linux/dax.h:126:56: note: previous definition of 'page' was here static inline bool dax_lock_mapping_entry(struct page *page) ^~~~ In file included from arch/openrisc/include/asm/page.h:98:0, from arch/openrisc/include/asm/processor.h:23, from arch/openrisc/include/asm/thread_info.h:26, from include/linux/thread_info.h:38, from include/asm-generic/preempt.h:5, from ./arch/openrisc/include/generated/asm/preempt.h:1, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/linux/stat.h:19, from include/linux/module.h:10, from init/main.c:16: >> include/linux/dax.h:128:34: error: 'pfn' undeclared (first use in this >> function) struct page *page = pfn_to_page(pfn); ^ include/asm-generic/memory_model.h:33:41: note: in definition of macro '__pfn_to_page' #define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET)) ^~~ >> include/linux/dax.h:128:22: note: in expansion of macro 'pfn_to_page' struct page *page = pfn_to_page(pfn); ^~~ include/linux/dax.h:128:34: note: each undeclared identifier is reported only once for each function it appears in struct page *page = pfn_to_page(pfn); ^ include/asm-generic/memory_model.h:33:41: note: in definition of macro '__pfn_to_page' #define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET)) ^~~ >> include/linux/dax.h:128:22: note: in expansion of macro 'pfn_to_page' struct page *page = pfn_to_page(pfn); ^~~ In file included from include/linux/mempolicy.h:11:0, from init/main.c:56: include/linux/dax.h: In function 'dax_lock_page': include/linux/dax.h:141:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ vim +/pfn +128 include/linux/dax.h 124 125 126 static inline bool dax_lock_mapping_entry(struct page *page) 127 { > 128 struct page *page = pfn_to_page(pfn); 129 130 if (IS_DAX(page->mapping->host)) 131 return true; 132 return false; 133 } 134 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v5 07/11] filesystem-dax: Introduce dax_lock_mapping_entry()
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.18-rc3] [cannot apply to next-20180704] [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/Dan-Williams/device-dax-Convert-to-vmf_insert_mixed-and-vm_fault_t/20180705-075150 config: x86_64-acpi-redef (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): In file included from fs/ext2/file.c:24:0: include/linux/dax.h: In function 'dax_lock_mapping_entry': >> include/linux/dax.h:128:15: error: 'page' redeclared as different kind of >> symbol struct page *page = pfn_to_page(pfn); ^~~~ include/linux/dax.h:126:56: note: previous definition of 'page' was here static inline bool dax_lock_mapping_entry(struct page *page) ^~~~ In file included from arch/x86/include/asm/page.h:76:0, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from fs/ext2/file.c:22: >> include/linux/dax.h:128:34: error: 'pfn' undeclared (first use in this >> function); did you mean '__pfn'? struct page *page = pfn_to_page(pfn); ^ include/asm-generic/memory_model.h:69:27: note: in definition of macro '__pfn_to_page' ({ unsigned long __pfn = (pfn); \ ^~~ include/linux/dax.h:128:22: note: in expansion of macro 'pfn_to_page' struct page *page = pfn_to_page(pfn); ^~~ include/linux/dax.h:128:34: note: each undeclared identifier is reported only once for each function it appears in struct page *page = pfn_to_page(pfn); ^ include/asm-generic/memory_model.h:69:27: note: in definition of macro '__pfn_to_page' ({ unsigned long __pfn = (pfn); \ ^~~ include/linux/dax.h:128:22: note: in expansion of macro 'pfn_to_page' struct page *page = pfn_to_page(pfn); ^~~ In file included from fs/ext2/file.c:24:0: include/linux/dax.h: In function 'dax_lock_page': >> include/linux/dax.h:141:1: warning: no return statement in function >> returning non-void [-Wreturn-type] } ^ vim +/page +128 include/linux/dax.h 124 125 126 static inline bool dax_lock_mapping_entry(struct page *page) 127 { > 128 struct page *page = pfn_to_page(pfn); 129 130 if (IS_DAX(page->mapping->host)) 131 return true; 132 return false; 133 } 134 135 void dax_unlock_mapping_entry(struct page *page) 136 { 137 } 138 139 static inline struct page *dax_lock_page(unsigned long pfn) 140 { > 141 } 142 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v6 2/4] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.18-rc3 next-20180704] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180704-121402 config: mips-rb532_defconfig (attached as .config) compiler: mipsel-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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 GCC_VERSION=7.2.0 make.cross ARCH=mips All error/warnings (new ones prefixed by >>): >> arch/mips/pci/pci-rc32434.c:57:11: error: initialization from incompatible >> pointer type [-Werror=incompatible-pointer-types] .child = _res_pci_mem2 ^ arch/mips/pci/pci-rc32434.c:57:11: note: (near initialization for 'rc32434_res_pci_mem1.child.next') >> arch/mips/pci/pci-rc32434.c:51:47: warning: missing braces around >> initializer [-Wmissing-braces] static struct resource rc32434_res_pci_mem1 = { ^ arch/mips/pci/pci-rc32434.c:60:47: warning: missing braces around initializer [-Wmissing-braces] static struct resource rc32434_res_pci_mem2 = { ^ cc1: some warnings being treated as errors vim +57 arch/mips/pci/pci-rc32434.c 73b4390f Ralf Baechle 2008-07-16 50 73b4390f Ralf Baechle 2008-07-16 @51 static struct resource rc32434_res_pci_mem1 = { 73b4390f Ralf Baechle 2008-07-16 52.name = "PCI MEM1", 73b4390f Ralf Baechle 2008-07-16 53.start = 0x5000, 73b4390f Ralf Baechle 2008-07-16 54.end = 0x5FFF, 73b4390f Ralf Baechle 2008-07-16 55.flags = IORESOURCE_MEM, 73b4390f Ralf Baechle 2008-07-16 56.sibling = NULL, 73b4390f Ralf Baechle 2008-07-16 @57.child = _res_pci_mem2 73b4390f Ralf Baechle 2008-07-16 58 }; 73b4390f Ralf Baechle 2008-07-16 59 :: The code at line 57 was first introduced by commit :: 73b4390fb23456964201abda79f1210fe337d01a [MIPS] Routerboard 532: Support for base system :: TO: Ralf Baechle :: CC: Ralf Baechle --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v6 2/4] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.18-rc3 next-20180704] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180704-121402 config: ia64-allnoconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 8.1.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 GCC_VERSION=8.1.0 make.cross ARCH=ia64 All errors (new ones prefixed by >>): arch/ia64/sn/kernel/io_init.c: In function 'sn_io_slot_fixup': >> arch/ia64/sn/kernel/io_init.c:195:19: error: invalid operands to binary && >> (have 'int' and 'struct list_head') if (res->parent && res->parent->child) ~~~ ^~ ~~ vim +195 arch/ia64/sn/kernel/io_init.c ^1da177e Linus Torvalds 2005-04-16 142 3ec829b6 John Keller 2005-11-29 143 /* 6f09a925 John Keller 2007-01-30 144 * sn_io_slot_fixup() - We are not running with an ACPI capable PROM, 8ea6091f John Keller 2006-10-04 145 * and need to convert the pci_dev->resource 8ea6091f John Keller 2006-10-04 146 * 'start' and 'end' addresses to mapped addresses, 8ea6091f John Keller 2006-10-04 147 * and setup the pci_controller->window array entries. ^1da177e Linus Torvalds 2005-04-16 148 */ 8ea6091f John Keller 2006-10-04 149 void 6f09a925 John Keller 2007-01-30 150 sn_io_slot_fixup(struct pci_dev *dev) ^1da177e Linus Torvalds 2005-04-16 151 { ^1da177e Linus Torvalds 2005-04-16 152int idx; ab97b8cc Bjorn Helgaas 2016-03-02 153struct resource *res; 18c25526 Matt Fleming2016-05-04 154unsigned long size; 6f09a925 John Keller 2007-01-30 155struct pcidev_info *pcidev_info; 6f09a925 John Keller 2007-01-30 156struct sn_irq_info *sn_irq_info; 6f09a925 John Keller 2007-01-30 157int status; 6f09a925 John Keller 2007-01-30 158 6f09a925 John Keller 2007-01-30 159pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); 6f09a925 John Keller 2007-01-30 160if (!pcidev_info) d4ed8084 Harvey Harrison 2008-03-04 161panic("%s: Unable to alloc memory for pcidev_info", __func__); 6f09a925 John Keller 2007-01-30 162 6f09a925 John Keller 2007-01-30 163sn_irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); 6f09a925 John Keller 2007-01-30 164if (!sn_irq_info) d4ed8084 Harvey Harrison 2008-03-04 165panic("%s: Unable to alloc memory for sn_irq_info", __func__); 6f09a925 John Keller 2007-01-30 166 6f09a925 John Keller 2007-01-30 167/* Call to retrieve pci device information needed by kernel. */ 6f09a925 John Keller 2007-01-30 168status = sal_get_pcidev_info((u64) pci_domain_nr(dev), 6f09a925 John Keller 2007-01-30 169(u64) dev->bus->number, 6f09a925 John Keller 2007-01-30 170dev->devfn, 6f09a925 John Keller 2007-01-30 171(u64) __pa(pcidev_info), 6f09a925 John Keller 2007-01-30 172(u64) __pa(sn_irq_info)); 6f09a925 John Keller 2007-01-30 173 80a03e29 Stoyan Gaydarov 2009-03-10 174BUG_ON(status); /* Cannot get platform pci device information */ 6f09a925 John Keller 2007-01-30 175 3ec829b6 John Keller 2005-11-29 176 ^1da177e Linus Torvalds 2005-04-16 177/* Copy over PIO Mapped Addresses */ ^1da177e Linus Torvalds 2005-04-16 178for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { ab97b8cc Bjorn Helgaas 2016-03-02 179if (!pcidev_info->pdi_pio_mapped_addr[idx]) ^1da177e Linus Torvalds 2005-04-16 180continue; ^1da177e Linus Torvalds 2005-04-16 181 ab97b8cc Bjorn Helgaas 2016-03-02 182res = >resource[idx]; ab97b8cc Bjorn Helgaas 2016-03-02 183 ab97b8cc Bjorn Helgaas 2016-03-02 184size = res->end - res->start; ab97b8cc Bjorn Helgaas 2016-03-02 185if (size == 0) 3ec829b6 John Keller 2005-11-29 186continue; ab97b8cc Bjorn Helgaas 2016-03-02 187 240504ad Bjorn Helgaas 2016-03-02 188res->start = pcidev_info->pdi_pio_mapped_addr[idx]; 18c25526 Matt Fleming2016-05-04 189res->end = res->start + size; 64715725 Bernhard Walle 2007-03-18 190 64715725 Bernhard Walle 2007-03-18 191/* 64715725 Bernhard Walle 2007-03-18 192 * if it's already in the device structure, remove it before 64715725 Bernhard Walle 2007-03-18
Re: [PATCH v5 2/4] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v4.17 next-20180608] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600 config: x86_64-randconfig-x011-201823 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): kernel/resource.c: In function 'reparent_resources': kernel/resource.c:1005:26: error: passing argument 2 of 'list_add' from incompatible pointer type [-Werror=incompatible-pointer-types] list_add(>sibling, >sibling.prev); ^ In file included from include/linux/ioport.h:15:0, from kernel/resource.c:14: include/linux/list.h:77:20: note: expected 'struct list_head *' but argument is of type 'struct list_head **' static inline void list_add(struct list_head *new, struct list_head *head) ^~~~ In file included from include/linux/list.h:9:0, from include/linux/ioport.h:15, from kernel/resource.c:14: kernel/resource.c:1013:26: error: 'new' undeclared (first use in this function); did you mean 'net'? list_for_each_entry(p, >child, sibling) { ^ include/linux/kernel.h:963:26: note: in definition of macro 'container_of' void *__mptr = (void *)(ptr); \ ^~~ include/linux/list.h:377:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^~ include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^~~~ >> kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(p, >child, sibling) { ^~~ kernel/resource.c:1013:26: note: each undeclared identifier is reported only once for each function it appears in list_for_each_entry(p, >child, sibling) { ^ include/linux/kernel.h:963:26: note: in definition of macro 'container_of' void *__mptr = (void *)(ptr); \ ^~~ include/linux/list.h:377:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^~ include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^~~~ >> kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(p, >child, sibling) { ^~~ cc1: some warnings being treated as errors vim +/list_for_each_entry +1013 kernel/resource.c 983 984 /* 985 * Reparent resource children of pr that conflict with res 986 * under res, and make res replace those children. 987 */ 988 int reparent_resources(struct resource *parent, struct resource *res) 989 { 990 struct resource *p, *first = NULL; 991 992 list_for_each_entry(p, >child, sibling) { 993 if (p->end < res->start) 994 continue; 995 if (res->end < p->start) 996 break; 997 if (p->start < res->start || p->end > res->end) 998 return -1; /* not completely contained */ 999 if (first == NULL) 1000 first = p; 1001 } 1002 if (first == NULL) 1003 return -1; /* didn't find any conflicting entries? */ 1004 res->parent = parent; 1005 list_add(>sibling, >sibling.prev); 1006 INIT_LIST_HEAD(>child); 1007 1008 /* 1009 * From first to p's previous sibling, they all fall into 1010 * res's region, change them as res's children. 1011 */ 1012 list_cut_position(>child, first->sibling.prev, res->sibling.prev); > 1013 list_for_each_entry(p, >child, sibling) { 1014 p->parent = new; 1015 pr_debug("PCI: Reparented %s %pR under %s\n", 1016 p->name, p, res->name); 1017 } 1018 return 0; 1019 } 1020 EXPORT_SYMBOL(reparent_resources); 1021 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org
Re: [PATCH v5 2/4] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17 next-20180608] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600 config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): kernel/resource.c: In function 'reparent_resources': >> kernel/resource.c:1005:26: error: passing argument 2 of 'list_add' from >> incompatible pointer type [-Werror=incompatible-pointer-types] list_add(>sibling, >sibling.prev); ^ In file included from include/linux/ioport.h:15:0, from kernel/resource.c:14: include/linux/list.h:77:20: note: expected 'struct list_head *' but argument is of type 'struct list_head **' static inline void list_add(struct list_head *new, struct list_head *head) ^~~~ In file included from include/linux/list.h:9:0, from include/linux/ioport.h:15, from kernel/resource.c:14: >> kernel/resource.c:1013:26: error: 'new' undeclared (first use in this >> function); did you mean 'net'? list_for_each_entry(p, >child, sibling) { ^ include/linux/kernel.h:963:26: note: in definition of macro 'container_of' void *__mptr = (void *)(ptr); \ ^~~ include/linux/list.h:377:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^~ include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^~~~ kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(p, >child, sibling) { ^~~ kernel/resource.c:1013:26: note: each undeclared identifier is reported only once for each function it appears in list_for_each_entry(p, >child, sibling) { ^ include/linux/kernel.h:963:26: note: in definition of macro 'container_of' void *__mptr = (void *)(ptr); \ ^~~ include/linux/list.h:377:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^~ include/linux/list.h:464:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^~~~ kernel/resource.c:1013:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(p, >child, sibling) { ^~~ cc1: some warnings being treated as errors vim +/list_add +1005 kernel/resource.c 983 984 /* 985 * Reparent resource children of pr that conflict with res 986 * under res, and make res replace those children. 987 */ 988 int reparent_resources(struct resource *parent, struct resource *res) 989 { 990 struct resource *p, *first = NULL; 991 992 list_for_each_entry(p, >child, sibling) { 993 if (p->end < res->start) 994 continue; 995 if (res->end < p->start) 996 break; 997 if (p->start < res->start || p->end > res->end) 998 return -1; /* not completely contained */ 999 if (first == NULL) 1000 first = p; 1001 } 1002 if (first == NULL) 1003 return -1; /* didn't find any conflicting entries? */ 1004 res->parent = parent; > 1005 list_add(>sibling, >sibling.prev); 1006 INIT_LIST_HEAD(>child); 1007 1008 /* 1009 * From first to p's previous sibling, they all fall into 1010 * res's region, change them as res's children. 1011 */ 1012 list_cut_position(>child, first->sibling.prev, res->sibling.prev); > 1013 list_for_each_entry(p, >child, sibling) { 1014 p->parent = new; 1015 pr_debug("PCI: Reparented %s %pR under %s\n", 1016 p->name, p, res->name); 1017 } 1018 return 0; 1019 } 1020 EXPORT_SYMBOL(reparent_resources); 1021 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v5 1/4] resource: Move reparent_resources() to kernel/resource.c and make it public
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17 next-20180608] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600 config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: the linux-review/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180612-113600 HEAD 5545e79eef6387857faf41cdffa7be6b1f5d4efe builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): >> kernel/resource.c:990:12: error: static declaration of 'reparent_resources' >> follows non-static declaration static int reparent_resources(struct resource *parent, ^~ In file included from kernel/resource.c:14:0: include/linux/ioport.h:195:5: note: previous declaration of 'reparent_resources' was here int reparent_resources(struct resource *parent, struct resource *res); ^~ kernel/resource.c:990:12: warning: 'reparent_resources' defined but not used [-Wunused-function] static int reparent_resources(struct resource *parent, ^~ vim +/reparent_resources +990 kernel/resource.c 985 986 /* 987 * Reparent resource children of pr that conflict with res 988 * under res, and make res replace those children. 989 */ > 990 static int reparent_resources(struct resource *parent, 991 struct resource *res) 992 { 993 struct resource *p, **pp; 994 struct resource **firstpp = NULL; 995 996 for (pp = >child; (p = *pp) != NULL; pp = >sibling) { 997 if (p->end < res->start) 998 continue; 999 if (res->end < p->start) 1000 break; 1001 if (p->start < res->start || p->end > res->end) 1002 return -1; /* not completely contained */ 1003 if (firstpp == NULL) 1004 firstpp = pp; 1005 } 1006 if (firstpp == NULL) 1007 return -1; /* didn't find any conflicting entries? */ 1008 res->parent = parent; 1009 res->child = *firstpp; 1010 res->sibling = *pp; 1011 *firstpp = res; 1012 *pp = NULL; 1013 for (p = res->child; p != NULL; p = p->sibling) { 1014 p->parent = res; 1015 pr_debug("PCI: Reparented %s %pR under %s\n", 1016 p->name, p, res->name); 1017 } 1018 return 0; 1019 } 1020 EXPORT_SYMBOL(reparent_resources); 1021 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 03/11] device-dax: enable page_mapping()
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc7 next-20180530] [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/Dan-Williams/mm-Teach-memory_failure-about-ZONE_DEVICE-pages/20180525-035652 config: arm64-allmodconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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 make.cross ARCH=arm64 All errors (new ones prefixed by >>): drivers//dax/device.c: In function 'dev_dax_huge_fault': >> drivers//dax/device.c:413:8: error: too many arguments to function >> '__dev_dax_pud_fault' rc = __dev_dax_pud_fault(dev_dax, vmf, ); ^~~ drivers//dax/device.c:380:19: note: declared here static vm_fault_t __dev_dax_pud_fault(struct dev_dax *dev_dax, ^~~ vim +/__dev_dax_pud_fault +413 drivers//dax/device.c 386 387 static vm_fault_t dev_dax_huge_fault(struct vm_fault *vmf, 388 enum page_entry_size pe_size) 389 { 390 struct vm_area_struct *vma = vmf->vma; 391 struct file *filp = vma->vm_file; 392 unsigned long fault_size; 393 int rc, id; 394 pfn_t pfn; 395 struct dev_dax *dev_dax = filp->private_data; 396 397 dev_dbg(_dax->dev, "%s: %s (%#lx - %#lx) size = %d\n", current->comm, 398 (vmf->flags & FAULT_FLAG_WRITE) ? "write" : "read", 399 vma->vm_start, vma->vm_end, pe_size); 400 401 id = dax_read_lock(); 402 switch (pe_size) { 403 case PE_SIZE_PTE: 404 fault_size = PAGE_SIZE; 405 rc = __dev_dax_pte_fault(dev_dax, vmf, ); 406 break; 407 case PE_SIZE_PMD: 408 fault_size = PMD_SIZE; 409 rc = __dev_dax_pmd_fault(dev_dax, vmf, ); 410 break; 411 case PE_SIZE_PUD: 412 fault_size = PUD_SIZE; > 413 rc = __dev_dax_pud_fault(dev_dax, vmf, ); 414 break; 415 default: 416 rc = VM_FAULT_SIGBUS; 417 } 418 419 if (rc == VM_FAULT_NOPAGE) { 420 unsigned long i; 421 422 for (i = 0; i < fault_size / PAGE_SIZE; i++) { 423 struct page *page; 424 425 page = pfn_to_page(pfn_t_to_pfn(pfn) + i); 426 if (page->mapping) 427 continue; 428 page->mapping = filp->f_mapping; 429 } 430 } 431 dax_read_unlock(id); 432 433 return rc; 434 } 435 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 1/7] fs: allow per-device dax status checking for filesystems
Hi Darrick, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc6] [cannot apply to dm/for-next] [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/Ross-Zwisler/Fix-DM-DAX-handling/20180526-212746 config: i386-randconfig-x014-201820 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): >> drivers//dax/super.c:85:5: error: redefinition of 'bdev_dax_supported' int bdev_dax_supported(struct block_device *bdev, int blocksize) ^~ In file included from drivers//dax/super.c:23:0: include/linux/dax.h:82:19: note: previous definition of 'bdev_dax_supported' was here static inline int bdev_dax_supported(struct block_device *bdev, ^~ vim +/bdev_dax_supported +85 drivers//dax/super.c 74 75 /** 76 * bdev_dax_supported() - Check if the device supports dax for filesystem 77 * @bdev: block device to check 78 * @blocksize: The block size of the device 79 * 80 * This is a library function for filesystems to check if the block device 81 * can be mounted with dax option. 82 * 83 * Return: negative errno if unsupported, 0 if supported. 84 */ > 85 int bdev_dax_supported(struct block_device *bdev, int blocksize) 86 { 87 struct dax_device *dax_dev; 88 pgoff_t pgoff; 89 int err, id; 90 void *kaddr; 91 pfn_t pfn; 92 long len; 93 char buf[BDEVNAME_SIZE]; 94 95 if (blocksize != PAGE_SIZE) { 96 pr_debug("%s: error: unsupported blocksize for dax\n", 97 bdevname(bdev, buf)); 98 return -EINVAL; 99 } 100 101 err = bdev_dax_pgoff(bdev, 0, PAGE_SIZE, ); 102 if (err) { 103 pr_debug("%s: error: unaligned partition for dax\n", 104 bdevname(bdev, buf)); 105 return err; 106 } 107 108 dax_dev = dax_get_by_host(bdev->bd_disk->disk_name); 109 if (!dax_dev) { 110 pr_debug("%s: error: device does not support dax\n", 111 bdevname(bdev, buf)); 112 return -EOPNOTSUPP; 113 } 114 115 id = dax_read_lock(); 116 len = dax_direct_access(dax_dev, pgoff, 1, , ); 117 dax_read_unlock(id); 118 119 put_dax(dax_dev); 120 121 if (len < 1) { 122 pr_debug("%s: error: dax access failed (%ld)\n", 123 bdevname(bdev, buf), len); 124 return len < 0 ? len : -EIO; 125 } 126 127 if (IS_ENABLED(CONFIG_FS_DAX_LIMITED) && pfn_t_special(pfn)) { 128 /* 129 * An arch that has enabled the pmem api should also 130 * have its drivers support pfn_t_devmap() 131 * 132 * This is a developer warning and should not trigger in 133 * production. dax_flush() will crash since it depends 134 * on being able to do (page_address(pfn_to_page())). 135 */ 136 WARN_ON(IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API)); 137 } else if (pfn_t_devmap(pfn)) { 138 /* pass */; 139 } else { 140 pr_debug("%s: error: dax support not enabled\n", 141 bdevname(bdev, buf)); 142 return -EOPNOTSUPP; 143 } 144 145 return 0; 146 } 147 EXPORT_SYMBOL_GPL(bdev_dax_supported); 148 #endif 149 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v4 1/3] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc4 next-20180504] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180507-144345 config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.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 make.cross ARCH=arm All errors (new ones prefixed by >>): arch/arm/plat-samsung/pm-check.c: In function 's3c_pm_run_res': >> arch/arm/plat-samsung/pm-check.c:49:18: error: invalid operands to binary != >> (have 'struct list_head' and 'void *') if (ptr->child != NULL) ~~ ^~ >> arch/arm/plat-samsung/pm-check.c:50:19: error: incompatible type for >> argument 1 of 's3c_pm_run_res' s3c_pm_run_res(ptr->child, fn, arg); ^~~ arch/arm/plat-samsung/pm-check.c:46:13: note: expected 'struct resource *' but argument is of type 'struct list_head' static void s3c_pm_run_res(struct resource *ptr, run_fn_t fn, u32 *arg) ^~ >> arch/arm/plat-samsung/pm-check.c:60:7: error: incompatible types when >> assigning to type 'struct resource *' from type 'struct list_head' ptr = ptr->sibling; ^ vim +49 arch/arm/plat-samsung/pm-check.c 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 45 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 46 static void s3c_pm_run_res(struct resource *ptr, run_fn_t fn, u32 *arg) 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 47 { 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 48 while (ptr != NULL) { 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 @49 if (ptr->child != NULL) 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 @50 s3c_pm_run_res(ptr->child, fn, arg); 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 51 05fee7cf arch/arm/plat-samsung/pm-check.c Toshi Kani 2016-01-26 52 if ((ptr->flags & IORESOURCE_SYSTEM_RAM) 05fee7cf arch/arm/plat-samsung/pm-check.c Toshi Kani 2016-01-26 53 == IORESOURCE_SYSTEM_RAM) { 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 54 S3C_PMDBG("Found system RAM at %08lx..%08lx\n", 840eeeb8 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 55 (unsigned long)ptr->start, 840eeeb8 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 56 (unsigned long)ptr->end); 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 57 arg = (fn)(ptr, arg); 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 58 } 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 59 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 @60 ptr = ptr->sibling; 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 61 } 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 62 } 549c7e33 arch/arm/plat-s3c/pm-check.c Ben Dooks 2008-12-12 63 :: The code at line 49 was first introduced by commit :: 549c7e33aeb9bfe441ecf68639d2227bb90978e7 [ARM] S3C: Split the resume memory check code from pm.c :: TO: Ben Dooks:: CC: Ben Dooks --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v4 1/3] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc4 next-20180504] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180507-144345 config: powerpc-defconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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 make.cross ARCH=powerpc All errors (new ones prefixed by >>): arch/powerpc/kernel/pci-common.c: In function 'pci_process_bridge_OF_ranges': >> arch/powerpc/kernel/pci-common.c:764:44: error: incompatible types when >> assigning to type 'struct list_head' from type 'void *' res->parent = res->child = res->sibling = NULL; ^ arch/powerpc/kernel/pci-common.c: In function 'reparent_resources': >> arch/powerpc/kernel/pci-common.c:1100:10: error: assignment from >> incompatible pointer type [-Werror=incompatible-pointer-types] for (pp = >child; (p = *pp) != NULL; pp = >sibling) { ^ arch/powerpc/kernel/pci-common.c:1100:50: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] for (pp = >child; (p = *pp) != NULL; pp = >sibling) { ^ >> arch/powerpc/kernel/pci-common.c:1113:13: error: incompatible types when >> assigning to type 'struct list_head' from type 'struct resource *' res->child = *firstpp; ^ arch/powerpc/kernel/pci-common.c:1114:15: error: incompatible types when assigning to type 'struct list_head' from type 'struct resource *' res->sibling = *pp; ^ >> arch/powerpc/kernel/pci-common.c:1117:9: error: incompatible types when >> assigning to type 'struct resource *' from type 'struct list_head' for (p = res->child; p != NULL; p = p->sibling) { ^ arch/powerpc/kernel/pci-common.c:1117:36: error: incompatible types when assigning to type 'struct resource *' from type 'struct list_head' for (p = res->child; p != NULL; p = p->sibling) { ^ cc1: all warnings being treated as errors vim +764 arch/powerpc/kernel/pci-common.c 13dccb9e Benjamin Herrenschmidt 2007-12-11 642 13dccb9e Benjamin Herrenschmidt 2007-12-11 643 /** 13dccb9e Benjamin Herrenschmidt 2007-12-11 644 * pci_process_bridge_OF_ranges - Parse PCI bridge resources from device tree 13dccb9e Benjamin Herrenschmidt 2007-12-11 645 * @hose: newly allocated pci_controller to be setup 13dccb9e Benjamin Herrenschmidt 2007-12-11 646 * @dev: device node of the host bridge 13dccb9e Benjamin Herrenschmidt 2007-12-11 647 * @primary: set if primary bus (32 bits only, soon to be deprecated) 13dccb9e Benjamin Herrenschmidt 2007-12-11 648 * 13dccb9e Benjamin Herrenschmidt 2007-12-11 649 * This function will parse the "ranges" property of a PCI host bridge device 13dccb9e Benjamin Herrenschmidt 2007-12-11 650 * node and setup the resource mapping of a pci controller based on its 13dccb9e Benjamin Herrenschmidt 2007-12-11 651 * content. 13dccb9e Benjamin Herrenschmidt 2007-12-11 652 * 13dccb9e Benjamin Herrenschmidt 2007-12-11 653 * Life would be boring if it wasn't for a few issues that we have to deal 13dccb9e Benjamin Herrenschmidt 2007-12-11 654 * with here: 13dccb9e Benjamin Herrenschmidt 2007-12-11 655 * 13dccb9e Benjamin Herrenschmidt 2007-12-11 656 * - We can only cope with one IO space range and up to 3 Memory space 13dccb9e Benjamin Herrenschmidt 2007-12-11 657 * ranges. However, some machines (thanks Apple !) tend to split their 13dccb9e Benjamin Herrenschmidt 2007-12-11 658 * space into lots of small contiguous ranges. So we have to coalesce. 13dccb9e Benjamin Herrenschmidt 2007-12-11 659 * 13dccb9e Benjamin Herrenschmidt 2007-12-11 660 * - Some busses have IO space not starting at 0, which causes trouble with 13dccb9e Benjamin Herrenschmidt 2007-12-11 661 * the way we do our IO resource renumbering. The code somewhat deals with 13dccb9e Benjamin Herrenschmidt 2007-12-11 662 * it for 64 bits but I would expect problems on 32 bits. 13dccb9e Benjamin Herrenschmidt 2007-12-11 663 * 13dccb9e Benjamin Herrenschmidt 2007-12-11 664 * - Some 32 bits platforms such as 4xx can have physical space larger than 13dccb9e Benjamin Herrenschmidt 2007-12-11 665 * 32 bits so we need to use 64 bits values for the parsing 13dccb9e Benjamin Herrenschmidt 2007-12-11 666 */ cad5cef6 Greg Kroah-Hartman 2012-12-21 667 void pci_process_bridge_OF_ranges(struct pci_controller *hose, cad5cef6
Re: [PATCH 4/6] x86, memcpy_mcsafe: define copy_to_iter_mcsafe()
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc3 next-20180501] [cannot apply to tip/x86/core] [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/Dan-Williams/use-memcpy_mcsafe-for-copy_to_iter/20180502-045742 config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): lib/iov_iter.c: In function 'copyout_mcsafe': >> lib/iov_iter.c:146:7: error: implicit declaration of function >> 'copy_to_user_mcsafe'; did you mean 'copy_to_iter_mcsafe'? >> [-Werror=implicit-function-declaration] n = copy_to_user_mcsafe((__force void *) to, from, n); ^~~ copy_to_iter_mcsafe cc1: some warnings being treated as errors vim +146 lib/iov_iter.c 141 142 static int copyout_mcsafe(void __user *to, const void *from, size_t n) 143 { 144 if (access_ok(VERIFY_WRITE, to, n)) { 145 kasan_check_read(from, n); > 146 n = copy_to_user_mcsafe((__force void *) to, from, n); 147 } 148 return n; 149 } 150 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v3 1/3] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.17-rc2 next-20180424] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180419-223752 config: microblaze-mmu_defconfig (attached as .config) compiler: microblaze-linux-gcc (GCC) 7.2.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 make.cross ARCH=microblaze All errors (new ones prefixed by >>): arch/microblaze/pci/pci-common.c: In function 'pci_process_bridge_OF_ranges': >> arch/microblaze/pci/pci-common.c:536:44: error: incompatible types when >> assigning to type 'struct list_head' from type 'void *' res->parent = res->child = res->sibling = NULL; ^ arch/microblaze/pci/pci-common.c: In function 'reparent_resources': >> arch/microblaze/pci/pci-common.c:631:10: error: assignment from incompatible >> pointer type [-Werror=incompatible-pointer-types] for (pp = >child; (p = *pp) != NULL; pp = >sibling) { ^ arch/microblaze/pci/pci-common.c:631:50: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] for (pp = >child; (p = *pp) != NULL; pp = >sibling) { ^ >> arch/microblaze/pci/pci-common.c:644:13: error: incompatible types when >> assigning to type 'struct list_head' from type 'struct resource *' res->child = *firstpp; ^ arch/microblaze/pci/pci-common.c:645:15: error: incompatible types when assigning to type 'struct list_head' from type 'struct resource *' res->sibling = *pp; ^ >> arch/microblaze/pci/pci-common.c:648:9: error: incompatible types when >> assigning to type 'struct resource *' from type 'struct list_head' for (p = res->child; p != NULL; p = p->sibling) { ^ arch/microblaze/pci/pci-common.c:648:36: error: incompatible types when assigning to type 'struct resource *' from type 'struct list_head' for (p = res->child; p != NULL; p = p->sibling) { ^ cc1: some warnings being treated as errors vim +536 arch/microblaze/pci/pci-common.c d3afa58c Michal Simek2010-01-18 387 d3afa58c Michal Simek2010-01-18 388 /** d3afa58c Michal Simek2010-01-18 389 * pci_process_bridge_OF_ranges - Parse PCI bridge resources from device tree d3afa58c Michal Simek2010-01-18 390 * @hose: newly allocated pci_controller to be setup d3afa58c Michal Simek2010-01-18 391 * @dev: device node of the host bridge d3afa58c Michal Simek2010-01-18 392 * @primary: set if primary bus (32 bits only, soon to be deprecated) d3afa58c Michal Simek2010-01-18 393 * d3afa58c Michal Simek2010-01-18 394 * This function will parse the "ranges" property of a PCI host bridge device d3afa58c Michal Simek2010-01-18 395 * node and setup the resource mapping of a pci controller based on its d3afa58c Michal Simek2010-01-18 396 * content. d3afa58c Michal Simek2010-01-18 397 * d3afa58c Michal Simek2010-01-18 398 * Life would be boring if it wasn't for a few issues that we have to deal d3afa58c Michal Simek2010-01-18 399 * with here: d3afa58c Michal Simek2010-01-18 400 * d3afa58c Michal Simek2010-01-18 401 * - We can only cope with one IO space range and up to 3 Memory space d3afa58c Michal Simek2010-01-18 402 * ranges. However, some machines (thanks Apple !) tend to split their d3afa58c Michal Simek2010-01-18 403 * space into lots of small contiguous ranges. So we have to coalesce. d3afa58c Michal Simek2010-01-18 404 * d3afa58c Michal Simek2010-01-18 405 * - We can only cope with all memory ranges having the same offset d3afa58c Michal Simek2010-01-18 406 * between CPU addresses and PCI addresses. Unfortunately, some bridges d3afa58c Michal Simek2010-01-18 407 * are setup for a large 1:1 mapping along with a small "window" which d3afa58c Michal Simek2010-01-18 408 * maps PCI address 0 to some arbitrary high address of the CPU space in d3afa58c Michal Simek2010-01-18 409 * order to give access to the ISA memory hole. d3afa58c Michal Simek2010-01-18 410 * The way out of here that I've chosen for now is to always set the d3afa58c Michal Simek2010-01-18 411 * offset based on the first resource found, then override it if we d3afa58c Michal Simek2010-01-18 412 * have a different offset
Re: [PATCH v2 1/3] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16 next-20180406] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180408-110108 config: sparc-defconfig (attached as .config) compiler: sparc-linux-gcc (GCC) 7.2.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 make.cross ARCH=sparc All errors (new ones prefixed by >>): arch/sparc/kernel/ioport.c: In function 'sparc_io_proc_show': >> arch/sparc/kernel/ioport.c:672:9: error: incompatible types when assigning >> to type 'struct resource *' from type 'struct list_head' for (r = root->child; r != NULL; r = r->sibling) { ^ arch/sparc/kernel/ioport.c:672:37: error: incompatible types when assigning to type 'struct resource *' from type 'struct list_head' for (r = root->child; r != NULL; r = r->sibling) { ^ vim +672 arch/sparc/kernel/ioport.c ^1da177e4 Linus Torvalds 2005-04-16 666 e7a088f93 Alexey Dobriyan2009-09-01 667 static int sparc_io_proc_show(struct seq_file *m, void *v) ^1da177e4 Linus Torvalds 2005-04-16 668 { e7a088f93 Alexey Dobriyan2009-09-01 669struct resource *root = m->private, *r; ^1da177e4 Linus Torvalds 2005-04-16 670const char *nm; ^1da177e4 Linus Torvalds 2005-04-16 671 e7a088f93 Alexey Dobriyan2009-09-01 @672for (r = root->child; r != NULL; r = r->sibling) { c31f76518 Sam Ravnborg 2014-04-21 673if ((nm = r->name) == NULL) nm = "???"; e7a088f93 Alexey Dobriyan2009-09-01 674seq_printf(m, "%016llx-%016llx: %s\n", 685143ac1 Greg Kroah-Hartman 2006-06-12 675 (unsigned long long)r->start, 685143ac1 Greg Kroah-Hartman 2006-06-12 676 (unsigned long long)r->end, nm); ^1da177e4 Linus Torvalds 2005-04-16 677} ^1da177e4 Linus Torvalds 2005-04-16 678 e7a088f93 Alexey Dobriyan2009-09-01 679return 0; ^1da177e4 Linus Torvalds 2005-04-16 680 } ^1da177e4 Linus Torvalds 2005-04-16 681 :: The code at line 672 was first introduced by commit :: e7a088f935180b90cfe6ab0aaae8a556f46885fe sparc: convert /proc/io_map, /proc/dvma_map to seq_file :: TO: Alexey Dobriyan:: CC: David S. Miller --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v2 1/3] resource: Use list_head to link sibling resource
Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16 next-20180406] [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/Baoquan-He/resource-Use-list_head-to-link-sibling-resource/20180408-110108 config: parisc-c3000_defconfig (attached as .config) compiler: hppa-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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 make.cross ARCH=parisc All errors (new ones prefixed by >>): drivers//parisc/lba_pci.c: In function 'lba_dump_res': >> drivers//parisc/lba_pci.c:173:15: error: incompatible type for argument 1 of >> 'lba_dump_res' lba_dump_res(r->child, d+2); ^ drivers//parisc/lba_pci.c:162:1: note: expected 'struct resource *' but argument is of type 'struct list_head' lba_dump_res(struct resource *r, int d) ^~~~ drivers//parisc/lba_pci.c:174:15: error: incompatible type for argument 1 of 'lba_dump_res' lba_dump_res(r->sibling, d); ^ drivers//parisc/lba_pci.c:162:1: note: expected 'struct resource *' but argument is of type 'struct list_head' lba_dump_res(struct resource *r, int d) ^~~~ vim +/lba_dump_res +173 drivers//parisc/lba_pci.c ^1da177e Linus Torvalds 2005-04-16 159 ^1da177e Linus Torvalds 2005-04-16 160 ^1da177e Linus Torvalds 2005-04-16 161 static void ^1da177e Linus Torvalds 2005-04-16 162 lba_dump_res(struct resource *r, int d) ^1da177e Linus Torvalds 2005-04-16 163 { ^1da177e Linus Torvalds 2005-04-16 164 int i; ^1da177e Linus Torvalds 2005-04-16 165 ^1da177e Linus Torvalds 2005-04-16 166 if (NULL == r) ^1da177e Linus Torvalds 2005-04-16 167 return; ^1da177e Linus Torvalds 2005-04-16 168 ^1da177e Linus Torvalds 2005-04-16 169 printk(KERN_DEBUG "(%p)", r->parent); ^1da177e Linus Torvalds 2005-04-16 170 for (i = d; i ; --i) printk(" "); 645d11d4 Matthew Wilcox 2006-12-24 171 printk(KERN_DEBUG "%p [%lx,%lx]/%lx\n", r, 645d11d4 Matthew Wilcox 2006-12-24 172 (long)r->start, (long)r->end, r->flags); ^1da177e Linus Torvalds 2005-04-16 @173 lba_dump_res(r->child, d+2); ^1da177e Linus Torvalds 2005-04-16 174 lba_dump_res(r->sibling, d); ^1da177e Linus Torvalds 2005-04-16 175 } ^1da177e Linus Torvalds 2005-04-16 176 :: The code at line 173 was first introduced by commit :: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :: TO: Linus Torvalds:: CC: Linus Torvalds --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[linux-nvdimm:libnvdimm-for-next 49/56] fs/ext4/super.c:955: undefined reference to `fs_dax_release'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: c2638e7534a1bfca30284b46a29bda820dc16b97 commit: f9c63b454621fc2a0d73b387c8bf6122c4e84d39 [49/56] mm, dev_pagemap: introduce CONFIG_DEV_PAGEMAP_OPS config: x86_64-randconfig-r0-04022007 (attached as .config) compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026 reproduce: git checkout f9c63b454621fc2a0d73b387c8bf6122c4e84d39 # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): fs/ext4/super.o: In function `ext4_put_super': >> fs/ext4/super.c:955: undefined reference to `fs_dax_release' fs/ext4/super.o: In function `fs_dax_claim_bdev': >> include/linux/dax.h:132: undefined reference to `fs_dax_claim' fs/ext4/super.o: In function `ext4_fill_super': fs/ext4/super.c:4411: undefined reference to `fs_dax_release' fs/xfs/xfs_super.o: In function `fs_dax_claim_bdev': >> include/linux/dax.h:132: undefined reference to `fs_dax_claim' fs/xfs/xfs_super.o: In function `xfs_open_devices': >> fs/xfs/xfs_super.c:816: undefined reference to `fs_dax_release' fs/xfs/xfs_super.c:820: undefined reference to `fs_dax_release' fs/xfs/xfs_super.c:823: undefined reference to `fs_dax_release' fs/xfs/xfs_super.o: In function `xfs_close_devices': fs/xfs/xfs_super.c:727: undefined reference to `fs_dax_release' fs/xfs/xfs_super.c:735: undefined reference to `fs_dax_release' fs/xfs/xfs_super.o:fs/xfs/xfs_super.c:738: more undefined references to `fs_dax_release' follow vim +955 fs/ext4/super.c ac27a0ec1 Dave Kleikamp 2006-10-11 913 ac27a0ec1 Dave Kleikamp 2006-10-11 914 /* Debugging code just in case the in-memory inode orphan list ac27a0ec1 Dave Kleikamp 2006-10-11 915 * isn't empty. The on-disk one can be non-empty if we've ac27a0ec1 Dave Kleikamp 2006-10-11 916 * detected an error and taken the fs readonly, but the ac27a0ec1 Dave Kleikamp 2006-10-11 917 * in-memory list had better be clean by this point. */ ac27a0ec1 Dave Kleikamp 2006-10-11 918 if (!list_empty(>s_orphan)) ac27a0ec1 Dave Kleikamp 2006-10-11 919 dump_orphan_list(sb, sbi); ac27a0ec1 Dave Kleikamp 2006-10-11 920 J_ASSERT(list_empty(>s_orphan)); ac27a0ec1 Dave Kleikamp 2006-10-11 921 89d96a6f8 Theodore Ts'o 2015-06-20 922 sync_blockdev(sb->s_bdev); f98393a64 Peter Zijlstra2007-05-06 923 invalidate_bdev(sb->s_bdev); ac27a0ec1 Dave Kleikamp 2006-10-11 924 if (sbi->journal_bdev && sbi->journal_bdev != sb->s_bdev) { ac27a0ec1 Dave Kleikamp 2006-10-11 925 /* ac27a0ec1 Dave Kleikamp 2006-10-11 926 * Invalidate the journal device's buffers. We don't want them ac27a0ec1 Dave Kleikamp 2006-10-11 927 * floating about in memory - the physical journal device may ac27a0ec1 Dave Kleikamp 2006-10-11 928 * hotswapped, and it breaks the `ro-after' testing code. ac27a0ec1 Dave Kleikamp 2006-10-11 929 */ ac27a0ec1 Dave Kleikamp 2006-10-11 930 sync_blockdev(sbi->journal_bdev); f98393a64 Peter Zijlstra2007-05-06 931 invalidate_bdev(sbi->journal_bdev); 617ba13b3 Mingming Cao 2006-10-11 932 ext4_blkdev_remove(sbi); ac27a0ec1 Dave Kleikamp 2006-10-11 933 } dec214d00 Tahsin Erdogan2017-06-22 934 if (sbi->s_ea_inode_cache) { dec214d00 Tahsin Erdogan2017-06-22 935 ext4_xattr_destroy_cache(sbi->s_ea_inode_cache); dec214d00 Tahsin Erdogan2017-06-22 936 sbi->s_ea_inode_cache = NULL; dec214d00 Tahsin Erdogan2017-06-22 937 } 47387409e Tahsin Erdogan2017-06-22 938 if (sbi->s_ea_block_cache) { 47387409e Tahsin Erdogan2017-06-22 939 ext4_xattr_destroy_cache(sbi->s_ea_block_cache); 47387409e Tahsin Erdogan2017-06-22 940 sbi->s_ea_block_cache = NULL; 9c191f701 T Makphaibulchoke 2014-03-18 941 } c5e06d101 Johann Lombardi 2011-05-24 942 if (sbi->s_mmp_tsk) c5e06d101 Johann Lombardi 2011-05-24 943 kthread_stop(sbi->s_mmp_tsk); 9060dd2c5 Eric Sandeen 2016-11-26 944 brelse(sbi->s_sbh); ac27a0ec1 Dave Kleikamp 2006-10-11 945 sb->s_fs_info = NULL; 3197ebdb1 Theodore Ts'o 2009-03-31 946 /* 3197ebdb1 Theodore Ts'o 2009-03-31 947 * Now that we are completely done shutting down the 3197ebdb1 Theodore Ts'o 2009-03-31 948 * superblock, we need to actually destroy the kobject. 3197ebdb1 Theodore Ts'o 2009-03-31 949 */ 3197ebdb1 Theodore Ts'o 2009-03-31 950 kobject_put(>s_kobj); 3197ebdb1 Theodore Ts'o 2009-03-31 951 wait_for_completion(>s_kobj_unregister); 0441984a3 Darrick J. Wong 2012-04-29 952 if (sbi->s_chksum_driver) 0441984a3 Darrick J. Wong 2012-04-29 953 crypto_free_shash(sbi->s_chksum_driver); 705895b61
[linux-nvdimm:libnvdimm-for-next 49/56] drivers//dax/super.c:209:44: error: dereferencing pointer to incomplete type
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: 4f2e6ecbd1cb397d65ead8aab4fd4d05fcbfeaff commit: 45d0fd3c767f81356f880be9a8893bb12a39488a [49/56] mm, dev_pagemap: introduce CONFIG_DEV_PAGEMAP_OPS config: x86_64-randconfig-g0-04011906 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: git checkout 45d0fd3c767f81356f880be9a8893bb12a39488a # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers//dax/super.c: In function 'fs_dax_claim_bdev': drivers//dax/super.c:207:2: error: implicit declaration of function 'blk_queue_dax' [-Werror=implicit-function-declaration] if (!blk_queue_dax(bdev->bd_queue)) ^ >> drivers//dax/super.c:209:44: error: dereferencing pointer to incomplete type dax_dev = fs_dax_get_by_host(bdev->bd_disk->disk_name); ^ cc1: some warnings being treated as errors vim +209 drivers//dax/super.c b42158bb Dan Williams 2018-03-29 202 b42158bb Dan Williams 2018-03-29 203 struct dax_device *fs_dax_claim_bdev(struct block_device *bdev, void *owner) b42158bb Dan Williams 2018-03-29 204 { b42158bb Dan Williams 2018-03-29 205 struct dax_device *dax_dev; b42158bb Dan Williams 2018-03-29 206 b42158bb Dan Williams 2018-03-29 @207 if (!blk_queue_dax(bdev->bd_queue)) b42158bb Dan Williams 2018-03-29 208 return NULL; b42158bb Dan Williams 2018-03-29 @209 dax_dev = fs_dax_get_by_host(bdev->bd_disk->disk_name); b42158bb Dan Williams 2018-03-29 210 if (dax_dev->ops->fs_claim) b42158bb Dan Williams 2018-03-29 211 return dax_dev->ops->fs_claim(dax_dev, owner); b42158bb Dan Williams 2018-03-29 212 else b42158bb Dan Williams 2018-03-29 213 return fs_dax_claim(dax_dev, owner); b42158bb Dan Williams 2018-03-29 214 } b42158bb Dan Williams 2018-03-29 215 EXPORT_SYMBOL_GPL(fs_dax_claim_bdev); b42158bb Dan Williams 2018-03-29 216 :: The code at line 209 was first introduced by commit :: b42158bb23c9db316c12e3b3845ef01d41013314 dax, dm: introduce ->fs_{claim,release}() dax_device infrastructure :: TO: Dan Williams:: CC: Dan Williams --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[linux-nvdimm:libnvdimm-for-next 49/56] drivers//dax/super.c:207:7: error: implicit declaration of function 'blk_queue_dax'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: 4f2e6ecbd1cb397d65ead8aab4fd4d05fcbfeaff commit: 45d0fd3c767f81356f880be9a8893bb12a39488a [49/56] mm, dev_pagemap: introduce CONFIG_DEV_PAGEMAP_OPS config: x86_64-randconfig-s4-04010854 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: git checkout 45d0fd3c767f81356f880be9a8893bb12a39488a # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers//dax/super.c: In function 'fs_dax_claim_bdev': >> drivers//dax/super.c:207:7: error: implicit declaration of function >> 'blk_queue_dax' [-Werror=implicit-function-declaration] if (!blk_queue_dax(bdev->bd_queue)) ^ drivers//dax/super.c:209:44: error: dereferencing pointer to incomplete type 'struct gendisk' dax_dev = fs_dax_get_by_host(bdev->bd_disk->disk_name); ^~ cc1: some warnings being treated as errors vim +/blk_queue_dax +207 drivers//dax/super.c b42158bb Dan Williams 2018-03-29 202 b42158bb Dan Williams 2018-03-29 203 struct dax_device *fs_dax_claim_bdev(struct block_device *bdev, void *owner) b42158bb Dan Williams 2018-03-29 204 { b42158bb Dan Williams 2018-03-29 205 struct dax_device *dax_dev; b42158bb Dan Williams 2018-03-29 206 b42158bb Dan Williams 2018-03-29 @207 if (!blk_queue_dax(bdev->bd_queue)) b42158bb Dan Williams 2018-03-29 208 return NULL; b42158bb Dan Williams 2018-03-29 209 dax_dev = fs_dax_get_by_host(bdev->bd_disk->disk_name); b42158bb Dan Williams 2018-03-29 210 if (dax_dev->ops->fs_claim) b42158bb Dan Williams 2018-03-29 211 return dax_dev->ops->fs_claim(dax_dev, owner); b42158bb Dan Williams 2018-03-29 212 else b42158bb Dan Williams 2018-03-29 213 return fs_dax_claim(dax_dev, owner); b42158bb Dan Williams 2018-03-29 214 } b42158bb Dan Williams 2018-03-29 215 EXPORT_SYMBOL_GPL(fs_dax_claim_bdev); b42158bb Dan Williams 2018-03-29 216 :: The code at line 207 was first introduced by commit :: b42158bb23c9db316c12e3b3845ef01d41013314 dax, dm: introduce ->fs_{claim,release}() dax_device infrastructure :: TO: Dan Williams:: CC: Dan Williams --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 1/4] acpi: add find error record in BERT function
Hi Dave, I love your patch! Yet something to improve: [auto build test ERROR on pm/linux-next] [also build test ERROR on v4.16-rc7 next-20180329] [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/Dave-Jiang/Adding-support-to-parse-BERT-for-libnvdimm/20180331-065821 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): arch/x86/kernel/setup.o: In function `bert_find_mem_error_record': >> setup.c:(.text+0x3): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here arch/x86/kernel/i8259.o: In function `bert_find_mem_error_record': i8259.c:(.text+0x2c2): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here arch/x86/kernel/irqinit.o: In function `bert_find_mem_error_record': irqinit.c:(.text+0x0): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here arch/x86/kernel/bootflag.o: In function `bert_find_mem_error_record': bootflag.c:(.text+0x0): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here arch/x86/kernel/e820.o: In function `bert_find_mem_error_record': e820.c:(.text+0xb1): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here arch/x86/kernel/pci-dma.o: In function `bert_find_mem_error_record': pci-dma.c:(.text+0x0): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here arch/x86/kernel/rtc.o: In function `bert_find_mem_error_record': rtc.c:(.text+0x41): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here kernel/sysctl.o: In function `bert_find_mem_error_record': sysctl.c:(.text+0x0): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here drivers/base/platform.o: In function `bert_find_mem_error_record': platform.c:(.text+0x1e8): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here drivers/base/cpu.o: In function `bert_find_mem_error_record': cpu.c:(.text+0x1a1): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here drivers/base/property.o: In function `bert_find_mem_error_record': property.c:(.text+0x2aa): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here drivers/base/cacheinfo.o: In function `bert_find_mem_error_record': cacheinfo.c:(.text+0x2e5): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here drivers/base/dma-mapping.o: In function `bert_find_mem_error_record': dma-mapping.c:(.text+0x104): multiple definition of `bert_find_mem_error_record' init/main.o:main.c:(.text+0x19): first defined here --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[RFC PATCH] libnvdimm: bus_desc can be static
Fixes: 6cb2b51b9b76 ("libnvdimm: Add device-tree based driver") Signed-off-by: Fengguang Wu--- of_nvdimm.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvdimm/of_nvdimm.c b/drivers/nvdimm/of_nvdimm.c index 79c2829..4ed373d 100644 --- a/drivers/nvdimm/of_nvdimm.c +++ b/drivers/nvdimm/of_nvdimm.c @@ -15,7 +15,7 @@ * for dispatching regions into the correct bus type, but this is useful * for now. */ -struct nvdimm_bus_descriptor bus_desc; +static struct nvdimm_bus_descriptor bus_desc; struct nvdimm_bus *bus; /* region driver */ ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 3/6] libnvdimm: Add device-tree based driver
Hi Oliver, I love your patch! Perhaps something to improve: [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.16-rc6 next-20180323] [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/Oliver-O-Halloran/libnvdimm-Add-of_node-to-region-and-bus-descriptors/20180325-082036 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) >> drivers/nvdimm/of_nvdimm.c:18:30: sparse: symbol 'bus_desc' was not >> declared. Should it be static? drivers/nvdimm/of_nvdimm.c:19:19: sparse: symbol 'bus' was not declared. Should it be static? Please review and possibly fold the followup patch. --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 3/6] libnvdimm: Add device-tree based driver
Hi Oliver, I love your patch! Yet something to improve: [auto build test ERROR on linux-nvdimm/libnvdimm-for-next] [also build test ERROR on v4.16-rc6 next-20180323] [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/Oliver-O-Halloran/libnvdimm-Add-of_node-to-region-and-bus-descriptors/20180325-082036 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: ia64-allmodconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 7.2.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 make.cross ARCH=ia64 All errors (new ones prefixed by >>): ERROR: "ia64_delay_loop" [drivers/spi/spi-thunderx.ko] undefined! >> ERROR: "of_node_to_nid" [drivers/nvdimm/of_nvdimm.ko] undefined! ERROR: "ia64_delay_loop" [drivers/net/phy/mdio-cavium.ko] undefined! --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v6 06/15] ext2, dax: introduce ext2_dax_aops
Hi Dan, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v4.16-rc5 next-20180316] [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/Dan-Williams/dax-fix-dma-vs-truncate-hole-punch/20180318-050250 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) >> fs/ext2/inode.c:992:39: sparse: symbol 'ext2_dax_aops' was not declared. >> Should it be static? Please review and possibly fold the followup patch. --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v6 11/15] mm, fs, dax: handle layout changes to pinned dax mappings
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16-rc5 next-20180316] [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/Dan-Williams/dax-fix-dma-vs-truncate-hole-punch/20180318-050250 config: x86_64-randconfig-x010-201811 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/dax/super.c: In function 'generic_dax_pagefree': >> drivers/dax/super.c:170:2: error: implicit declaration of function >> 'wake_up_var'; did you mean 'wake_up_nr'? >> [-Werror=implicit-function-declaration] wake_up_var(>_refcount); ^~~ wake_up_nr cc1: some warnings being treated as errors vim +170 drivers/dax/super.c 166 167 #if IS_ENABLED(CONFIG_FS_DAX) 168 static void generic_dax_pagefree(struct page *page, void *data) 169 { > 170 wake_up_var(>_refcount); 171 } 172 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v6 15/15] xfs, dax: introduce xfs_break_dax_layouts()
Hi Dan, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16-rc5] [cannot apply to next-20180316] [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/Dan-Williams/dax-fix-dma-vs-truncate-hole-punch/20180318-050250 config: x86_64-randconfig-x014-201811 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): fs/xfs/xfs_file.c: In function 'xfs_break_dax_layouts': >> fs/xfs/xfs_file.c:786:8: error: implicit declaration of function >> '___wait_var_event'; did you mean 'xfs_wait_var_event'? >> [-Werror=implicit-function-declaration] ret = ___wait_var_event(>_refcount, ^ xfs_wait_var_event >> fs/xfs/xfs_file.c:788:10: error: invalid use of void expression 0, 0, xfs_wait_var_event(inode, iolock)); ^~ cc1: some warnings being treated as errors vim +786 fs/xfs/xfs_file.c 773 774 static int 775 xfs_break_dax_layouts( 776 struct inode*inode, 777 uintiolock) 778 { 779 struct page *page; 780 int ret; 781 782 page = dax_layout_busy_page(inode->i_mapping); 783 if (!page) 784 return 0; 785 > 786 ret = ___wait_var_event(>_refcount, 787 atomic_read(>_refcount) == 1, TASK_INTERRUPTIBLE, > 788 0, 0, xfs_wait_var_event(inode, iolock)); 789 if (ret < 0) 790 return ret; 791 return 1; 792 } 793 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v4 1/3] fs: allow per-device dax status checking for filesystems
Hi Darrick, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16-rc3 next-20180228] [cannot apply to dgc-xfs/for-next] [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/Dave-Jiang/minimal-DAX-support-for-XFS-realtime-device/20180218-154220 config: i386-randconfig-c0-03010621 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): >> drivers/dax/super.c:86:5: error: redefinition of 'bdev_dax_supported' int bdev_dax_supported(struct super_block *sb, struct block_device *bdev, ^~ In file included from drivers/dax/super.c:23:0: include/linux/dax.h:62:19: note: previous definition of 'bdev_dax_supported' was here static inline int bdev_dax_supported(struct super_block *sb, ^~ vim +/bdev_dax_supported +86 drivers/dax/super.c 74 75 /** 76 * bdev_dax_supported() - Check if the device supports dax for filesystem 77 * @sb: The superblock of the device 78 * @bdev: block device to check 79 * @blocksize: The block size of the device 80 * 81 * This is a library function for filesystems to check if the block device 82 * can be mounted with dax option. 83 * 84 * Return: negative errno if unsupported, 0 if supported. 85 */ > 86 int bdev_dax_supported(struct super_block *sb, struct block_device *bdev, 87 int blocksize) 88 { 89 struct dax_device *dax_dev; 90 pgoff_t pgoff; 91 int err, id; 92 void *kaddr; 93 pfn_t pfn; 94 long len; 95 96 if (blocksize != PAGE_SIZE) { 97 pr_debug("VFS (%s): error: unsupported blocksize for dax\n", 98 sb->s_id); 99 return -EINVAL; 100 } 101 102 err = bdev_dax_pgoff(bdev, 0, PAGE_SIZE, ); 103 if (err) { 104 pr_debug("VFS (%s): error: unaligned partition for dax\n", 105 sb->s_id); 106 return err; 107 } 108 109 dax_dev = dax_get_by_host(bdev->bd_disk->disk_name); 110 if (!dax_dev) { 111 pr_debug("VFS (%s): error: device does not support dax\n", 112 sb->s_id); 113 return -EOPNOTSUPP; 114 } 115 116 id = dax_read_lock(); 117 len = dax_direct_access(dax_dev, pgoff, 1, , ); 118 dax_read_unlock(id); 119 120 put_dax(dax_dev); 121 122 if (len < 1) { 123 pr_debug("VFS (%s): error: dax access failed (%ld)\n", 124 sb->s_id, len); 125 return len < 0 ? len : -EIO; 126 } 127 128 if ((IS_ENABLED(CONFIG_FS_DAX_LIMITED) && pfn_t_special(pfn)) 129 || pfn_t_devmap(pfn)) 130 /* pass */; 131 else { 132 pr_debug("VFS (%s): error: dax support not enabled\n", 133 sb->s_id); 134 return -EOPNOTSUPP; 135 } 136 137 return 0; 138 } 139 EXPORT_SYMBOL_GPL(bdev_dax_supported); 140 #endif 141 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v6 1/3] fs: allow per-device dax status checking for filesystems
Hi Darrick, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16-rc2 next-20180219] [cannot apply to dgc-xfs/for-next] [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/Dave-Jiang/fs-allow-per-device-dax-status-checking-for-filesystems/20180219-121644 config: x86_64-randconfig-s5-02200659 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): >> drivers/dax/super.c:85:5: error: redefinition of 'bdev_dax_supported' int bdev_dax_supported(struct block_device *bdev, int blocksize) ^~ In file included from drivers/dax/super.c:23:0: include/linux/dax.h:56:19: note: previous definition of 'bdev_dax_supported' was here static inline int bdev_dax_supported(struct block_device *bdev, ^~ vim +/bdev_dax_supported +85 drivers/dax/super.c 74 75 /** 76 * bdev_dax_supported() - Check if the device supports dax for filesystem 77 * @bdev: block device to check 78 * @blocksize: The block size of the device 79 * 80 * This is a library function for filesystems to check if the block device 81 * can be mounted with dax option. 82 * 83 * Return: negative errno if unsupported, 0 if supported. 84 */ > 85 int bdev_dax_supported(struct block_device *bdev, int blocksize) 86 { 87 struct dax_device *dax_dev; 88 pgoff_t pgoff; 89 int err, id; 90 void *kaddr; 91 pfn_t pfn; 92 long len; 93 char buf[BDEVNAME_SIZE]; 94 95 if (blocksize != PAGE_SIZE) { 96 pr_debug("%s: error: unsupported blocksize for dax\n", 97 bdevname(bdev, buf)); 98 return -EINVAL; 99 } 100 101 err = bdev_dax_pgoff(bdev, 0, PAGE_SIZE, ); 102 if (err) { 103 pr_debug("%s: error: unaligned partition for dax\n", 104 bdevname(bdev, buf)); 105 return err; 106 } 107 108 dax_dev = dax_get_by_host(bdev->bd_disk->disk_name); 109 if (!dax_dev) { 110 pr_debug("%s: error: device does not support dax\n", 111 bdevname(bdev, buf)); 112 return -EOPNOTSUPP; 113 } 114 115 id = dax_read_lock(); 116 len = dax_direct_access(dax_dev, pgoff, 1, , ); 117 dax_read_unlock(id); 118 119 put_dax(dax_dev); 120 121 if (len < 1) { 122 pr_debug("%s: error: dax access failed (%ld)\n", 123 bdevname(bdev, buf), len); 124 return len < 0 ? len : -EIO; 125 } 126 127 if ((IS_ENABLED(CONFIG_FS_DAX_LIMITED) && pfn_t_special(pfn)) 128 || pfn_t_devmap(pfn)) 129 /* pass */; 130 else { 131 pr_debug("%s: error: dax support not enabled\n", 132 bdevname(bdev, buf)); 133 return -EOPNOTSUPP; 134 } 135 136 return 0; 137 } 138 EXPORT_SYMBOL_GPL(bdev_dax_supported); 139 #endif 140 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v4 2/3] dax: change bdev_dax_supported() to support boolean returns
Hi Dave, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v4.16-rc1 next-20180216] [cannot apply to dgc-xfs/for-next] [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/Dave-Jiang/minimal-DAX-support-for-XFS-realtime-device/20180218-154220 config: i386-randconfig-x003-201807 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): fs//xfs/xfs_super.c: In function 'xfs_fs_fill_super': >> fs//xfs/xfs_super.c:1660:8: warning: 'rtdev_is_dax' may be used >> uninitialized in this function [-Wmaybe-uninitialized] bool rtdev_is_dax, datadev_is_dax; ^~~~ vim +/rtdev_is_dax +1660 fs//xfs/xfs_super.c 1566 1567 STATIC int 1568 xfs_fs_fill_super( 1569 struct super_block *sb, 1570 void*data, 1571 int silent) 1572 { 1573 struct inode*root; 1574 struct xfs_mount*mp = NULL; 1575 int flags = 0, error = -ENOMEM; 1576 1577 mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL); 1578 if (!mp) 1579 goto out; 1580 1581 spin_lock_init(>m_sb_lock); 1582 mutex_init(>m_growlock); 1583 atomic_set(>m_active_trans, 0); 1584 INIT_DELAYED_WORK(>m_reclaim_work, xfs_reclaim_worker); 1585 INIT_DELAYED_WORK(>m_eofblocks_work, xfs_eofblocks_worker); 1586 INIT_DELAYED_WORK(>m_cowblocks_work, xfs_cowblocks_worker); 1587 mp->m_kobj.kobject.kset = xfs_kset; 1588 1589 mp->m_super = sb; 1590 sb->s_fs_info = mp; 1591 1592 error = xfs_parseargs(mp, (char *)data); 1593 if (error) 1594 goto out_free_fsname; 1595 1596 sb_min_blocksize(sb, BBSIZE); 1597 sb->s_xattr = xfs_xattr_handlers; 1598 sb->s_export_op = _export_operations; 1599 #ifdef CONFIG_XFS_QUOTA 1600 sb->s_qcop = _quotactl_operations; 1601 sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP | QTYPE_MASK_PRJ; 1602 #endif 1603 sb->s_op = _super_operations; 1604 1605 if (silent) 1606 flags |= XFS_MFSI_QUIET; 1607 1608 error = xfs_open_devices(mp); 1609 if (error) 1610 goto out_free_fsname; 1611 1612 error = xfs_init_mount_workqueues(mp); 1613 if (error) 1614 goto out_close_devices; 1615 1616 error = xfs_init_percpu_counters(mp); 1617 if (error) 1618 goto out_destroy_workqueues; 1619 1620 /* Allocate stats memory before we do operations that might use it */ 1621 mp->m_stats.xs_stats = alloc_percpu(struct xfsstats); 1622 if (!mp->m_stats.xs_stats) { 1623 error = -ENOMEM; 1624 goto out_destroy_counters; 1625 } 1626 1627 error = xfs_readsb(mp, flags); 1628 if (error) 1629 goto out_free_stats; 1630 1631 error = xfs_finish_flags(mp); 1632 if (error) 1633 goto out_free_sb; 1634 1635 error = xfs_setup_devices(mp); 1636 if (error) 1637 goto out_free_sb; 1638 1639 error = xfs_filestream_mount(mp); 1640 if (error) 1641 goto out_free_sb; 1642 1643 /* 1644 * we must configure the block size in the superblock before we run the 1645 * full mount process as the mount process can lookup and cache inodes. 1646 */ 1647 sb->s_magic = XFS_SB_MAGIC; 1648 sb->s_blocksize = mp->m_sb.sb_blocksize; 1649 sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; 1650 sb->s_maxbytes = xfs_max_file_offset(sb->s_blocksize_bits); 1651 sb->s_max_links = XFS_MAXLINK; 1652 sb->s_time_gran = 1; 1653 set_posix_acl_flag(sb); 1654 1655 /* version 5 superblocks support inode version counters. */ 1656 if (XFS_SB_VERSION_NUM(>m_sb) == XFS_SB_VERSION_5) 1657 sb->s_flags |= SB_I_VERSION; 1658 1659 if (mp->m_flags & XFS_MOUNT_DAX) { > 1660 bool rtdev_is_dax, datadev_is_dax; 1661 1662 xfs_warn(mp, 1663 "DAX enabled. Warning: EXPERIMENTAL, use at your own risk"); 1664 1665
Re: [PATCH v5 1/3] fs: allow per-device dax status checking for filesystems
Hi Darrick, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16-rc1 next-20180216] [cannot apply to dgc-xfs/for-next] [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/Dave-Jiang/minimal-DAX-support-for-XFS-realtime-device/20180218-152445 config: x86_64-randconfig-x008-201807 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): >> drivers//dax/super.c:85:5: error: redefinition of 'bdev_dax_supported' int bdev_dax_supported(struct block_device *bdev, int blocksize) ^~ In file included from drivers//dax/super.c:23:0: include/linux/dax.h:56:19: note: previous definition of 'bdev_dax_supported' was here static inline int bdev_dax_supported(struct block_device *bdev, ^~ vim +/bdev_dax_supported +85 drivers//dax/super.c 74 75 /** 76 * bdev_dax_supported() - Check if the device supports dax for filesystem 77 * @bdev: block device to check 78 * @blocksize: The block size of the device 79 * 80 * This is a library function for filesystems to check if the block device 81 * can be mounted with dax option. 82 * 83 * Return: negative errno if unsupported, 0 if supported. 84 */ > 85 int bdev_dax_supported(struct block_device *bdev, int blocksize) 86 { 87 struct dax_device *dax_dev; 88 pgoff_t pgoff; 89 int err, id; 90 void *kaddr; 91 pfn_t pfn; 92 long len; 93 char buf[BDEVNAME_SIZE]; 94 95 if (blocksize != PAGE_SIZE) { 96 pr_debug("%s: error: unsupported blocksize for dax\n", 97 bdevname(bdev, buf)); 98 return -EINVAL; 99 } 100 101 err = bdev_dax_pgoff(bdev, 0, PAGE_SIZE, ); 102 if (err) { 103 pr_debug("%s: error: unaligned partition for dax\n", 104 bdevname(bdev, buf)); 105 return err; 106 } 107 108 dax_dev = dax_get_by_host(bdev->bd_disk->disk_name); 109 if (!dax_dev) { 110 pr_debug("%s: error: device does not support dax\n", 111 bdevname(bdev, buf)); 112 return -EOPNOTSUPP; 113 } 114 115 id = dax_read_lock(); 116 len = dax_direct_access(dax_dev, pgoff, 1, , ); 117 dax_read_unlock(id); 118 119 put_dax(dax_dev); 120 121 if (len < 1) { 122 pr_debug("%s: error: dax access failed (%ld)\n", 123 bdevname(bdev, buf), len); 124 return len < 0 ? len : -EIO; 125 } 126 127 if ((IS_ENABLED(CONFIG_FS_DAX_LIMITED) && pfn_t_special(pfn)) 128 || pfn_t_devmap(pfn)) 129 /* pass */; 130 else { 131 pr_debug("%s: error: dax support not enabled\n", 132 bdevname(bdev, buf)); 133 return -EOPNOTSUPP; 134 } 135 136 return 0; 137 } 138 EXPORT_SYMBOL_GPL(bdev_dax_supported); 139 #endif 140 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v8 2/2] IB/core: use MAP_DIRECT to fix / enable RDMA to DAX mappings
Hi Dan, [auto build test ERROR on rdma/master] [also build test ERROR on v4.14-rc3 next-20170929] [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/Dan-Williams/iommu-up-level-sg_num_pages-from-amd-iommu/20171008-133505 base: https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git master config: i386-randconfig-n0-201741 (attached as .config) compiler: gcc-4.8 (Debian 4.8.4-1) 4.8.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): >> drivers/infiniband/core/umem.c:39:29: fatal error: linux/mapdirect.h: No >> such file or directory #include ^ compilation terminated. vim +39 drivers/infiniband/core/umem.c > 39 #include 40 #include 41 #include 42 #include 43 #include 44 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[linux-nvdimm:libnvdimm-for-next 22/22] drivers//nvdimm/btt.c:430:3: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'size_t'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: 86652d2eb347080a991968c9d68708dc010ac56c commit: 86652d2eb347080a991968c9d68708dc010ac56c [22/22] libnvdimm, btt: clean up warning and error messages config: i386-randconfig-c0-09090349 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: git checkout 86652d2eb347080a991968c9d68708dc010ac56c # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): drivers//nvdimm/btt.c: In function 'btt_map_init': >> drivers//nvdimm/btt.c:430:3: warning: format '%lx' expects argument of type >> 'long unsigned int', but argument 4 has type 'size_t' [-Wformat=] dev_WARN_ONCE(to_dev(arena), size < 512, ^ drivers//nvdimm/btt.c: In function 'btt_log_init': drivers//nvdimm/btt.c:474:3: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' [-Wformat=] dev_WARN_ONCE(to_dev(arena), size < 512, ^ vim +430 drivers//nvdimm/btt.c 402 403 /* 404 * This function initializes the BTT map to the initial state, which is 405 * all-zeroes, and indicates an identity mapping 406 */ 407 static int btt_map_init(struct arena_info *arena) 408 { 409 int ret = -EINVAL; 410 void *zerobuf; 411 size_t offset = 0; 412 size_t chunk_size = SZ_2M; 413 size_t mapsize = arena->logoff - arena->mapoff; 414 415 zerobuf = kzalloc(chunk_size, GFP_KERNEL); 416 if (!zerobuf) 417 return -ENOMEM; 418 419 /* 420 * mapoff should always be at least 512B aligned. We rely on that to 421 * make sure rw_bytes does error clearing correctly, so make sure that 422 * is the case. 423 */ 424 dev_WARN_ONCE(to_dev(arena), !IS_ALIGNED(arena->mapoff, 512), 425 "arena->mapoff: %#llx is unaligned\n", arena->mapoff); 426 427 while (mapsize) { 428 size_t size = min(mapsize, chunk_size); 429 > 430 dev_WARN_ONCE(to_dev(arena), size < 512, 431 "chunk size: %#lx is unaligned\n", size); 432 ret = arena_write_bytes(arena, arena->mapoff + offset, zerobuf, 433 size, 0); 434 if (ret) 435 goto free; 436 437 offset += size; 438 mapsize -= size; 439 cond_resched(); 440 } 441 442 free: 443 kfree(zerobuf); 444 return ret; 445 } 446 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[linux-nvdimm:libnvdimm-for-next 9/22] drivers//dax/super.c:64:20: error: redefinition of 'fs_dax_get_by_bdev'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next head: 8f98ae0c9b90bb46097e4f28e81e9ae6148e5694 commit: 78f35473508118df5ea04b9515ac3f1aaec0a980 [9/22] dax: introduce a fs_dax_get_by_bdev() helper config: ia64-tiger_defconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 6.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 78f35473508118df5ea04b9515ac3f1aaec0a980 # save the attached .config to linux build tree make.cross ARCH=ia64 All errors (new ones prefixed by >>): >> drivers//dax/super.c:64:20: error: redefinition of 'fs_dax_get_by_bdev' struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev) ^~ In file included from drivers//dax/super.c:22:0: include/linux/dax.h:76:34: note: previous definition of 'fs_dax_get_by_bdev' was here static inline struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev) ^~ vim +/fs_dax_get_by_bdev +64 drivers//dax/super.c 63 > 64 struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev) 65 { 66 if (!blk_queue_dax(bdev->bd_queue)) 67 return NULL; 68 return fs_dax_get_by_host(bdev->bd_disk->disk_name); 69 } 70 EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev); 71 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v5 7/7] libnvdimm: Add blk-mq pmem driver
Hi Dave, [auto build test ERROR on slave-dma/next] [also build test ERROR on next-20170824] [cannot apply to linus/master linux-nvdimm/libnvdimm-for-next v4.13-rc6] [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/Dave-Jiang/libnvdimm-add-DMA-support-for-pmem-blk-mq/20170824-164932 base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/slave-dma.git next config: i386-randconfig-c0-08250030 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): ERROR: "dma_request_chan" [sound/soc/snd-soc-core.ko] undefined! ERROR: "dma_request_slave_channel" [sound/soc/snd-soc-core.ko] undefined! ERROR: "dma_get_slave_caps" [sound/soc/snd-soc-core.ko] undefined! ERROR: "dma_release_channel" [sound/soc/snd-soc-core.ko] undefined! >> ERROR: "__dma_request_channel" [sound/core/snd-pcm-dmaengine.ko] undefined! >> ERROR: "dma_release_channel" [sound/core/snd-pcm-dmaengine.ko] undefined! >> ERROR: "dma_find_channel" [drivers/nvdimm/nd_pmem_mq.ko] undefined! >> ERROR: "dmaengine_unmap_put" [drivers/nvdimm/nd_pmem_mq.ko] undefined! >> ERROR: "dmaengine_get_unmap_data" [drivers/nvdimm/nd_pmem_mq.ko] undefined! >> ERROR: "dmaengine_get" [drivers/nvdimm/nd_pmem_mq.ko] undefined! >> ERROR: "dmaengine_put" [drivers/nvdimm/nd_pmem_mq.ko] undefined! --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v4 3/3] fs, xfs: introduce MAP_DIRECT for creating block-map-sealed file ranges
Hi Dan, [auto build test ERROR on linus/master] [also build test ERROR on v4.13-rc5 next-20170816] [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/Dan-Williams/fs-xfs-introduce-S_IOMAP_SEALED/20170817-114711 config: xtensa-allmodconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 4.9.0 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=xtensa All error/warnings (new ones prefixed by >>): mm/mmap.c: In function 'do_mmap': mm/mmap.c:1391:8: error: 'MAP_VALIDATE' undeclared (first use in this function) case MAP_VALIDATE: ^ mm/mmap.c:1391:8: note: each undeclared identifier is reported only once for each function it appears in In file included from mm/mmap.c:17:0: >> include/linux/mman.h:11:29: error: 'MAP_DIRECT' undeclared (first use in >> this function) #define MAP_SUPPORTED_MASK (MAP_DIRECT) ^ >> mm/mmap.c:1392:18: note: in expansion of macro 'MAP_SUPPORTED_MASK' if (flags & ~(MAP_SUPPORTED_MASK | MAP_VALIDATE)) ^ vim +/MAP_DIRECT +11 include/linux/mman.h 9 10 /* the MAP_VALIDATE set of supported flags */ > 11 #define MAP_SUPPORTED_MASK (MAP_DIRECT) 12 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v4 2/3] mm: introduce MAP_VALIDATE a mechanism for adding new mmap flags
Hi Dan, [auto build test ERROR on linus/master] [also build test ERROR on v4.13-rc5 next-20170816] [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/Dan-Williams/fs-xfs-introduce-S_IOMAP_SEALED/20170817-114711 config: xtensa-allmodconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 4.9.0 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=xtensa All errors (new ones prefixed by >>): mm/mmap.c: In function 'do_mmap': >> mm/mmap.c:1391:8: error: 'MAP_VALIDATE' undeclared (first use in this >> function) case MAP_VALIDATE: ^ mm/mmap.c:1391:8: note: each undeclared identifier is reported only once for each function it appears in vim +/MAP_VALIDATE +1391 mm/mmap.c 1316 1317 /* 1318 * The caller must hold down_write(>mm->mmap_sem). 1319 */ 1320 unsigned long do_mmap(struct file *file, unsigned long addr, 1321 unsigned long len, unsigned long prot, 1322 unsigned long flags, vm_flags_t vm_flags, 1323 unsigned long pgoff, unsigned long *populate, 1324 struct list_head *uf) 1325 { 1326 struct mm_struct *mm = current->mm; 1327 int pkey = 0; 1328 1329 *populate = 0; 1330 1331 if (!len) 1332 return -EINVAL; 1333 1334 /* 1335 * Does the application expect PROT_READ to imply PROT_EXEC? 1336 * 1337 * (the exception is when the underlying filesystem is noexec 1338 * mounted, in which case we dont add PROT_EXEC.) 1339 */ 1340 if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC)) 1341 if (!(file && path_noexec(>f_path))) 1342 prot |= PROT_EXEC; 1343 1344 if (!(flags & MAP_FIXED)) 1345 addr = round_hint_to_min(addr); 1346 1347 /* Careful about overflows.. */ 1348 len = PAGE_ALIGN(len); 1349 if (!len) 1350 return -ENOMEM; 1351 1352 /* offset overflow? */ 1353 if ((pgoff + (len >> PAGE_SHIFT)) < pgoff) 1354 return -EOVERFLOW; 1355 1356 /* Too many mappings? */ 1357 if (mm->map_count > sysctl_max_map_count) 1358 return -ENOMEM; 1359 1360 /* Obtain the address to map to. we verify (or select) it and ensure 1361 * that it represents a valid section of the address space. 1362 */ 1363 addr = get_unmapped_area(file, addr, len, pgoff, flags); 1364 if (offset_in_page(addr)) 1365 return addr; 1366 1367 if (prot == PROT_EXEC) { 1368 pkey = execute_only_pkey(mm); 1369 if (pkey < 0) 1370 pkey = 0; 1371 } 1372 1373 /* Do simple checking here so the lower-level routines won't have 1374 * to. we assume access permissions have been handled by the open 1375 * of the memory object, so we don't do any here. 1376 */ 1377 vm_flags |= calc_vm_prot_bits(prot, pkey) | calc_vm_flag_bits(flags) | 1378 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; 1379 1380 if (flags & MAP_LOCKED) 1381 if (!can_do_mlock()) 1382 return -EPERM; 1383 1384 if (mlock_future_check(mm, vm_flags, len)) 1385 return -EAGAIN; 1386 1387 if (file) { 1388 struct inode *inode = file_inode(file); 1389 1390 switch (flags & MAP_TYPE) { > 1391 case MAP_VALIDATE: 1392 if (flags & ~(MAP_SUPPORTED_MASK | MAP_VALIDATE)) 1393 return -EINVAL; 1394 if (!file->f_op->fmmap) 1395 return -EOPNOTSUPP; 1396 /* fall through */ 1397 case MAP_SHARED: 1398 if ((prot_WRITE) && !(file->f_mode_WRITE)) 1399 return -EACCES; 1400 1401 /* 1402 * Make sure we don't allow writing to an append-only 1403 * file.. 1404 */ 1405 if (IS_APPEND(inode) && (file->f_mode & FMODE_WRITE)) 1406 return -EACCES; 1407 1408
Re: [PATCH 2/3] libnvdimm, pfn, dax: show supported dax/pfn region alignments in sysfs
Hi Oliver, [auto build test ERROR on linux-nvdimm/libnvdimm-for-next] [also build test ERROR on v4.13-rc5 next-20170811] [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/Dan-Williams/libnvdimm-export-supported-page-size-alignments/20170815-105258 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: powerpc-allmodconfig (attached as .config) compiler: powerpc64-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=powerpc All error/warnings (new ones prefixed by >>): In file included from include/linux/mm.h:446:0, from include/linux/memremap.h:3, from drivers//nvdimm/pfn_devs.c:13: drivers//nvdimm/pfn_devs.c: In function 'nd_pfn_supported_alignments': >> include/linux/huge_mm.h:83:24: error: initializer element is not constant #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) ^ >> drivers//nvdimm/pfn_devs.c:123:3: note: in expansion of macro >> 'HPAGE_PMD_SIZE' HPAGE_PMD_SIZE, ^~ include/linux/huge_mm.h:83:24: note: (near initialization for 'supported_alignments[1]') #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) ^ >> drivers//nvdimm/pfn_devs.c:123:3: note: in expansion of macro >> 'HPAGE_PMD_SIZE' HPAGE_PMD_SIZE, ^~ -- In file included from include/linux/mm.h:446:0, from include/linux/memremap.h:3, from drivers/nvdimm/pfn_devs.c:13: drivers/nvdimm/pfn_devs.c: In function 'nd_pfn_supported_alignments': >> include/linux/huge_mm.h:83:24: error: initializer element is not constant #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) ^ drivers/nvdimm/pfn_devs.c:123:3: note: in expansion of macro 'HPAGE_PMD_SIZE' HPAGE_PMD_SIZE, ^~ include/linux/huge_mm.h:83:24: note: (near initialization for 'supported_alignments[1]') #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) ^ drivers/nvdimm/pfn_devs.c:123:3: note: in expansion of macro 'HPAGE_PMD_SIZE' HPAGE_PMD_SIZE, ^~ vim +/HPAGE_PMD_SIZE +123 drivers//nvdimm/pfn_devs.c > 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include "nd-core.h" 22 #include "pfn.h" 23 #include "nd.h" 24 25 static void nd_pfn_release(struct device *dev) 26 { 27 struct nd_region *nd_region = to_nd_region(dev->parent); 28 struct nd_pfn *nd_pfn = to_nd_pfn(dev); 29 30 dev_dbg(dev, "%s\n", __func__); 31 nd_detach_ndns(_pfn->dev, _pfn->ndns); 32 ida_simple_remove(_region->pfn_ida, nd_pfn->id); 33 kfree(nd_pfn->uuid); 34 kfree(nd_pfn); 35 } 36 37 static struct device_type nd_pfn_device_type = { 38 .name = "nd_pfn", 39 .release = nd_pfn_release, 40 }; 41 42 bool is_nd_pfn(struct device *dev) 43 { 44 return dev ? dev->type == _pfn_device_type : false; 45 } 46 EXPORT_SYMBOL(is_nd_pfn); 47 48 struct nd_pfn *to_nd_pfn(struct device *dev) 49 { 50 struct nd_pfn *nd_pfn = container_of(dev, struct nd_pfn, dev); 51 52 WARN_ON(!is_nd_pfn(dev)); 53 return nd_pfn; 54 } 55 EXPORT_SYMBOL(to_nd_pfn); 56 57 static ssize_t mode_show(struct device *dev, 58 struct device_attribute *attr, char *buf) 59 { 60 struct nd_pfn *nd_pfn = to_nd_pfn_safe(dev); 61 62 switch (nd_pfn->mode) { 63 case PFN_MODE_RAM: 64 return sprintf(buf, "ram\n"); 65 case PFN_MODE_PMEM: 66 return sprintf(buf, "pmem\n"); 67 default: 68 return sprintf(buf, "none\n"); 69 } 70 } 71 72 static ssize_t mode_store(struct device *dev, 73 struct device_attribute *attr, const char *buf, size_t len) 74 { 75 struct nd_pfn *nd_pfn = to_nd_pfn_safe(dev); 76 ssize_t rc = 0; 77 78 device_lock(dev); 79 nvdimm_bus_lock(dev); 80 if (dev->driver) 81 rc = -EBUSY; 82 else { 83 size_t n = len - 1; 84 85 if (strncmp(buf, "pmem\n", n) == 0 86 || strncmp(buf, "pmem", n) == 0) { 87
Re: [PATCH v2 5/7] mm:swap: use on-stack-bio for BDI_CAP_SYNCHRONOUS device
Hi Minchan, [auto build test ERROR on mmotm/master] [also build test ERROR on next-20170811] [cannot apply to linus/master v4.13-rc4] [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/Minchan-Kim/Replace-rw_page-with-on-stack-bio/20170812-152541 base: git://git.cmpxchg.org/linux-mmotm.git master config: sparc64-allmodconfig (attached as .config) compiler: sparc64-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=sparc64 All errors (new ones prefixed by >>): mm/page_io.c: In function '__swap_writepage': >> mm/page_io.c:345:11: error: passing argument 1 of 'bio_get' from >> incompatible pointer type [-Werror=incompatible-pointer-types] bio_get(); ^ In file included from include/linux/writeback.h:205:0, from include/linux/memcontrol.h:31, from include/linux/swap.h:8, from mm/page_io.c:17: include/linux/bio.h:252:20: note: expected 'struct bio *' but argument is of type 'struct bio **' static inline void bio_get(struct bio *bio) ^~~ cc1: some warnings being treated as errors vim +/bio_get +345 mm/page_io.c 275 276 int __swap_writepage(struct page *page, struct writeback_control *wbc) 277 { 278 int ret; 279 struct swap_info_struct *sis = page_swap_info(page); 280 struct bio *bio; 281 /* on-stack-bio */ 282 struct bio sbio; 283 struct bio_vec sbvec; 284 285 VM_BUG_ON_PAGE(!PageSwapCache(page), page); 286 if (sis->flags & SWP_FILE) { 287 struct kiocb kiocb; 288 struct file *swap_file = sis->swap_file; 289 struct address_space *mapping = swap_file->f_mapping; 290 struct bio_vec bv = { 291 .bv_page = page, 292 .bv_len = PAGE_SIZE, 293 .bv_offset = 0 294 }; 295 struct iov_iter from; 296 297 iov_iter_bvec(, ITER_BVEC | WRITE, , 1, PAGE_SIZE); 298 init_sync_kiocb(, swap_file); 299 kiocb.ki_pos = page_file_offset(page); 300 301 set_page_writeback(page); 302 unlock_page(page); 303 ret = mapping->a_ops->direct_IO(, ); 304 if (ret == PAGE_SIZE) { 305 count_vm_event(PSWPOUT); 306 ret = 0; 307 } else { 308 /* 309 * In the case of swap-over-nfs, this can be a 310 * temporary failure if the system has limited 311 * memory for allocating transmit buffers. 312 * Mark the page dirty and avoid 313 * rotate_reclaimable_page but rate-limit the 314 * messages but do not flag PageError like 315 * the normal direct-to-bio case as it could 316 * be temporary. 317 */ 318 set_page_dirty(page); 319 ClearPageReclaim(page); 320 pr_err_ratelimited("Write error on dio swapfile (%llu)\n", 321 page_file_offset(page)); 322 } 323 end_page_writeback(page); 324 return ret; 325 } 326 327 ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc); 328 if (!ret) { 329 count_swpout_vm_event(page); 330 return 0; 331 } 332 333 ret = 0; 334 if (!(sis->flags & SWP_SYNC_IO)) { 335 336 bio = get_swap_bio(GFP_NOIO, page, end_swap_bio_write); 337 if (bio == NULL) { 338 set_page_dirty(page); 339 unlock_page(page); 340 ret = -ENOMEM; 341 goto out; 342 } 343 } else { 344 bio = > 345 bio_get(); 346 347 bio_init(, , 1); 348 sbio.bi_bdev = sis->bdev; 349 sbio.bi_iter.bi_sector = swap_page_sector(page); 350 sbio.bi_end_io = end_swap_bio_write; 351
Re: [PATCH v2 5/7] mm:swap: use on-stack-bio for BDI_CAP_SYNCHRONOUS device
Hi Minchan, [auto build test WARNING on mmotm/master] [also build test WARNING on next-20170811] [cannot apply to linus/master v4.13-rc4] [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/Minchan-Kim/Replace-rw_page-with-on-stack-bio/20170812-152541 base: git://git.cmpxchg.org/linux-mmotm.git master config: xtensa-allmodconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 4.9.0 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=xtensa All warnings (new ones prefixed by >>): mm/page_io.c: In function '__swap_writepage': >> mm/page_io.c:345:3: warning: passing argument 1 of 'bio_get' from >> incompatible pointer type bio_get(); ^ In file included from include/linux/writeback.h:205:0, from include/linux/memcontrol.h:31, from include/linux/swap.h:8, from mm/page_io.c:17: include/linux/bio.h:252:20: note: expected 'struct bio *' but argument is of type 'struct bio **' static inline void bio_get(struct bio *bio) ^ vim +/bio_get +345 mm/page_io.c 275 276 int __swap_writepage(struct page *page, struct writeback_control *wbc) 277 { 278 int ret; 279 struct swap_info_struct *sis = page_swap_info(page); 280 struct bio *bio; 281 /* on-stack-bio */ 282 struct bio sbio; 283 struct bio_vec sbvec; 284 285 VM_BUG_ON_PAGE(!PageSwapCache(page), page); 286 if (sis->flags & SWP_FILE) { 287 struct kiocb kiocb; 288 struct file *swap_file = sis->swap_file; 289 struct address_space *mapping = swap_file->f_mapping; 290 struct bio_vec bv = { 291 .bv_page = page, 292 .bv_len = PAGE_SIZE, 293 .bv_offset = 0 294 }; 295 struct iov_iter from; 296 297 iov_iter_bvec(, ITER_BVEC | WRITE, , 1, PAGE_SIZE); 298 init_sync_kiocb(, swap_file); 299 kiocb.ki_pos = page_file_offset(page); 300 301 set_page_writeback(page); 302 unlock_page(page); 303 ret = mapping->a_ops->direct_IO(, ); 304 if (ret == PAGE_SIZE) { 305 count_vm_event(PSWPOUT); 306 ret = 0; 307 } else { 308 /* 309 * In the case of swap-over-nfs, this can be a 310 * temporary failure if the system has limited 311 * memory for allocating transmit buffers. 312 * Mark the page dirty and avoid 313 * rotate_reclaimable_page but rate-limit the 314 * messages but do not flag PageError like 315 * the normal direct-to-bio case as it could 316 * be temporary. 317 */ 318 set_page_dirty(page); 319 ClearPageReclaim(page); 320 pr_err_ratelimited("Write error on dio swapfile (%llu)\n", 321 page_file_offset(page)); 322 } 323 end_page_writeback(page); 324 return ret; 325 } 326 327 ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc); 328 if (!ret) { 329 count_swpout_vm_event(page); 330 return 0; 331 } 332 333 ret = 0; 334 if (!(sis->flags & SWP_SYNC_IO)) { 335 336 bio = get_swap_bio(GFP_NOIO, page, end_swap_bio_write); 337 if (bio == NULL) { 338 set_page_dirty(page); 339 unlock_page(page); 340 ret = -ENOMEM; 341 goto out; 342 } 343 } else { 344 bio = > 345 bio_get(); 346 347 bio_init(, , 1); 348 sbio.bi_bdev = sis->bdev; 349 sbio.bi_iter.bi_sector = swap_page_sector(page); 350 sbio.bi_end_io = end_swap_bio_write; 351 bio_add_page(, page, PAGE_SIZE, 0); 352 } 353 354 bio_set_op_attrs(bio, REQ_OP_WRITE,
Re: [PATCH v3 6/8] dmaengine: add SG support to dmaengine_unmap
Hi Dave, [auto build test WARNING on linus/master] [also build test WARNING on v4.13-rc3] [cannot apply to next-20170804] [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/Dave-Jiang/Adding-blk-mq-and-DMA-support-to-pmem-block-driver/20170804-191719 config: i386-randconfig-x003-201731 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): drivers//dma/dmaengine.c: In function 'dmaengine_unmap': >> drivers//dma/dmaengine.c:1140:8: warning: cast to pointer from integer of >> different size [-Wint-to-pointer-cast] sg = (struct scatterlist *)unmap->addr[i]; ^ drivers//dma/dmaengine.c:1151:8: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] sg = (struct scatterlist *)unmap->addr[i]; ^ Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size Cyclomatic Complexity 3 arch/x86/include/asm/bitops.h:set_bit Cyclomatic Complexity 3 arch/x86/include/asm/bitops.h:clear_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u32 Cyclomatic Complexity 1 include/linux/list.h:__list_add_valid Cyclomatic Complexity 1 include/linux/list.h:__list_del_entry_valid Cyclomatic Complexity 1 include/linux/list.h:__list_del Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_read Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_set Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_inc Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_dec Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_dec_and_test Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:rep_nop Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpu_relax Cyclomatic Complexity 1 include/linux/jiffies.h:_msecs_to_jiffies Cyclomatic Complexity 5 include/linux/jiffies.h:msecs_to_jiffies Cyclomatic Complexity 1 include/linux/refcount.h:refcount_set Cyclomatic Complexity 1 include/linux/kref.h:kref_init Cyclomatic Complexity 1 include/linux/kobject.h:kobject_name Cyclomatic Complexity 1 include/linux/rculist.h:list_del_rcu Cyclomatic Complexity 1 include/linux/device.h:dev_to_node Cyclomatic Complexity 1 include/linux/dma-debug.h:debug_dma_unmap_page Cyclomatic Complexity 1 include/linux/dma-debug.h:debug_dma_unmap_sg Cyclomatic Complexity 1 include/linux/dma-mapping.h:valid_dma_direction Cyclomatic Complexity 1 arch/x86/include/asm/dma-mapping.h:get_arch_dma_ops Cyclomatic Complexity 1 include/linux/module.h:__module_get Cyclomatic Complexity 1 include/linux/module.h:try_module_get Cyclomatic Complexity 1 include/linux/module.h:module_put Cyclomatic Complexity 1 include/linux/dmaengine.h:txd_lock Cyclomatic Complexity 1 include/linux/dmaengine.h:txd_unlock Cyclomatic Complexity 1 include/linux/dmaengine.h:txd_clear_parent Cyclomatic Complexity 1 include/linux/dmaengine.h:txd_clear_next Cyclomatic Complexity 1 include/linux/dmaengine.h:txd_next Cyclomatic Complexity 1 include/linux/dmaengine.h:__dma_cap_set Cyclomatic Complexity 1 include/linux/dmaengine.h:__dma_cap_clear Cyclomatic Complexity 1 include/linux/dmaengine.h:dma_async_issue_pending Cyclomatic Complexity 56 include/linux/slab.h:kmalloc_index Cyclomatic Complexity 67 include/linux/slab.h:kmalloc_large Cyclomatic Complexity 9 include/linux/slab.h:kmalloc Cyclomatic Complexity 1 include/linux/slab.h:kzalloc Cyclomatic Complexity 1 drivers//dma/dmaengine.c:dma_chan_to_owner Cyclomatic Complexity 2 drivers//dma/dmaengine.c:balance_ref_count Cyclomatic Complexity 5 include/linux/dmaengine.h:dma_async_is_tx_complete Cyclomatic Complexity 2 include/linux/dmaengine.h:__dma_has_cap Cyclomatic Complexity 7 drivers//dma/dmaengine.c:device_has_all_tx_types Cyclomatic Complexity 9 drivers//dma/dmaengine.c:dma_chan_get Cyclomatic Complexity 3 include/linux/device.h:dev_name Cyclomatic Complexity 1 include/linux/dmaengine.h:dma_chan_name Cyclomatic Complexity 10 include/linux/dma-mapping.h:get_dma_ops Cyclomatic Complexity 3 include/linux/bitops.h:get_count_order Cyclomatic Complexity 9 include/linux/bitmap.h:bitmap_fill Cyclomatic Complexity 7
Re: [PATCH v3 8/8] libnvdimm: add DMA support for pmem blk-mq
Hi Dave, [auto build test WARNING on linus/master] [also build test WARNING on v4.13-rc3] [cannot apply to next-20170804] [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/Dave-Jiang/Adding-blk-mq-and-DMA-support-to-pmem-block-driver/20170804-191719 config: i386-randconfig-x018-201731 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): drivers//nvdimm/pmem.c: In function 'pmem_handle_cmd_dma': >> drivers//nvdimm/pmem.c:416:20: warning: cast from pointer to integer of >> different size [-Wpointer-to-int-cast] unmap->addr[1] = (dma_addr_t)cmd->sg; ^ drivers//nvdimm/pmem.c:421:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] unmap->addr[0] = (dma_addr_t)cmd->sg; ^ vim +416 drivers//nvdimm/pmem.c 347 348 static int pmem_handle_cmd_dma(struct pmem_cmd *cmd, bool is_write) 349 { 350 struct request *req = cmd->rq; 351 struct request_queue *q = req->q; 352 struct pmem_device *pmem = q->queuedata; 353 struct device *dev = to_dev(pmem); 354 phys_addr_t pmem_off = blk_rq_pos(req) * 512 + pmem->data_offset; 355 void *pmem_addr = pmem->virt_addr + pmem_off; 356 struct nd_region *nd_region = to_region(pmem); 357 size_t len; 358 struct dma_device *dma = cmd->chan->device; 359 struct dmaengine_unmap_data *unmap; 360 dma_cookie_t cookie; 361 struct dma_async_tx_descriptor *txd; 362 struct page *page; 363 unsigned int off; 364 int rc; 365 enum dma_data_direction dir; 366 dma_addr_t dma_addr; 367 368 if (req->cmd_flags & REQ_FLUSH) 369 nvdimm_flush(nd_region); 370 371 unmap = dmaengine_get_unmap_data(dma->dev, 2, GFP_NOWAIT); 372 if (!unmap) { 373 dev_dbg(dev, "failed to get dma unmap data\n"); 374 rc = -ENOMEM; 375 goto err; 376 } 377 378 /* 379 * If reading from pmem, writing to scatterlist, 380 * and if writing to pmem, reading from scatterlist. 381 */ 382 dir = is_write ? DMA_FROM_DEVICE : DMA_TO_DEVICE; 383 cmd->sg_nents = blk_rq_map_sg(req->q, req, cmd->sg); 384 if (cmd->sg_nents < 1) { 385 rc = -EINVAL; 386 goto err; 387 } 388 389 if (cmd->sg_nents > 128) { 390 rc = -ENOMEM; 391 dev_warn(dev, "Number of sg greater than allocated\n"); 392 goto err; 393 } 394 395 rc = dma_map_sg(dma->dev, cmd->sg, cmd->sg_nents, dir); 396 if (rc < 1) { 397 rc = -ENXIO; 398 goto err; 399 } 400 401 len = blk_rq_payload_bytes(req); 402 page = virt_to_page(pmem_addr); 403 off = offset_in_page(pmem_addr); 404 dir = is_write ? DMA_TO_DEVICE : DMA_FROM_DEVICE; 405 dma_addr = dma_map_page(dma->dev, page, off, len, dir); 406 if (dma_mapping_error(dma->dev, unmap->addr[0])) { 407 dev_dbg(dma->dev, "src DMA mapping error\n"); 408 rc = -ENXIO; 409 goto err_unmap_sg; 410 } 411 412 unmap->len = len; 413 414 if (is_write) { 415 unmap->addr[0] = dma_addr; > 416 unmap->addr[1] = (dma_addr_t)cmd->sg; 417 unmap->to_cnt = 1; 418 unmap->from_cnt = 0; 419 dma_unmap_data_sg_from_nents(unmap, 2) = cmd->sg_nents; 420 } else { 421 unmap->addr[0] = (dma_addr_t)cmd->sg; 422 unmap->addr[1] = dma_addr; 423 unmap->from_cnt = 1; 424 unmap->to_cnt = 0; 425 dma_unmap_data_sg_to_nents(unmap, 2) = cmd->sg_nents; 426 } 427 428 txd = dma->device_prep_dma_memcpy_sg(cmd->chan, 429 cmd->sg, cmd->sg_nents, dma_addr, 430 !is_write, DMA_PREP_INTERRUPT); 431 if (!txd) { 432 dev_dbg(dma->dev, "dma prep failed\n"); 433 rc = -ENXIO; 434 goto err_unmap_buffer; 435 } 436 437 txd->callback_result = nd_pmem_dma_callback; 438 txd->callback_param = cmd; 439 dma_set_unmap(txd,
Re: [PATCH 1/3] btt: remove btt_rw_page()
Hi Ross, [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.13-rc3] [cannot apply to 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/Ross-Zwisler/btt-remove-btt_rw_page/20170729-165642 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: i386-randconfig-h0-08032208 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): In file included from drivers/nvdimm/btt.c:27:0: drivers/nvdimm/btt.c: In function 'btt_make_request': >> drivers/nvdimm/nd.h:407:2: warning: 'start' may be used uninitialized in >> this function [-Wmaybe-uninitialized] generic_end_io_acct(bio_data_dir(bio), >part0, start); ^~~ drivers/nvdimm/btt.c:1202:16: note: 'start' was declared here unsigned long start; ^ vim +/start +407 drivers/nvdimm/nd.h cd03412a5 Dan Williams 2016-03-11 340 3d88002e4 Dan Williams 2015-05-31 341 struct nd_region *to_nd_region(struct device *dev); 3d88002e4 Dan Williams 2015-05-31 342 int nd_region_to_nstype(struct nd_region *nd_region); 3d88002e4 Dan Williams 2015-05-31 343 int nd_region_register_namespaces(struct nd_region *nd_region, int *err); c12c48ce8 Dan Williams 2017-06-04 344 u64 nd_region_interleave_set_cookie(struct nd_region *nd_region, c12c48ce8 Dan Williams 2017-06-04 345 struct nd_namespace_index *nsindex); 86ef58a4e Dan Williams 2017-02-28 346 u64 nd_region_interleave_set_altcookie(struct nd_region *nd_region); 3d88002e4 Dan Williams 2015-05-31 347 void nvdimm_bus_lock(struct device *dev); 3d88002e4 Dan Williams 2015-05-31 348 void nvdimm_bus_unlock(struct device *dev); 3d88002e4 Dan Williams 2015-05-31 349 bool is_nvdimm_bus_locked(struct device *dev); 581388209 Dan Williams 2015-06-23 350 int nvdimm_revalidate_disk(struct gendisk *disk); bf9bccc14 Dan Williams 2015-06-17 351 void nvdimm_drvdata_release(struct kref *kref); bf9bccc14 Dan Williams 2015-06-17 352 void put_ndd(struct nvdimm_drvdata *ndd); 4a826c83d Dan Williams 2015-06-09 353 int nd_label_reserve_dpa(struct nvdimm_drvdata *ndd); 4a826c83d Dan Williams 2015-06-09 354 void nvdimm_free_dpa(struct nvdimm_drvdata *ndd, struct resource *res); 4a826c83d Dan Williams 2015-06-09 355 struct resource *nvdimm_allocate_dpa(struct nvdimm_drvdata *ndd, 4a826c83d Dan Williams 2015-06-09 356 struct nd_label_id *label_id, resource_size_t start, 4a826c83d Dan Williams 2015-06-09 357 resource_size_t n); 8c2f7e865 Dan Williams 2015-06-25 358 resource_size_t nvdimm_namespace_capacity(struct nd_namespace_common *ndns); 8c2f7e865 Dan Williams 2015-06-25 359 struct nd_namespace_common *nvdimm_namespace_common_probe(struct device *dev); 5212e11fd Vishal Verma 2015-06-25 360 int nvdimm_namespace_attach_btt(struct nd_namespace_common *ndns); 298f2bc5d Dan Williams 2016-03-15 361 int nvdimm_namespace_detach_btt(struct nd_btt *nd_btt); 5212e11fd Vishal Verma 2015-06-25 362 const char *nvdimm_namespace_disk_name(struct nd_namespace_common *ndns, 5212e11fd Vishal Verma 2015-06-25 363 char *name); f979b13c3 Dan Williams 2017-06-04 364 unsigned int pmem_sector_size(struct nd_namespace_common *ndns); a39018029 Dan Williams 2016-04-07 365 void nvdimm_badblocks_populate(struct nd_region *nd_region, a39018029 Dan Williams 2016-04-07 366 struct badblocks *bb, const struct resource *res); 200c79da8 Dan Williams 2016-03-22 367 #if IS_ENABLED(CONFIG_ND_CLAIM) ac515c084 Dan Williams 2016-03-22 368 struct vmem_altmap *nvdimm_setup_pfn(struct nd_pfn *nd_pfn, ac515c084 Dan Williams 2016-03-22 369 struct resource *res, struct vmem_altmap *altmap); 200c79da8 Dan Williams 2016-03-22 370 int devm_nsio_enable(struct device *dev, struct nd_namespace_io *nsio); 200c79da8 Dan Williams 2016-03-22 371 void devm_nsio_disable(struct device *dev, struct nd_namespace_io *nsio); 200c79da8 Dan Williams 2016-03-22 372 #else ac515c084 Dan Williams 2016-03-22 373 static inline struct vmem_altmap *nvdimm_setup_pfn(struct nd_pfn *nd_pfn, ac515c084 Dan Williams 2016-03-22 374 struct resource *res, struct vmem_altmap *altmap) ac515c084 Dan Williams 2016-03-22 375 { ac515c084 Dan Williams 2016-03-22 376 return ERR_PTR(-ENXIO); ac515c084 Dan Williams 2016-03-22 377 } 200c79da8 Dan Williams 2016-03-22 378 static inline int devm_nsio_enable(struct device *dev, 200c79da8 Dan Williams 2016-03-22 379
Re: [PATCH v2] dm: allow device-mapper to operate without dax support
Hi Dan, [auto build test ERROR on dm/for-next] [also build test ERROR on v4.13-rc3 next-20170802] [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/Dan-Williams/dm-allow-device-mapper-to-operate-without-dax-support/20170802-155255 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: sh-sdk7786_defconfig (attached as .config) compiler: sh4-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=sh All errors (new ones prefixed by >>): drivers/md/dm-table.o: In function `device_dax_write_cache_enabled': dm-table.c:(.text+0xab4): undefined reference to `dax_write_cache_enabled' drivers/md/dm-table.o: In function `dm_table_set_restrictions': >> (.text+0x23d0): undefined reference to `dax_write_cache' --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v2] dm: allow device-mapper to operate without dax support
Hi Dan, [auto build test ERROR on dm/for-next] [also build test ERROR on v4.13-rc3 next-20170802] [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/Dan-Williams/dm-allow-device-mapper-to-operate-without-dax-support/20170802-155255 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: s390-defconfig (attached as .config) compiler: s390x-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=s390 All errors (new ones prefixed by >>): drivers/md/dm.o: In function `cleanup_mapped_device': >> drivers/md/dm.c:1684: undefined reference to `kill_dax' >> drivers/md/dm.c:1685: undefined reference to `put_dax' drivers/md/dm.o: In function `close_table_device': drivers/md/dm.c:651: undefined reference to `put_dax' drivers/md/dm.o: In function `open_table_device': >> drivers/md/dm.c:637: undefined reference to `dax_get_by_host' drivers/md/dm.o: In function `dm_dax_flush': >> drivers/md/dm.c:1003: undefined reference to `dax_get_private' drivers/md/dm.o: In function `dm_dax_copy_from_iter': drivers/md/dm.c:979: undefined reference to `dax_get_private' drivers/md/dm.o: In function `dm_dax_direct_access': drivers/md/dm.c:951: undefined reference to `dax_get_private' drivers/md/dm.o: In function `alloc_dev': >> drivers/md/dm.c:1783: undefined reference to `alloc_dax' drivers/md/dm-table.o: In function `device_dax_write_cache_enabled': drivers/md/dm-table.c:1644: undefined reference to `dax_write_cache_enabled' drivers/md/dm-table.o: In function `dm_table_set_restrictions': drivers/md/dm-table.c:1822: undefined reference to `dax_write_cache' drivers/md/dm-linear.o: In function `linear_dax_flush': >> drivers/md/dm-linear.c:197: undefined reference to `bdev_dax_pgoff' >> drivers/md/dm-linear.c:199: undefined reference to `dax_flush' drivers/md/dm-linear.o: In function `linear_dax_copy_from_iter': drivers/md/dm-linear.c:183: undefined reference to `bdev_dax_pgoff' >> drivers/md/dm-linear.c:185: undefined reference to `dax_copy_from_iter' drivers/md/dm-linear.o: In function `linear_dax_direct_access': drivers/md/dm-linear.c:168: undefined reference to `bdev_dax_pgoff' >> drivers/md/dm-linear.c:171: undefined reference to `dax_direct_access' drivers/md/dm-stripe.o: In function `stripe_dax_flush': >> drivers/md/dm-stripe.c:369: undefined reference to `bdev_dax_pgoff' >> drivers/md/dm-stripe.c:371: undefined reference to `dax_flush' drivers/md/dm-stripe.o: In function `stripe_dax_copy_from_iter': drivers/md/dm-stripe.c:350: undefined reference to `bdev_dax_pgoff' >> drivers/md/dm-stripe.c:352: undefined reference to `dax_copy_from_iter' drivers/md/dm-stripe.o: In function `stripe_dax_direct_access': drivers/md/dm-stripe.c:330: undefined reference to `bdev_dax_pgoff' >> drivers/md/dm-stripe.c:333: undefined reference to `dax_direct_access' vim +1684 drivers/md/dm.c 4a0b4ddf2 Mike Snitzer2010-08-12 1672 0f20972f7 Mike Snitzer2015-04-28 1673 static void cleanup_mapped_device(struct mapped_device *md) 0f20972f7 Mike Snitzer2015-04-28 1674 { 0f20972f7 Mike Snitzer2015-04-28 1675 if (md->wq) 0f20972f7 Mike Snitzer2015-04-28 1676 destroy_workqueue(md->wq); 0f20972f7 Mike Snitzer2015-04-28 1677 if (md->kworker_task) 0f20972f7 Mike Snitzer2015-04-28 1678 kthread_stop(md->kworker_task); 0f20972f7 Mike Snitzer2015-04-28 1679 mempool_destroy(md->io_pool); 0f20972f7 Mike Snitzer2015-04-28 1680 if (md->bs) 0f20972f7 Mike Snitzer2015-04-28 1681 bioset_free(md->bs); 0f20972f7 Mike Snitzer2015-04-28 1682 f26c5719b Dan Williams2017-04-12 1683 if (md->dax_dev) { f26c5719b Dan Williams2017-04-12 @1684 kill_dax(md->dax_dev); f26c5719b Dan Williams2017-04-12 @1685 put_dax(md->dax_dev); f26c5719b Dan Williams2017-04-12 1686 md->dax_dev = NULL; f26c5719b Dan Williams2017-04-12 1687 } f26c5719b Dan Williams2017-04-12 1688 0f20972f7 Mike Snitzer2015-04-28 1689 if (md->disk) { 0f20972f7 Mike Snitzer2015-04-28 1690 spin_lock(&_minor_lock); 0f20972f7 Mike Snitzer2015-04-28 1691 md->disk->private_data = NULL; 0f20972f7 Mike Snitzer2015-04-28 1692 spin_unlock(&_minor_lock); 0f20972f7 Mike Snitzer2015-04-28 1693 del_gendisk(md->disk); 0f20972f7 Mike Snitzer2015-04-28
Re: [PATCH] dm: enable opt-out of device-mapper dax support
Hi Dan, [auto build test ERROR on dm/for-next] [also build test ERROR on v4.13-rc3 next-20170801] [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/Dan-Williams/dm-enable-opt-out-of-device-mapper-dax-support/20170802-063827 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: x86_64-allyesdebian (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/md/dm-table.o: In function `device_dax_write_cache_enabled': >> dm-table.c:(.text+0x568): undefined reference to `dax_write_cache_enabled' drivers/md/dm-table.o: In function `dm_table_set_restrictions': >> dm-table.c:(.text+0x1e40): undefined reference to `dax_write_cache' --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH] dm: enable opt-out of device-mapper dax support
Hi Dan, [auto build test ERROR on dm/for-next] [also build test ERROR on v4.13-rc3 next-20170801] [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/Dan-Williams/dm-enable-opt-out-of-device-mapper-dax-support/20170802-063827 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: sparc64-defconfig (attached as .config) compiler: sparc64-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=sparc64 All errors (new ones prefixed by >>): >> ERROR: "dax_write_cache" [drivers/md/dm-mod.ko] undefined! >> ERROR: "dax_write_cache_enabled" [drivers/md/dm-mod.ko] undefined! --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[linux-nvdimm:libnvdimm-fixes 10/12] drivers/acpi/nfit/core.c:1958:52: error: 'ARCH_MEMREMAP_PMEM' undeclared
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-fixes head: 1fc421163dc84697fa48bdd397580b3ffeca512c commit: b27db65a069bc14e8739e05278e2b95ee2523e47 [10/12] pmem: remove global pmem api config: i386-randconfig-x071-06041529 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: git checkout b27db65a069bc14e8739e05278e2b95ee2523e47 # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/acpi/nfit/core.c: In function 'acpi_nfit_blk_region_enable': >> drivers/acpi/nfit/core.c:1958:52: error: 'ARCH_MEMREMAP_PMEM' undeclared >> (first use in this function) nfit_mem->spa_bdw->length, ARCH_MEMREMAP_PMEM); ^~ drivers/acpi/nfit/core.c:1958:52: note: each undeclared identifier is reported only once for each function it appears in vim +/ARCH_MEMREMAP_PMEM +1958 drivers/acpi/nfit/core.c 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1952 nfit_blk->nd_region = to_nd_region(dev); 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1953 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1954 /* map block aperture memory */ 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1955 nfit_blk->bdw_offset = nfit_mem->bdw->offset; 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1956 mmio = _blk->mmio[BDW]; 29b9aa0a drivers/acpi/nfit.c Dan Williams 2016-06-06 1957 mmio->addr.base = devm_nvdimm_memremap(dev, nfit_mem->spa_bdw->address, 29b9aa0a drivers/acpi/nfit.c Dan Williams 2016-06-06 @1958 nfit_mem->spa_bdw->length, ARCH_MEMREMAP_PMEM); 67a3e8fe drivers/acpi/nfit.c Ross Zwisler 2015-08-27 1959 if (!mmio->addr.base) { 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1960 dev_dbg(dev, "%s: %s failed to map bdw\n", __func__, 047fc8a1 drivers/acpi/nfit.c Ross Zwisler 2015-06-25 1961 nvdimm_name(nvdimm)); :: The code at line 1958 was first introduced by commit :: 29b9aa0aa3837c93ecd804dd3ada39b8cc75607d libnvdimm: introduce devm_nvdimm_memremap(), convert nfit_spa_map() users :: TO: Dan Williams:: CC: Dan Williams --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 1/2] block, dax: move "select DAX" from BLOCK to FS_DAX
Hi Dan, [auto build test ERROR on linus/master] [also build test ERROR on next-20170508] [cannot apply to v4.11] [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/Dan-Williams/block-dax-move-select-DAX-from-BLOCK-to-FS_DAX/20170509-051522 config: parisc-c3000_defconfig (attached as .config) compiler: hppa-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=parisc All errors (new ones prefixed by >>): fs/built-in.o: In function `bdev_dax_supported': >> (.text.bdev_dax_supported+0x4c): undefined reference to `dax_get_by_host' fs/built-in.o: In function `bdev_dax_supported': >> (.text.bdev_dax_supported+0x5c): undefined reference to `dax_read_lock' fs/built-in.o: In function `bdev_dax_supported': >> (.text.bdev_dax_supported+0x7c): undefined reference to `dax_direct_access' fs/built-in.o: In function `bdev_dax_supported': >> (.text.bdev_dax_supported+0x88): undefined reference to `dax_read_unlock' fs/built-in.o: In function `bdev_dax_supported': >> (.text.bdev_dax_supported+0x90): undefined reference to `put_dax' --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 2/3] virtio, rpmsg: switch to dynamic_hex_dump()
Hi Dan, [auto build test ERROR on pm/linux-next] [also build test ERROR on v4.11-rc8 next-20170428] [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/Dan-Williams/dynamic_hex_dump-cleanup/20170429-135503 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next config: arm-multi_v7_defconfig (attached as .config) compiler: arm-linux-gnueabi-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=arm All errors (new ones prefixed by >>): drivers//rpmsg/virtio_rpmsg_bus.c: In function 'rpmsg_send_offchannel_raw': >> drivers//rpmsg/virtio_rpmsg_bus.c:602:2: error: implicit declaration of >> function 'dynamic_hex_dump' [-Werror=implicit-function-declaration] dynamic_hex_dump("rpmsg_virtio TX: ", DUMP_PREFIX_NONE, 16, 1, ^~~~ cc1: some warnings being treated as errors vim +/dynamic_hex_dump +602 drivers//rpmsg/virtio_rpmsg_bus.c bcabbcca Ohad Ben-Cohen 2011-10-20 596 msg->dst = dst; bcabbcca Ohad Ben-Cohen 2011-10-20 597 msg->reserved = 0; bcabbcca Ohad Ben-Cohen 2011-10-20 598 memcpy(msg->data, data, len); bcabbcca Ohad Ben-Cohen 2011-10-20 599 bcabbcca Ohad Ben-Cohen 2011-10-20 600 dev_dbg(dev, "TX From 0x%x, To 0x%x, Len %d, Flags %d, Reserved %d\n", 0963679c Anna, Suman2016-08-12 601 msg->src, msg->dst, msg->len, msg->flags, msg->reserved); 211e3a93 Anna, Suman2016-08-12 @602 dynamic_hex_dump("rpmsg_virtio TX: ", DUMP_PREFIX_NONE, 16, 1, bcabbcca Ohad Ben-Cohen 2011-10-20 603 msg, sizeof(*msg) + msg->len, true); bcabbcca Ohad Ben-Cohen 2011-10-20 604 bcabbcca Ohad Ben-Cohen 2011-10-20 605 sg_init_one(, msg, sizeof(*msg) + len); :: The code at line 602 was first introduced by commit :: 211e3a93e5b5933e64ddfb299eee462ac7c7d500 rpmsg: use dynamic_hex_dump for hex dump traces :: TO: Anna, Suman:: CC: Bjorn Andersson --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 2/2] x86/ras/mce_amd_inj: Preset MCE injection struct
Hi Borislav, [auto build test ERROR on next-20170421] [cannot apply to tip/x86/core v4.9-rc8 v4.9-rc7 v4.9-rc6 v4.11-rc8] [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/Borislav-Petkov/x86-MCE-Export-memory_error/20170424-215449 config: i386-allmodconfig (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): >> ERROR: "mce_setup" [arch/x86/ras/mce_amd_inj.ko] undefined! --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH] acpi, nfit: fix the memory error check in nfit_handle_mce
Hi Vishal, [auto build test WARNING on pm/linux-next] [also build test WARNING on v4.11-rc7 next-20170420] [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/Vishal-Verma/acpi-nfit-fix-the-memory-error-check-in-nfit_handle_mce/20170421-084359 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next config: x86_64-randconfig-x005-201716 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): drivers/acpi/nfit/mce.c: In function 'nfit_handle_mce': >> drivers/acpi/nfit/mce.c:29:30: warning: comparison of constant '128ul' with >> boolean expression is always false [-Wbool-compare] if (!(mce->status & 0xef80) == BIT(7)) ^~ >> drivers/acpi/nfit/mce.c:29:30: warning: logical not is only applied to the >> left hand side of comparison [-Wlogical-not-parentheses] vim +/128ul +29 drivers/acpi/nfit/mce.c 13 * General Public License for more details. 14 */ 15 #include 16 #include 17 #include 18 #include 19 #include "nfit.h" 20 21 static int nfit_handle_mce(struct notifier_block *nb, unsigned long val, 22 void *data) 23 { 24 struct mce *mce = (struct mce *)data; 25 struct acpi_nfit_desc *acpi_desc; 26 struct nfit_spa *nfit_spa; 27 28 /* We only care about memory errors */ > 29 if (!(mce->status & 0xef80) == BIT(7)) 30 return NOTIFY_DONE; 31 32 /* 33 * mce->addr contains the physical addr accessed that caused the 34 * machine check. We need to walk through the list of NFITs, and see 35 * if any of them matches that address, and only then start a scrub. 36 */ 37 mutex_lock(_desc_lock); --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH v3] axon_ram: add dax_operations support
Hi Dan, [auto build test WARNING on powerpc/next] [also build test WARNING on v4.11-rc7 next-20170419] [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/Dan-Williams/axon_ram-add-dax_operations-support/20170420-091615 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-allyesconfig (attached as .config) compiler: powerpc64-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=powerpc All warnings (new ones prefixed by >>): arch/powerpc/sysdev/axonram.c: In function 'axon_ram_dax_direct_access': arch/powerpc/sysdev/axonram.c:176:31: error: implicit declaration of function 'dax_get_private' [-Werror=implicit-function-declaration] struct axon_ram_bank *bank = dax_get_private(dax_dev); ^~~ >> arch/powerpc/sysdev/axonram.c:176:31: warning: initialization makes pointer >> from integer without a cast [-Wint-conversion] arch/powerpc/sysdev/axonram.c: At top level: arch/powerpc/sysdev/axonram.c:181:21: error: variable 'axon_ram_dax_ops' has initializer but incomplete type static const struct dax_operations axon_ram_dax_ops = { ^~ arch/powerpc/sysdev/axonram.c:182:2: error: unknown field 'direct_access' specified in initializer .direct_access = axon_ram_dax_direct_access, ^ >> arch/powerpc/sysdev/axonram.c:182:19: warning: excess elements in struct >> initializer .direct_access = axon_ram_dax_direct_access, ^~ arch/powerpc/sysdev/axonram.c:182:19: note: (near initialization for 'axon_ram_dax_ops') arch/powerpc/sysdev/axonram.c: In function 'axon_ram_probe': arch/powerpc/sysdev/axonram.c:255:18: error: implicit declaration of function 'alloc_dax' [-Werror=implicit-function-declaration] bank->dax_dev = alloc_dax(bank, bank->disk->disk_name, ^ >> arch/powerpc/sysdev/axonram.c:255:16: warning: assignment makes pointer from >> integer without a cast [-Wint-conversion] bank->dax_dev = alloc_dax(bank, bank->disk->disk_name, ^ arch/powerpc/sysdev/axonram.c:313:3: error: implicit declaration of function 'kill_dax' [-Werror=implicit-function-declaration] kill_dax(bank->dax_dev); ^~~~ arch/powerpc/sysdev/axonram.c:314:3: error: implicit declaration of function 'put_dax' [-Werror=implicit-function-declaration] put_dax(bank->dax_dev); ^~~ arch/powerpc/sysdev/axonram.c: At top level: arch/powerpc/sysdev/axonram.c:181:36: error: storage size of 'axon_ram_dax_ops' isn't known static const struct dax_operations axon_ram_dax_ops = { ^~~~ cc1: some warnings being treated as errors vim +176 arch/powerpc/sysdev/axonram.c 170 }; 171 172 static long 173 axon_ram_dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, long nr_pages, 174 void **kaddr, pfn_t *pfn) 175 { > 176 struct axon_ram_bank *bank = dax_get_private(dax_dev); 177 178 return __axon_ram_direct_access(bank, pgoff, nr_pages, kaddr, pfn); 179 } 180 181 static const struct dax_operations axon_ram_dax_ops = { > 182 .direct_access = axon_ram_dax_direct_access, 183 }; 184 185 /** 186 * axon_ram_probe - probe() method for platform driver 187 * @device: see platform_driver method 188 */ 189 static int axon_ram_probe(struct platform_device *device) 190 { 191 static int axon_ram_bank_id = -1; 192 struct axon_ram_bank *bank; 193 struct resource resource; 194 int rc = 0; 195 196 axon_ram_bank_id++; 197 198 dev_info(>dev, "Found memory controller on %s\n", 199 device->dev.of_node->full_name); 200 201 bank = kzalloc(sizeof(struct axon_ram_bank), GFP_KERNEL); 202 if (bank == NULL) { 203 dev_err(>dev, "Out of memory\n"); 204 rc = -ENOMEM; 205 goto failed; 206 } 207 208 device->dev.platform_data = bank; 209 210 bank->device = device; 211 212 if (of_address_to_resource(device->dev.of_node, 0, ) != 0) { 213 dev_err(>dev, "Cannot access device tree\n"); 214 rc = -EFAULT; 215 goto failed; 216 } 217 218 bank->size = resource_size(); 219 220 if (bank->size == 0) { 221
Re: [PATCH v3] axon_ram: add dax_operations support
Hi Dan, [auto build test ERROR on powerpc/next] [also build test ERROR on v4.11-rc7 next-20170419] [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/Dan-Williams/axon_ram-add-dax_operations-support/20170420-091615 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-defconfig (attached as .config) compiler: powerpc64-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=powerpc All errors (new ones prefixed by >>): arch/powerpc/sysdev/axonram.c: In function 'axon_ram_dax_direct_access': >> arch/powerpc/sysdev/axonram.c:176:31: error: implicit declaration of >> function 'dax_get_private' [-Werror=implicit-function-declaration] struct axon_ram_bank *bank = dax_get_private(dax_dev); ^~~ >> arch/powerpc/sysdev/axonram.c:176:31: error: initialization makes pointer >> from integer without a cast [-Werror=int-conversion] arch/powerpc/sysdev/axonram.c: At top level: >> arch/powerpc/sysdev/axonram.c:181:21: error: variable 'axon_ram_dax_ops' has >> initializer but incomplete type static const struct dax_operations axon_ram_dax_ops = { ^~ >> arch/powerpc/sysdev/axonram.c:182:2: error: unknown field 'direct_access' >> specified in initializer .direct_access = axon_ram_dax_direct_access, ^ arch/powerpc/sysdev/axonram.c:182:19: error: excess elements in struct initializer [-Werror] .direct_access = axon_ram_dax_direct_access, ^~ arch/powerpc/sysdev/axonram.c:182:19: note: (near initialization for 'axon_ram_dax_ops') arch/powerpc/sysdev/axonram.c: In function 'axon_ram_probe': >> arch/powerpc/sysdev/axonram.c:255:18: error: implicit declaration of >> function 'alloc_dax' [-Werror=implicit-function-declaration] bank->dax_dev = alloc_dax(bank, bank->disk->disk_name, ^ >> arch/powerpc/sysdev/axonram.c:255:16: error: assignment makes pointer from >> integer without a cast [-Werror=int-conversion] bank->dax_dev = alloc_dax(bank, bank->disk->disk_name, ^ >> arch/powerpc/sysdev/axonram.c:313:3: error: implicit declaration of function >> 'kill_dax' [-Werror=implicit-function-declaration] kill_dax(bank->dax_dev); ^~~~ >> arch/powerpc/sysdev/axonram.c:314:3: error: implicit declaration of function >> 'put_dax' [-Werror=implicit-function-declaration] put_dax(bank->dax_dev); ^~~ arch/powerpc/sysdev/axonram.c: At top level: >> arch/powerpc/sysdev/axonram.c:181:36: error: storage size of >> 'axon_ram_dax_ops' isn't known static const struct dax_operations axon_ram_dax_ops = { ^~~~ cc1: all warnings being treated as errors vim +/dax_get_private +176 arch/powerpc/sysdev/axonram.c 170 }; 171 172 static long 173 axon_ram_dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, long nr_pages, 174 void **kaddr, pfn_t *pfn) 175 { > 176 struct axon_ram_bank *bank = dax_get_private(dax_dev); 177 178 return __axon_ram_direct_access(bank, pgoff, nr_pages, kaddr, pfn); 179 } 180 > 181 static const struct dax_operations axon_ram_dax_ops = { > 182 .direct_access = axon_ram_dax_direct_access, 183 }; 184 185 /** 186 * axon_ram_probe - probe() method for platform driver 187 * @device: see platform_driver method 188 */ 189 static int axon_ram_probe(struct platform_device *device) 190 { 191 static int axon_ram_bank_id = -1; 192 struct axon_ram_bank *bank; 193 struct resource resource; 194 int rc = 0; 195 196 axon_ram_bank_id++; 197 198 dev_info(>dev, "Found memory controller on %s\n", 199 device->dev.of_node->full_name); 200 201 bank = kzalloc(sizeof(struct axon_ram_bank), GFP_KERNEL); 202 if (bank == NULL) { 203 dev_err(>dev, "Out of memory\n"); 204 rc = -ENOMEM; 205 goto failed; 206 } 207 208 device->dev.platform_data = bank; 209 210 bank->device = device; 211 212 if (of_address_to_resource(device->dev.of_node, 0, ) != 0) { 213 dev_err(>dev, "Cannot access device tree\n"); 214 rc = -EFAULT; 215 goto failed; 216 } 217 218 bank->size = resource_size(); 219 220 if
Re: [PATCH] acpi, nfit: skip ARS on machine-check-recovery capable platforms
Hi Dan, [auto build test ERROR on pm/linux-next] [also build test ERROR on v4.10-rc7 next-20170207] [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/Dan-Williams/acpi-nfit-skip-ARS-on-machine-check-recovery-capable-platforms/20170208-081649 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next config: i386-randconfig-x0-02081903 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from arch/x86/include/asm/current.h:4:0, from include/linux/mutex.h:13, from include/linux/notifier.h:13, from drivers/acpi/nfit/mce.c:15: drivers/acpi/nfit/mce.c: In function 'is_ars_required': >> drivers/acpi/nfit/mce.c:97:37: error: 'mcsafe_key' undeclared (first use in >> this function) if (static_branch_unlikely(_key)) ^ include/linux/compiler.h:168:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ include/linux/jump_label.h:387:44: note: in expansion of macro 'static_key_enabled' #define static_branch_unlikely(x) unlikely(static_key_enabled(&(x)->key)) ^~ >> drivers/acpi/nfit/mce.c:97:13: note: in expansion of macro >> 'static_branch_unlikely' if (static_branch_unlikely(_key)) ^~ drivers/acpi/nfit/mce.c:97:37: note: each undeclared identifier is reported only once for each function it appears in if (static_branch_unlikely(_key)) ^ include/linux/compiler.h:168:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ include/linux/jump_label.h:387:44: note: in expansion of macro 'static_key_enabled' #define static_branch_unlikely(x) unlikely(static_key_enabled(&(x)->key)) ^~ >> drivers/acpi/nfit/mce.c:97:13: note: in expansion of macro >> 'static_branch_unlikely' if (static_branch_unlikely(_key)) ^~ vim +/mcsafe_key +97 drivers/acpi/nfit/mce.c 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License for more details. 14 */ > 15 #include 16 #include 17 #include 18 #include 19 #include "nfit.h" 20 21 static int nfit_handle_mce(struct notifier_block *nb, unsigned long val, 22 void *data) 23 { 24 struct mce *mce = (struct mce *)data; 25 struct acpi_nfit_desc *acpi_desc; 26 struct nfit_spa *nfit_spa; 27 28 /* We only care about memory errors */ 29 if (!(mce->status & MCACOD)) 30 return NOTIFY_DONE; 31 32 /* 33 * mce->addr contains the physical addr accessed that caused the 34 * machine check. We need to walk through the list of NFITs, and see 35 * if any of them matches that address, and only then start a scrub. 36 */ 37 mutex_lock(_desc_lock); 38 list_for_each_entry(acpi_desc, _descs, list) { 39 struct device *dev = acpi_desc->dev; 40 int found_match = 0; 41 42 mutex_lock(_desc->init_mutex); 43 list_for_each_entry(nfit_spa, _desc->spas, list) { 44 struct acpi_nfit_system_address *spa = nfit_spa->spa; 45 46 if (nfit_spa_type(spa) != NFIT_SPA_PM) 47 continue; 48 /* find the spa that covers the mce addr */ 49 if (spa->address > mce->addr) 50 continue; 51 if ((spa->address + spa->length - 1) < mce->addr) 52 continue; 53 found_match = 1; 54 dev_dbg(dev, "%s: addr in SPA %d (0x%llx, 0x%llx)\n", 55 __func__, spa->range_index, spa->address, 56 spa->length); 57 /* 58 * We can break at the first match because we're going 59
Re: [PATCH] mm: replace FAULT_FLAG_SIZE with parameter to huge_fault
Hi Dave, [auto build test ERROR on mmotm/master] [cannot apply to linus/master linux/master v4.10-rc6 next-20170203] [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/Dave-Jiang/mm-replace-FAULT_FLAG_SIZE-with-parameter-to-huge_fault/20170204-053548 base: git://git.cmpxchg.org/linux-mmotm.git master config: i386-randconfig-x004-201705 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): >> fs/ext4/file.c:280:1: error: conflicting types for 'ext4_dax_huge_fault' ext4_dax_huge_fault(struct vm_fault *vmf) ^~~ fs/ext4/file.c:258:12: note: previous definition of 'ext4_dax_huge_fault' was here static int ext4_dax_huge_fault(struct vm_fault *vmf, ^~~ fs/ext4/file.c: In function 'ext4_dax_huge_fault': >> fs/ext4/file.c:292:32: error: incompatible type for argument 2 of >> 'dax_iomap_fault' result = dax_iomap_fault(vmf, _iomap_ops); ^ In file included from fs/ext4/file.c:25:0: include/linux/dax.h:41:5: note: expected 'enum page_entry_size' but argument is of type 'struct iomap_ops *' int dax_iomap_fault(struct vm_fault *vmf, enum page_entry_size pe_size, ^~~ >> fs/ext4/file.c:292:11: error: too few arguments to function 'dax_iomap_fault' result = dax_iomap_fault(vmf, _iomap_ops); ^~~ In file included from fs/ext4/file.c:25:0: include/linux/dax.h:41:5: note: declared here int dax_iomap_fault(struct vm_fault *vmf, enum page_entry_size pe_size, ^~~ fs/ext4/file.c: In function 'ext4_dax_fault': >> fs/ext4/file.c:302:9: error: too many arguments to function >> 'ext4_dax_huge_fault' return ext4_dax_huge_fault(vmf, PE_SIZE_PTE); ^~~ fs/ext4/file.c:280:1: note: declared here ext4_dax_huge_fault(struct vm_fault *vmf) ^~~ fs/ext4/file.c: At top level: >> fs/ext4/file.c:337:16: error: initialization from incompatible pointer type >> [-Werror=incompatible-pointer-types] .huge_fault = ext4_dax_huge_fault, ^~~ fs/ext4/file.c:337:16: note: (near initialization for 'ext4_dax_vm_ops.huge_fault') fs/ext4/file.c:258:12: warning: 'ext4_dax_huge_fault' defined but not used [-Wunused-function] static int ext4_dax_huge_fault(struct vm_fault *vmf, ^~~ cc1: some warnings being treated as errors vim +/ext4_dax_huge_fault +280 fs/ext4/file.c 01a33b4ac Matthew Wilcox 2015-09-08 274sb_end_pagefault(sb); 01a33b4ac Matthew Wilcox 2015-09-08 275 01a33b4ac Matthew Wilcox 2015-09-08 276return result; 923ae0ff9 Ross Zwisler 2015-02-16 277 } 923ae0ff9 Ross Zwisler 2015-02-16 278 c6da0697e Dave Jiang 2017-02-02 279 static int 30599588c Dave Jiang 2017-02-02 @280 ext4_dax_huge_fault(struct vm_fault *vmf) 11bd1a9ec Matthew Wilcox 2015-09-08 281 { 01a33b4ac Matthew Wilcox 2015-09-08 282int result; e6ae40ec2 Dave Jiang 2017-02-02 283struct inode *inode = file_inode(vmf->vma->vm_file); 01a33b4ac Matthew Wilcox 2015-09-08 284struct super_block *sb = inode->i_sb; c6da0697e Dave Jiang 2017-02-02 285bool write = vmf->flags & FAULT_FLAG_WRITE; 01a33b4ac Matthew Wilcox 2015-09-08 286 01a33b4ac Matthew Wilcox 2015-09-08 287if (write) { 01a33b4ac Matthew Wilcox 2015-09-08 288sb_start_pagefault(sb); e6ae40ec2 Dave Jiang 2017-02-02 289 file_update_time(vmf->vma->vm_file); 1db175428 Jan Kara 2016-10-21 290} ea3d7209c Jan Kara 2015-12-07 291 down_read(_I(inode)->i_mmap_sem); 30599588c Dave Jiang 2017-02-02 @292result = dax_iomap_fault(vmf, _iomap_ops); ea3d7209c Jan Kara 2015-12-07 293 up_read(_I(inode)->i_mmap_sem); 1db175428 Jan Kara 2016-10-21 294if (write) 01a33b4ac Matthew Wilcox 2015-09-08 295sb_end_pagefault(sb); 01a33b4ac Matthew Wilcox 2015-09-08 296 01a33b4ac Matthew Wilcox 2015-09-08 297return result; 11bd1a9ec Matthew Wilcox 2015-09-08 298 } 11bd1a9ec Matthew Wilcox 2015-09-08 299 22711acc4 Dave Jiang 2017-02-03 300 static int ext4_dax_fault(struct vm_fault *vmf) 22711acc4 Dave Jiang 2017-02-03 301 { 22711acc4 Dave Jiang 2017-02-03 @302return ext4_dax_huge_fault(vmf, PE_SIZE_PTE); 22711acc4 Dave Jiang 2017-02-03 303 } 22711acc4 Dave Jiang 2017-02-03 304 ea3d7209c Jan Kara 2015-12-07 305 /* 1e9d180ba Ross Zwisler 2016-02-27 306 * Handle write fault for VM_MIXEDMAP mappings. Similarly to ext4_dax_fault() ea3d7209c Jan Kara 2015-12-07 307 * handler we
Re: [PATCH 2/2] tools/testing/nvdimm: test get_config_size DSM failures
Hi Dan, [auto build test WARNING on next-20160913] [cannot apply to pm/linux-next linus/master linux/master v4.8-rc6 v4.8-rc5 v4.8-rc4 v4.8-rc6] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base= (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Dan-Williams/nfit-fail-DSMs-that-return-non-zero-status-by-default/20160914-093545 config: x86_64-rhel (attached as .config) compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): tools/testing/nvdimm//test/nfit.c: In function 'handle_show': >> tools/testing/nvdimm//test/nfit.c:609:26: warning: format '%lx' expects >> argument of type 'long unsigned int', but argument 3 has type 'u32 {aka >> unsigned int}' [-Wformat=] return sprintf(buf, "%#lx", handle[dimm]); ^ vim +609 tools/testing/nvdimm//test/nfit.c 593 594 if (sscanf(dev_name(dev), "test_dimm%d", ) != 1 595 || dimm >= NUM_DCR || dimm < 0) 596 return -ENXIO; 597 return dimm; 598 } 599 600 601 static ssize_t handle_show(struct device *dev, struct device_attribute *attr, 602 char *buf) 603 { 604 int dimm = dimm_name_to_id(dev); 605 606 if (dimm < 0) 607 return dimm; 608 > 609 return sprintf(buf, "%#lx", handle[dimm]); 610 } 611 DEVICE_ATTR_RO(handle); 612 613 static ssize_t fail_cmd_show(struct device *dev, struct device_attribute *attr, 614 char *buf) 615 { 616 int dimm = dimm_name_to_id(dev); 617 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH 1/2] libnvdimm: add missing macros
Hi, [auto build test WARNING on linux-nvdimm/libnvdimm-for-next] [also build test WARNING on v4.7-rc6 next-20160708] [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/Eric-Engestrom/libnvdimm-add-missing-macros/20160709-003310 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-allmodconfig (attached as .config) compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from drivers/dax/../nvdimm/nd.h:20:0, from drivers/dax/pmem.c:18: >> include/uapi/linux/ndctl.h:24:0: warning: "ARRAY_SIZE" redefined #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr)[0]) In file included from include/linux/percpu-refcount.h:49:0, from drivers/dax/pmem.c:13: include/linux/kernel.h:54:0: note: this is the location of the previous definition #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) vim +/ARRAY_SIZE +24 include/uapi/linux/ndctl.h 8 * This program is distributed in the hope it will be useful, but WITHOUT ANY 9 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 11 * more details. 12 */ 13 #ifndef __NDCTL_H__ 14 #define __NDCTL_H__ 15 16 #include 17 18 #ifdef __GNUC__ 19 #define __packed __attribute__((packed)) 20 #else 21 #define __packed 22 #endif 23 > 24 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr)[0]) 25 26 struct nd_cmd_smart { 27 __u32 status; 28 __u8 data[128]; 29 } __packed; 30 31 #define ND_SMART_HEALTH_VALID (1 << 0) 32 #define ND_SMART_TEMP_VALID (1 << 1) --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH] dm stripe: add DAX support
Hi, [auto build test ERROR on dm/for-next] [also build test ERROR on v4.7-rc4 next-20160624] [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/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: x86_64-randconfig-s5-06250328 (attached as .config) compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): >> drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified >> in initializer .direct_access = stripe_direct_access, ^ >> drivers/md/dm-stripe.c:452:19: error: initialization from incompatible >> pointer type [-Werror=incompatible-pointer-types] .direct_access = stripe_direct_access, ^~~~ drivers/md/dm-stripe.c:452:19: note: (near initialization for 'stripe_target.list.next') >> drivers/md/dm-stripe.c:441:43: warning: missing braces around initializer >> [-Wmissing-braces] static struct target_type stripe_target = { ^ drivers/md/dm-stripe.c:441:43: note: (near initialization for 'stripe_target') cc1: some warnings being treated as errors vim +/direct_access +452 drivers/md/dm-stripe.c 435 unsigned chunk_size = sc->chunk_size << SECTOR_SHIFT; 436 437 blk_limits_io_min(limits, chunk_size); 438 blk_limits_io_opt(limits, chunk_size * sc->stripes); 439 } 440 > 441 static struct target_type stripe_target = { 442 .name = "striped", 443 .version = {1, 5, 1}, 444 .module = THIS_MODULE, 445 .ctr= stripe_ctr, 446 .dtr= stripe_dtr, 447 .map= stripe_map, 448 .end_io = stripe_end_io, 449 .status = stripe_status, 450 .iterate_devices = stripe_iterate_devices, 451 .io_hints = stripe_io_hints, > 452 .direct_access = stripe_direct_access, 453 }; 454 455 int __init dm_stripe_init(void) --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [PATCH] dm stripe: add DAX support
Hi, [auto build test WARNING on dm/for-next] [also build test WARNING on v4.7-rc4 next-20160624] [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/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600 base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next config: m68k-sun3_defconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 4.9.0 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=m68k All warnings (new ones prefixed by >>): drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer .direct_access = stripe_direct_access, ^ drivers/md/dm-stripe.c:452:2: warning: missing braces around initializer [-Wmissing-braces] drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list') [-Wmissing-braces] >> drivers/md/dm-stripe.c:452:2: warning: initialization from incompatible >> pointer type drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list.next') vim +452 drivers/md/dm-stripe.c 436 437 blk_limits_io_min(limits, chunk_size); 438 blk_limits_io_opt(limits, chunk_size * sc->stripes); 439 } 440 441 static struct target_type stripe_target = { 442 .name = "striped", 443 .version = {1, 5, 1}, 444 .module = THIS_MODULE, 445 .ctr= stripe_ctr, 446 .dtr= stripe_dtr, 447 .map= stripe_map, 448 .end_io = stripe_end_io, 449 .status = stripe_status, 450 .iterate_devices = stripe_iterate_devices, 451 .io_hints = stripe_io_hints, > 452 .direct_access = stripe_direct_access, 453 }; 454 455 int __init dm_stripe_init(void) 456 { 457 int r; 458 459 r = dm_register_target(_target); 460 if (r < 0) --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm