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: x86_64-randconfig-a003 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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 # 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 mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash LDFLAGS=-z max-page-size=0x200000 drivers/md/ lib/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/md/dm-linear.c:29:5: warning: no previous prototype for function 'dm_linear_ctr' [-Wmissing-prototypes] int dm_linear_ctr(struct dm_target *ti, unsigned int argc, char **argv) ^ drivers/md/dm-linear.c:29:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int dm_linear_ctr(struct dm_target *ti, unsigned int argc, char **argv) ^ static drivers/md/dm-linear.c:72:6: warning: no previous prototype for function 'dm_linear_dtr' [-Wmissing-prototypes] void dm_linear_dtr(struct dm_target *ti) ^ drivers/md/dm-linear.c:72:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void dm_linear_dtr(struct dm_target *ti) ^ static drivers/md/dm-linear.c:97:5: warning: no previous prototype for function 'dm_linear_map' [-Wmissing-prototypes] int dm_linear_map(struct dm_target *ti, struct bio *bio) ^ drivers/md/dm-linear.c:97:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int dm_linear_map(struct dm_target *ti, struct bio *bio) ^ static >> drivers/md/dm-linear.c:104:5: warning: no previous prototype for function 'dm_linear_end_io' [-Wmissing-prototypes] int dm_linear_end_io(struct dm_target *ti, struct bio *bio, ^ drivers/md/dm-linear.c:104:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int dm_linear_end_io(struct dm_target *ti, struct bio *bio, ^ static drivers/md/dm-linear.c:116:6: warning: no previous prototype for function 'dm_linear_status' [-Wmissing-prototypes] void dm_linear_status(struct dm_target *ti, status_type_t type, ^ drivers/md/dm-linear.c:116:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void dm_linear_status(struct dm_target *ti, status_type_t type, ^ static drivers/md/dm-linear.c:133:5: warning: no previous prototype for function 'dm_linear_prepare_ioctl' [-Wmissing-prototypes] int dm_linear_prepare_ioctl(struct dm_target *ti, ^ drivers/md/dm-linear.c:133:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int dm_linear_prepare_ioctl(struct dm_target *ti, ^ static drivers/md/dm-linear.c:150:5: warning: no previous prototype for function 'dm_linear_iterate_devices' [-Wmissing-prototypes] int dm_linear_iterate_devices(struct dm_target *ti, ^ drivers/md/dm-linear.c:150:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int dm_linear_iterate_devices(struct dm_target *ti, ^ static >> drivers/md/dm-linear.c:158:6: warning: no previous prototype for function 'dm_linear_dax_direct_access' [-Wmissing-prototypes] long dm_linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff, ^ drivers/md/dm-linear.c:158:1: note: declare 'static' if the function is not intended to be used outside of this translation unit long dm_linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff, ^ static >> drivers/md/dm-linear.c:175:8: warning: no previous prototype for function 'dm_linear_dax_copy_from_iter' [-Wmissing-prototypes] size_t dm_linear_dax_copy_from_iter(struct dm_target *ti, pgoff_t pgoff, ^ drivers/md/dm-linear.c:175:1: note: declare 'static' if the function is not intended to be used outside of this translation unit size_t dm_linear_dax_copy_from_iter(struct dm_target *ti, pgoff_t pgoff, ^ static 9 warnings generated. 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 https://01.org/lkp