* [linux-nvdimm:libnvdimm-fixes 2/3] drivers//dax/super.c:76:6: error: redefinition of 'generic_fsdax_supported'
@ 2019-05-21 1:58 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-05-21 1:58 UTC (permalink / raw)
To: Dan Williams; +Cc: Jan Kara, kbuild-all, Mike Snitzer, linux-nvdimm
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 <lkp@intel.com>
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, &pgoff);
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, &pgoff_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, &kaddr, &pfn);
112 len2 = dax_direct_access(dax_dev, pgoff_end, 1, &end_kaddr, &end_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 return false;
152 }
153 return true;
154 }
155 EXPORT_SYMBOL_GPL(generic_fsdax_supported);
156
---
0-DAY kernel test infrastructure Open 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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-21 1:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-21 1:58 [linux-nvdimm:libnvdimm-fixes 2/3] drivers//dax/super.c:76:6: error: redefinition of 'generic_fsdax_supported' kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox