* mm/zswap.c:1057:26: error: passing argument 1 of '__swap_writepage' from incompatible pointer type
@ 2026-05-16 7:52 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-16 7:52 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: oe-kbuild-all, 0day robot
tree: https://github.com/intel-lab-lkp/linux/commits/Christoph-Hellwig/mm-merge-writeout-into-pageout/20260516-003650
head: dfa0de1c1f86f5c4e96d214b3549d4c5d3be0068
commit: b44db93170f358db8179510ea15bb73b2194941c mm/swap: intoduce struct swap_io_ctx
date: 15 hours ago
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20260516/202605160929.4XRsoqEH-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260516/202605160929.4XRsoqEH-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605160929.4XRsoqEH-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/zswap.c: In function 'zswap_writeback_entry':
>> mm/zswap.c:1057:26: error: passing argument 1 of '__swap_writepage' from incompatible pointer type [-Wincompatible-pointer-types]
1057 | __swap_writepage(folio, NULL);
| ^~~~~
| |
| struct folio *
In file included from mm/zswap.c:40:
mm/swap.h:226:43: note: expected 'struct swap_io_ctx *' but argument is of type 'struct folio *'
226 | void __swap_writepage(struct swap_io_ctx *ctx, struct folio *folio);
| ~~~~~~~~~~~~~~~~~~~~^~~
vim +/__swap_writepage +1057 mm/zswap.c
f91e81d31c1ef7 Johannes Weiner 2024-01-29 971
9986d35d4ceb53 Johannes Weiner 2024-01-29 972 /*********************************
9986d35d4ceb53 Johannes Weiner 2024-01-29 973 * writeback code
9986d35d4ceb53 Johannes Weiner 2024-01-29 974 **********************************/
9986d35d4ceb53 Johannes Weiner 2024-01-29 975 /*
9986d35d4ceb53 Johannes Weiner 2024-01-29 976 * Attempts to free an entry by adding a folio to the swap cache,
9986d35d4ceb53 Johannes Weiner 2024-01-29 977 * decompressing the entry data into the folio, and issuing a
9986d35d4ceb53 Johannes Weiner 2024-01-29 978 * bio write to write the folio back to the swap device.
9986d35d4ceb53 Johannes Weiner 2024-01-29 979 *
9986d35d4ceb53 Johannes Weiner 2024-01-29 980 * This can be thought of as a "resumed writeback" of the folio
9986d35d4ceb53 Johannes Weiner 2024-01-29 981 * to the swap device. We are basically resuming the same swap
9986d35d4ceb53 Johannes Weiner 2024-01-29 982 * writeback path that was intercepted with the zswap_store()
9986d35d4ceb53 Johannes Weiner 2024-01-29 983 * in the first place. After the folio has been decompressed into
9986d35d4ceb53 Johannes Weiner 2024-01-29 984 * the swap cache, the compressed version stored by zswap can be
9986d35d4ceb53 Johannes Weiner 2024-01-29 985 * freed.
9986d35d4ceb53 Johannes Weiner 2024-01-29 986 */
9986d35d4ceb53 Johannes Weiner 2024-01-29 987 static int zswap_writeback_entry(struct zswap_entry *entry,
9986d35d4ceb53 Johannes Weiner 2024-01-29 988 swp_entry_t swpentry)
9986d35d4ceb53 Johannes Weiner 2024-01-29 989 {
796c2c23e14e75 Chris Li 2024-03-26 990 struct xarray *tree;
796c2c23e14e75 Chris Li 2024-03-26 991 pgoff_t offset = swp_offset(swpentry);
9986d35d4ceb53 Johannes Weiner 2024-01-29 992 struct folio *folio;
9986d35d4ceb53 Johannes Weiner 2024-01-29 993 struct mempolicy *mpol;
9986d35d4ceb53 Johannes Weiner 2024-01-29 994 bool folio_was_allocated;
78524b05f1a3e1 Kairui Song 2025-03-14 995 struct swap_info_struct *si;
ff22f9299d7b2c Nhat Pham 2025-03-06 996 int ret = 0;
9986d35d4ceb53 Johannes Weiner 2024-01-29 997
9986d35d4ceb53 Johannes Weiner 2024-01-29 998 /* try to allocate swap cache folio */
78524b05f1a3e1 Kairui Song 2025-03-14 999 si = get_swap_device(swpentry);
78524b05f1a3e1 Kairui Song 2025-03-14 1000 if (!si)
78524b05f1a3e1 Kairui Song 2025-03-14 1001 return -EEXIST;
78524b05f1a3e1 Kairui Song 2025-03-14 1002
9986d35d4ceb53 Johannes Weiner 2024-01-29 1003 mpol = get_task_policy(current);
d7cf0d54f21087 Kairui Song 2025-12-20 1004 folio = swap_cache_alloc_folio(swpentry, GFP_KERNEL, mpol,
de85024b34839e Kairui Song 2025-12-20 1005 NO_INTERLEAVE_INDEX, &folio_was_allocated);
78524b05f1a3e1 Kairui Song 2025-03-14 1006 put_swap_device(si);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1007 if (!folio)
9986d35d4ceb53 Johannes Weiner 2024-01-29 1008 return -ENOMEM;
9986d35d4ceb53 Johannes Weiner 2024-01-29 1009
9986d35d4ceb53 Johannes Weiner 2024-01-29 1010 /*
9986d35d4ceb53 Johannes Weiner 2024-01-29 1011 * Found an existing folio, we raced with swapin or concurrent
9986d35d4ceb53 Johannes Weiner 2024-01-29 1012 * shrinker. We generally writeback cold folios from zswap, and
9986d35d4ceb53 Johannes Weiner 2024-01-29 1013 * swapin means the folio just became hot, so skip this folio.
9986d35d4ceb53 Johannes Weiner 2024-01-29 1014 * For unlikely concurrent shrinker case, it will be unlinked
9986d35d4ceb53 Johannes Weiner 2024-01-29 1015 * and freed when invalidated by the concurrent shrinker anyway.
9986d35d4ceb53 Johannes Weiner 2024-01-29 1016 */
9986d35d4ceb53 Johannes Weiner 2024-01-29 1017 if (!folio_was_allocated) {
ff22f9299d7b2c Nhat Pham 2025-03-06 1018 ret = -EEXIST;
ff22f9299d7b2c Nhat Pham 2025-03-06 1019 goto out;
9986d35d4ceb53 Johannes Weiner 2024-01-29 1020 }
9986d35d4ceb53 Johannes Weiner 2024-01-29 1021
9986d35d4ceb53 Johannes Weiner 2024-01-29 1022 /*
9986d35d4ceb53 Johannes Weiner 2024-01-29 1023 * folio is locked, and the swapcache is now secured against
f9c0f1c32cb568 Chengming Zhou 2024-02-04 1024 * concurrent swapping to and from the slot, and concurrent
f9c0f1c32cb568 Chengming Zhou 2024-02-04 1025 * swapoff so we can safely dereference the zswap tree here.
f9c0f1c32cb568 Chengming Zhou 2024-02-04 1026 * Verify that the swap entry hasn't been invalidated and recycled
f9c0f1c32cb568 Chengming Zhou 2024-02-04 1027 * behind our backs, to avoid overwriting a new swap folio with
f9c0f1c32cb568 Chengming Zhou 2024-02-04 1028 * old compressed data. Only when this is successful can the entry
f9c0f1c32cb568 Chengming Zhou 2024-02-04 1029 * be dereferenced.
9986d35d4ceb53 Johannes Weiner 2024-01-29 1030 */
9986d35d4ceb53 Johannes Weiner 2024-01-29 1031 tree = swap_zswap_tree(swpentry);
ff22f9299d7b2c Nhat Pham 2025-03-06 1032 if (entry != xa_load(tree, offset)) {
ff22f9299d7b2c Nhat Pham 2025-03-06 1033 ret = -ENOMEM;
ff22f9299d7b2c Nhat Pham 2025-03-06 1034 goto out;
9986d35d4ceb53 Johannes Weiner 2024-01-29 1035 }
9986d35d4ceb53 Johannes Weiner 2024-01-29 1036
ff22f9299d7b2c Nhat Pham 2025-03-06 1037 if (!zswap_decompress(entry, folio)) {
ff22f9299d7b2c Nhat Pham 2025-03-06 1038 ret = -EIO;
ff22f9299d7b2c Nhat Pham 2025-03-06 1039 goto out;
ff22f9299d7b2c Nhat Pham 2025-03-06 1040 }
ff22f9299d7b2c Nhat Pham 2025-03-06 1041
ff22f9299d7b2c Nhat Pham 2025-03-06 1042 xa_erase(tree, offset);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1043
9986d35d4ceb53 Johannes Weiner 2024-01-29 1044 count_vm_event(ZSWPWB);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1045 if (entry->objcg)
e7ac4daeed91a2 Barry Song 2024-11-07 1046 count_objcg_events(entry->objcg, ZSWPWB, 1);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1047
a230c20e63efef Chengming Zhou 2024-02-04 1048 zswap_entry_free(entry);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1049
9986d35d4ceb53 Johannes Weiner 2024-01-29 1050 /* folio is up to date */
9986d35d4ceb53 Johannes Weiner 2024-01-29 1051 folio_mark_uptodate(folio);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1052
9986d35d4ceb53 Johannes Weiner 2024-01-29 1053 /* move it to the tail of the inactive list after end_writeback */
9986d35d4ceb53 Johannes Weiner 2024-01-29 1054 folio_set_reclaim(folio);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1055
9986d35d4ceb53 Johannes Weiner 2024-01-29 1056 /* start writeback */
2ba8ffcefe8124 Christoph Hellwig 2025-06-10 @1057 __swap_writepage(folio, NULL);
9986d35d4ceb53 Johannes Weiner 2024-01-29 1058
ff22f9299d7b2c Nhat Pham 2025-03-06 1059 out:
ff22f9299d7b2c Nhat Pham 2025-03-06 1060 if (ret && ret != -EEXIST) {
fd8d4f862f8c27 Kairui Song 2025-09-17 1061 swap_cache_del_folio(folio);
ff22f9299d7b2c Nhat Pham 2025-03-06 1062 folio_unlock(folio);
ff22f9299d7b2c Nhat Pham 2025-03-06 1063 }
ff22f9299d7b2c Nhat Pham 2025-03-06 1064 folio_put(folio);
ff22f9299d7b2c Nhat Pham 2025-03-06 1065 return ret;
9986d35d4ceb53 Johannes Weiner 2024-01-29 1066 }
9986d35d4ceb53 Johannes Weiner 2024-01-29 1067
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-16 7:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-16 7:52 mm/zswap.c:1057:26: error: passing argument 1 of '__swap_writepage' from incompatible pointer type kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.