[ammarfaizi2-block:google/android/kernel/common/deprecated/android-4.14-p-release 75/6167] drivers/md/dm-linear.c:104:5: warning: no previous declaration for 'dm_linear_end_io'

From: kernel test robot
Date: Wed Mar 02 2022 - 19:08:41 EST


Hi Badhri,

FYI, the error/warning still remains.

tree: https://github.com/ammarfaizi2/linux-block google/android/kernel/common/deprecated/android-4.14-p-release
head: 0ca5d5ac9152d01b3494fb2efb5390319eb9904a
commit: 539de6b39dcce96f93d6bb19439d00f870f8fa3a [75/6167] ANDROID: dm: android-verity: rebase for 4.9
config: i386-randconfig-r024-20211019 (https://download.01.org/0day-ci/archive/20220303/202203030654.25RQedXH-lkp@xxxxxxxxx/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
# https://github.com/ammarfaizi2/linux-block/commit/539de6b39dcce96f93d6bb19439d00f870f8fa3a
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block google/android/kernel/common/deprecated/android-4.14-p-release
git checkout 539de6b39dcce96f93d6bb19439d00f870f8fa3a
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/md/ kernel/cgroup/ kernel/sched/ kernel/trace/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

drivers/md/dm-linear.c:29:5: warning: no previous declaration for 'dm_linear_ctr' [-Wmissing-declarations]
int dm_linear_ctr(struct dm_target *ti, unsigned int argc, char **argv)
^~~~~~~~~~~~~
drivers/md/dm-linear.c:72:6: warning: no previous declaration for 'dm_linear_dtr' [-Wmissing-declarations]
void dm_linear_dtr(struct dm_target *ti)
^~~~~~~~~~~~~
drivers/md/dm-linear.c:97:5: warning: no previous declaration for 'dm_linear_map' [-Wmissing-declarations]
int dm_linear_map(struct dm_target *ti, struct bio *bio)
^~~~~~~~~~~~~
>> drivers/md/dm-linear.c:104:5: warning: no previous declaration for 'dm_linear_end_io' [-Wmissing-declarations]
int dm_linear_end_io(struct dm_target *ti, struct bio *bio,
^~~~~~~~~~~~~~~~
drivers/md/dm-linear.c:116:6: warning: no previous declaration for 'dm_linear_status' [-Wmissing-declarations]
void dm_linear_status(struct dm_target *ti, status_type_t type,
^~~~~~~~~~~~~~~~
drivers/md/dm-linear.c:133:5: warning: no previous declaration for 'dm_linear_prepare_ioctl' [-Wmissing-declarations]
int dm_linear_prepare_ioctl(struct dm_target *ti,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/md/dm-linear.c:150:5: warning: no previous declaration for 'dm_linear_iterate_devices' [-Wmissing-declarations]
int dm_linear_iterate_devices(struct dm_target *ti,
^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/md/dm-linear.c:158:6: warning: no previous declaration for 'dm_linear_dax_direct_access' [-Wmissing-declarations]
long dm_linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/md/dm-linear.c:175:8: warning: no previous declaration for 'dm_linear_dax_copy_from_iter' [-Wmissing-declarations]
size_t dm_linear_dax_copy_from_iter(struct dm_target *ti, pgoff_t pgoff,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/dm_linear_end_io +104 drivers/md/dm-linear.c

103
> 104 int dm_linear_end_io(struct dm_target *ti, struct bio *bio,
105 blk_status_t *error)
106 {
107 struct linear_c *lc = ti->private;
108
109 if (!*error && bio_op(bio) == REQ_OP_ZONE_REPORT)
110 dm_remap_zone_report(ti, bio, lc->start);
111
112 return DM_ENDIO_DONE;
113 }
114 EXPORT_SYMBOL_GPL(dm_linear_end_io);
115
116 void dm_linear_status(struct dm_target *ti, status_type_t type,
117 unsigned status_flags, char *result, unsigned maxlen)
118 {
119 struct linear_c *lc = (struct linear_c *) ti->private;
120
121 switch (type) {
122 case STATUSTYPE_INFO:
123 result[0] = '\0';
124 break;
125
126 case STATUSTYPE_TABLE:
127 snprintf(result, maxlen, "%s %llu", lc->dev->name,
128 (unsigned long long)lc->start);
129 break;
130 }
131 }
132
133 int dm_linear_prepare_ioctl(struct dm_target *ti,
134 struct block_device **bdev, fmode_t *mode)
135 {
136 struct linear_c *lc = (struct linear_c *) ti->private;
137 struct dm_dev *dev = lc->dev;
138
139 *bdev = dev->bdev;
140
141 /*
142 * Only pass ioctls through if the device sizes match exactly.
143 */
144 if (lc->start ||
145 ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT)
146 return 1;
147 return 0;
148 }
149
150 int dm_linear_iterate_devices(struct dm_target *ti,
151 iterate_devices_callout_fn fn, void *data)
152 {
153 struct linear_c *lc = ti->private;
154
155 return fn(ti, lc->dev, lc->start, ti->len, data);
156 }
157
> 158 long dm_linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
159 long nr_pages, void **kaddr, pfn_t *pfn)
160 {
161 long ret;
162 struct linear_c *lc = ti->private;
163 struct block_device *bdev = lc->dev->bdev;
164 struct dax_device *dax_dev = lc->dev->dax_dev;
165 sector_t dev_sector, sector = pgoff * PAGE_SECTORS;
166
167 dev_sector = linear_map_sector(ti, sector);
168 ret = bdev_dax_pgoff(bdev, dev_sector, nr_pages * PAGE_SIZE, &pgoff);
169 if (ret)
170 return ret;
171 return dax_direct_access(dax_dev, pgoff, nr_pages, kaddr, pfn);
172 }
173 EXPORT_SYMBOL_GPL(dm_linear_dax_direct_access);
174
> 175 size_t dm_linear_dax_copy_from_iter(struct dm_target *ti, pgoff_t pgoff,
176 void *addr, size_t bytes, struct iov_iter *i)
177 {
178 struct linear_c *lc = ti->private;
179 struct block_device *bdev = lc->dev->bdev;
180 struct dax_device *dax_dev = lc->dev->dax_dev;
181 sector_t dev_sector, sector = pgoff * PAGE_SECTORS;
182
183 dev_sector = linear_map_sector(ti, sector);
184 if (bdev_dax_pgoff(bdev, dev_sector, ALIGN(bytes, PAGE_SIZE), &pgoff))
185 return 0;
186 return dax_copy_from_iter(dax_dev, pgoff, addr, bytes, i);
187 }
188 EXPORT_SYMBOL_GPL(dm_linear_dax_copy_from_iter);
189

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx