Messages in this thread | | | Date | Tue, 27 Jul 2021 20:03:06 +0800 | From | kernel test robot <> | Subject | [hch-misc:dax-support-cleanups 3/10] drivers/dax/super.c:70:6: error: redefinition of 'generic_fsdax_supported' |
| |
tree: git://git.infradead.org/users/hch/misc.git dax-support-cleanups head: 37a8092dc083090f4fbd6a7699561dd959f1e2b8 commit: 77637615c600b1675f4afd2db30233e400aa6b31 [3/10] dax: rename __generic_fsdax_supported to generic_fsdax_supported config: powerpc64-randconfig-s032-20210727 (attached as .config) compiler: powerpc-linux-gcc (GCC) 10.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty git remote add hch-misc git://git.infradead.org/users/hch/misc.git git fetch --no-tags hch-misc dax-support-cleanups git checkout 77637615c600b1675f4afd2db30233e400aa6b31 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/dax/
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/dax/super.c:70:6: error: redefinition of 'generic_fsdax_supported' 70 | bool generic_fsdax_supported(struct dax_device *dax_dev, | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/dax/super.c:16: include/linux/dax.h:150:20: note: previous definition of 'generic_fsdax_supported' was here 150 | static inline bool generic_fsdax_supported(struct dax_device *dax_dev, | ^~~~~~~~~~~~~~~~~~~~~~~ drivers/dax/super.c:168:6: error: redefinition of 'bdev_dax_supported' 168 | bool bdev_dax_supported(struct block_device *bdev, int blocksize) | ^~~~~~~~~~~~~~~~~~ In file included from drivers/dax/super.c:16: include/linux/dax.h:144:20: note: previous definition of 'bdev_dax_supported' was here 144 | static inline bool bdev_dax_supported(struct block_device *bdev, | ^~~~~~~~~~~~~~~~~~ drivers/dax/super.c:449:6: warning: no previous prototype for 'run_dax' [-Wmissing-prototypes] 449 | void run_dax(struct dax_device *dax_dev) | ^~~~~~~
vim +/generic_fsdax_supported +70 drivers/dax/super.c
69 > 70 bool generic_fsdax_supported(struct dax_device *dax_dev, 71 struct block_device *bdev, int blocksize, sector_t start, 72 sector_t sectors) 73 { 74 bool dax_enabled = false; 75 pgoff_t pgoff, pgoff_end; 76 char buf[BDEVNAME_SIZE]; 77 void *kaddr, *end_kaddr; 78 pfn_t pfn, end_pfn; 79 sector_t last_page; 80 long len, len2; 81 int err, id; 82 83 if (blocksize != PAGE_SIZE) { 84 pr_info("%s: error: unsupported blocksize for dax\n", 85 bdevname(bdev, buf)); 86 return false; 87 } 88 89 if (!dax_dev) { 90 pr_debug("%s: error: dax unsupported by block device\n", 91 bdevname(bdev, buf)); 92 return false; 93 } 94 95 err = bdev_dax_pgoff(bdev, start, PAGE_SIZE, &pgoff); 96 if (err) { 97 pr_info("%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, &pgoff_end); 104 if (err) { 105 pr_info("%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, &kaddr, &pfn); 112 len2 = dax_direct_access(dax_dev, pgoff_end, 1, &end_kaddr, &end_pfn); 113 114 if (len < 1 || len2 < 1) { 115 pr_info("%s: error: dax access failed (%ld)\n", 116 bdevname(bdev, buf), len < 1 ? len : len2); 117 dax_read_unlock(id); 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 dax_read_unlock(id); 148 149 if (!dax_enabled) { 150 pr_info("%s: error: dax support not enabled\n", 151 bdevname(bdev, buf)); 152 return false; 153 } 154 return true; 155 } 156 EXPORT_SYMBOL_GPL(generic_fsdax_supported); 157
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |