tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: b992b79ca8bc336fa8e2c80990b5af80ed8f36fd commit: d2b0c82185149e17ca3efc51c74c643c21668d63 [6383/7397] mm/swap: get the swap device offset directly config: x86_64-randconfig-014-20240202 (https://download.01.org/0day-ci/archive/20240621/202406210911.j0JhlO0N-lkp@xxxxxxxxx/config) compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240621/202406210911.j0JhlO0N-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202406210911.j0JhlO0N-lkp@xxxxxxxxx/ All error/warnings (new ones prefixed by >>): mm/page_io.c:78:5: warning: no previous prototype for 'generic_swapfile_activate' [-Wmissing-prototypes] 78 | int generic_swapfile_activate(struct swap_info_struct *sis, | ^~~~~~~~~~~~~~~~~~~~~~~~~ mm/page_io.c:179:5: error: redefinition of 'swap_writepage' 179 | int swap_writepage(struct page *page, struct writeback_control *wbc) | ^~~~~~~~~~~~~~ In file included from mm/page_io.c:28: mm/swap.h:105:19: note: previous definition of 'swap_writepage' with type 'int(struct page *, struct writeback_control *)' 105 | static inline int swap_writepage(struct page *p, struct writeback_control *wbc) | ^~~~~~~~~~~~~~ mm/page_io.c: In function 'swap_writepage': mm/page_io.c:209:9: error: implicit declaration of function '__swap_writepage'; did you mean 'swap_writepage'? [-Werror=implicit-function-declaration] 209 | __swap_writepage(folio, wbc); | ^~~~~~~~~~~~~~~~ | swap_writepage mm/page_io.c: At top level: mm/page_io.c:252:5: warning: no previous prototype for 'sio_pool_init' [-Wmissing-prototypes] 252 | int sio_pool_init(void) | ^~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:22, from arch/x86/include/asm/bug.h:87, from include/linux/bug.h:5, from include/linux/mmdebug.h:5, from include/linux/mm.h:6, from mm/page_io.c:14: mm/page_io.c: In function 'sio_write_complete': >> mm/page_io.c:283:41: error: implicit declaration of function 'swap_dev_pos' [-Werror=implicit-function-declaration] 283 | ret, swap_dev_pos(page_swap_entry(page))); | ^~~~~~~~~~~~ include/linux/printk.h:436:33: note: in definition of macro 'printk_index_wrap' 436 | _p_func(_fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ include/linux/printk.h:658:17: note: in expansion of macro 'printk' 658 | printk(fmt, ##__VA_ARGS__); \ | ^~~~~~ include/linux/printk.h:672:9: note: in expansion of macro 'printk_ratelimited' 672 | printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~ mm/page_io.c:282:17: note: in expansion of macro 'pr_err_ratelimited' 282 | pr_err_ratelimited("Write error %ld on dio swapfile (%llu)\n", | ^~~~~~~~~~~~~~~~~~ >> include/linux/kern_levels.h:5:25: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type 'int' [-Wformat=] 5 | #define KERN_SOH "\001" /* ASCII Start Of Header */ | ^~~~~~ include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap' 436 | _p_func(_fmt, ##__VA_ARGS__); \ | ^~~~ include/linux/printk.h:658:17: note: in expansion of macro 'printk' 658 | printk(fmt, ##__VA_ARGS__); \ | ^~~~~~ include/linux/printk.h:672:9: note: in expansion of macro 'printk_ratelimited' 672 | printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~ include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH' 11 | #define KERN_ERR KERN_SOH "3" /* error conditions */ | ^~~~~~~~ include/linux/printk.h:672:28: note: in expansion of macro 'KERN_ERR' 672 | printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~ mm/page_io.c:282:17: note: in expansion of macro 'pr_err_ratelimited' 282 | pr_err_ratelimited("Write error %ld on dio swapfile (%llu)\n", | ^~~~~~~~~~~~~~~~~~ mm/page_io.c: In function 'swap_writepage_bdev_sync': mm/page_io.c:343:33: error: implicit declaration of function 'swap_folio_sector'; did you mean 'zswap_folio_swapin'? [-Werror=implicit-function-declaration] 343 | bio.bi_iter.bi_sector = swap_folio_sector(folio); | ^~~~~~~~~~~~~~~~~ | zswap_folio_swapin mm/page_io.c: At top level: mm/page_io.c:375:6: warning: no previous prototype for '__swap_writepage' [-Wmissing-prototypes] 375 | void __swap_writepage(struct folio *folio, struct writeback_control *wbc) | ^~~~~~~~~~~~~~~~ mm/page_io.c:375:6: warning: conflicting types for '__swap_writepage'; have 'void(struct folio *, struct writeback_control *)' mm/page_io.c:209:9: note: previous implicit declaration of '__swap_writepage' with type 'void(struct folio *, struct writeback_control *)' 209 | __swap_writepage(folio, wbc); | ^~~~~~~~~~~~~~~~ mm/page_io.c:393:6: error: redefinition of 'swap_write_unplug' 393 | void swap_write_unplug(struct swap_iocb *sio) | ^~~~~~~~~~~~~~~~~ mm/swap.h:80:20: note: previous definition of 'swap_write_unplug' with type 'void(struct swap_iocb *)' 80 | static inline void swap_write_unplug(struct swap_iocb *sio) | ^~~~~~~~~~~~~~~~~ mm/page_io.c: In function 'swap_read_folio_fs': mm/page_io.c:440:25: error: implicit declaration of function 'swap_read_unplug'; did you mean 'swap_write_unplug'? [-Werror=implicit-function-declaration] 440 | swap_read_unplug(sio); | ^~~~~~~~~~~~~~~~ | swap_write_unplug mm/page_io.c: At top level: mm/page_io.c:496:6: error: redefinition of 'swap_read_folio' 496 | void swap_read_folio(struct folio *folio, bool synchronous, | ^~~~~~~~~~~~~~~ mm/swap.h:76:20: note: previous definition of 'swap_read_folio' with type 'void(struct folio *, bool, struct swap_iocb **)' {aka 'void(struct folio *, _Bool, struct swap_iocb **)'} 76 | static inline void swap_read_folio(struct folio *folio, bool do_poll, | ^~~~~~~~~~~~~~~ mm/page_io.c:537:6: warning: no previous prototype for '__swap_read_unplug' [-Wmissing-prototypes] 537 | void __swap_read_unplug(struct swap_iocb *sio) | ^~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/swap_dev_pos +283 mm/page_io.c 264 265 static void sio_write_complete(struct kiocb *iocb, long ret) 266 { 267 struct swap_iocb *sio = container_of(iocb, struct swap_iocb, iocb); 268 struct page *page = sio->bvec[0].bv_page; 269 int p; 270 271 if (ret != sio->len) { 272 /* 273 * In the case of swap-over-nfs, this can be a 274 * temporary failure if the system has limited 275 * memory for allocating transmit buffers. 276 * Mark the page dirty and avoid 277 * folio_rotate_reclaimable but rate-limit the 278 * messages but do not flag PageError like 279 * the normal direct-to-bio case as it could 280 * be temporary. 281 */ 282 pr_err_ratelimited("Write error %ld on dio swapfile (%llu)\n", > 283 ret, swap_dev_pos(page_swap_entry(page))); 284 for (p = 0; p < sio->pages; p++) { 285 page = sio->bvec[p].bv_page; 286 set_page_dirty(page); 287 ClearPageReclaim(page); 288 } 289 } 290 291 for (p = 0; p < sio->pages; p++) 292 end_page_writeback(sio->bvec[p].bv_page); 293 294 mempool_free(sio, sio_pool); 295 } 296 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki