* [bvanassche:thread-safety-2026-02-13 7/85] include/linux/mm.h:2356:22: error: conflicting types for 'folio_size'
@ 2026-02-14 23:39 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-02-14 23:39 UTC (permalink / raw)
To: Bart Van Assche; +Cc: oe-kbuild-all
tree: https://github.com/bvanassche/linux thread-safety-2026-02-13
head: b3d50cd353767e14c2bc42f6b49ec42114b0425f
commit: 564a4cd602be522e2844ccb8ebc2e9ac56b7a37b [7/85] mm/pgtable: Fix a build error
config: arm-randconfig-r062-20260215 (https://download.01.org/0day-ci/archive/20260215/202602150752.OUDxsiMk-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260215/202602150752.OUDxsiMk-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/202602150752.OUDxsiMk-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from include/linux/slab.h:264,
from include/linux/fs.h:45,
from include/linux/highmem.h:5,
from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/kasan.h:54:37: error: 'MAX_PTRS_PER_PTE' undeclared here (not in a function); did you mean 'PTRS_PER_PTE'?
54 | extern pte_t kasan_early_shadow_pte[MAX_PTRS_PER_PTE + PTE_HWTABLE_PTRS];
| ^~~~~~~~~~~~~~~~
| PTRS_PER_PTE
include/linux/kasan.h:55:37: error: 'MAX_PTRS_PER_PMD' undeclared here (not in a function); did you mean 'PTRS_PER_PMD'?
55 | extern pmd_t kasan_early_shadow_pmd[MAX_PTRS_PER_PMD];
| ^~~~~~~~~~~~~~~~
| PTRS_PER_PMD
include/linux/kasan.h:56:37: error: 'MAX_PTRS_PER_PUD' undeclared here (not in a function); did you mean 'PTRS_PER_PUD'?
56 | extern pud_t kasan_early_shadow_pud[MAX_PTRS_PER_PUD];
| ^~~~~~~~~~~~~~~~
| PTRS_PER_PUD
include/linux/kasan.h:57:37: error: 'MAX_PTRS_PER_P4D' undeclared here (not in a function); did you mean 'PTRS_PER_P4D'?
57 | extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D];
| ^~~~~~~~~~~~~~~~
| PTRS_PER_P4D
In file included from include/linux/cacheflush.h:5,
from include/linux/highmem.h:8,
from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
arch/arm/include/asm/cacheflush.h: In function 'vivt_flush_cache_range':
arch/arm/include/asm/cacheflush.h:230:46: error: implicit declaration of function 'PAGE_ALIGN'; did you mean 'PTR_ALIGN'? [-Werror=implicit-function-declaration]
230 | __cpuc_flush_user_range(start & PAGE_MASK, PAGE_ALIGN(end),
| ^~~~~~~~~~
| PTR_ALIGN
In file included from include/linux/highmem.h:14,
from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/highmem-internal.h: In function 'kmap':
include/linux/highmem-internal.h:46:10: error: implicit declaration of function 'page_address'; did you mean 'page_ptdesc'? [-Werror=implicit-function-declaration]
46 | addr = page_address(page);
| ^~~~~~~~~~~~
| page_ptdesc
>> include/linux/highmem-internal.h:46:8: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
46 | addr = page_address(page);
| ^
include/linux/highmem-internal.h: In function 'kmap_local_page_try_from_panic':
>> include/linux/highmem-internal.h:79:10: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion]
79 | return page_address(page);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/highmem.h: In function 'vma_alloc_zeroed_movable_folio':
include/linux/highmem.h:326:15: error: implicit declaration of function 'user_alloc_needs_zeroing' [-Werror=implicit-function-declaration]
326 | if (folio && user_alloc_needs_zeroing())
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm/kernel/asm-offsets.c:12:
include/linux/highmem.h: In function 'memcpy_folio':
include/linux/highmem.h:502:28: error: implicit declaration of function 'folio_size'; did you mean 'folio_page'? [-Werror=implicit-function-declaration]
502 | VM_BUG_ON(dst_off + len > folio_size(dst_folio));
| ^~~~~~~~~~
include/linux/compiler.h:77:42: note: in definition of macro 'unlikely'
77 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/mmdebug.h:21:25: note: in expansion of macro 'BUG_ON'
21 | #define VM_BUG_ON(cond) BUG_ON(cond)
| ^~~~~~
include/linux/highmem.h:502:2: note: in expansion of macro 'VM_BUG_ON'
502 | VM_BUG_ON(dst_off + len > folio_size(dst_folio));
| ^~~~~~~~~
In file included from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/highmem.h:511:27: error: implicit declaration of function 'offset_in_page' [-Werror=implicit-function-declaration]
511 | chunk > PAGE_SIZE - offset_in_page(dst_off))
| ^~~~~~~~~~~~~~
include/linux/highmem.h: In function 'memcpy_from_file_folio':
include/linux/highmem.h:716:18: error: implicit declaration of function 'offset_in_folio' [-Werror=implicit-function-declaration]
716 | size_t offset = offset_in_folio(folio, pos);
| ^~~~~~~~~~~~~~~
include/linux/highmem.h: In function 'folio_release_kmap':
include/linux/highmem.h:781:2: error: implicit declaration of function 'folio_put'; did you mean 'folio_page'? [-Werror=implicit-function-declaration]
781 | folio_put(folio);
| ^~~~~~~~~
| folio_page
In file included from arch/arm/kernel/asm-offsets.c:14:
include/linux/mm.h: At top level:
>> include/linux/mm.h:1613:20: warning: conflicting types for 'folio_put'
1613 | static inline void folio_put(struct folio *folio)
| ^~~~~~~~~
include/linux/mm.h:1613:20: error: static declaration of 'folio_put' follows non-static declaration
In file included from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/highmem.h:781:2: note: previous implicit declaration of 'folio_put' was here
781 | folio_put(folio);
| ^~~~~~~~~
In file included from arch/arm/kernel/asm-offsets.c:14:
>> include/linux/mm.h:2356:22: error: conflicting types for 'folio_size'
2356 | static inline size_t folio_size(const struct folio *folio)
| ^~~~~~~~~~
In file included from arch/arm/kernel/asm-offsets.c:12:
include/linux/highmem.h:502:28: note: previous implicit declaration of 'folio_size' was here
502 | VM_BUG_ON(dst_off + len > folio_size(dst_folio));
| ^~~~~~~~~~
include/linux/compiler.h:77:42: note: in definition of macro 'unlikely'
77 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/mmdebug.h:21:25: note: in expansion of macro 'BUG_ON'
21 | #define VM_BUG_ON(cond) BUG_ON(cond)
| ^~~~~~
include/linux/highmem.h:502:2: note: in expansion of macro 'VM_BUG_ON'
502 | VM_BUG_ON(dst_off + len > folio_size(dst_folio));
| ^~~~~~~~~
In file included from arch/arm/kernel/asm-offsets.c:14:
>> include/linux/mm.h:2509:7: error: conflicting types for 'page_address'
2509 | void *page_address(const struct page *page);
| ^~~~~~~~~~~~
In file included from include/linux/highmem.h:14,
from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/highmem-internal.h:46:10: note: previous implicit declaration of 'page_address' was here
46 | addr = page_address(page);
| ^~~~~~~~~~~~
In file included from arch/arm/kernel/asm-offsets.c:14:
>> include/linux/mm.h:4594:20: error: conflicting types for 'user_alloc_needs_zeroing'
4594 | static inline bool user_alloc_needs_zeroing(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/pgtable.h:123,
from include/linux/mm.h:31,
from arch/arm/kernel/asm-offsets.c:14:
include/linux/highmem.h:326:15: note: previous implicit declaration of 'user_alloc_needs_zeroing' was here
326 | if (folio && user_alloc_needs_zeroing())
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:184: arch/arm/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1333: prepare0] Error 2
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/folio_size +2356 include/linux/mm.h
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2347)
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2348) /**
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2349) * folio_size - The number of bytes in a folio.
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2350) * @folio: The folio.
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2351) *
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2352) * Context: The caller should have a reference on the folio to prevent
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2353) * it from being split. It is not necessary for the folio to be locked.
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2354) * Return: The number of bytes in this folio.
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2355) */
4d2bcefa965b06 Matthew Wilcox (Oracle 2024-05-31 @2356) static inline size_t folio_size(const struct folio *folio)
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2357) {
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2358) return PAGE_SIZE << folio_order(folio);
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2359) }
7b230db3b8d373 Matthew Wilcox (Oracle 2020-12-06 2360)
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2361) /**
003fde4492c88a David Hildenbrand 2025-03-03 2362 * folio_maybe_mapped_shared - Whether the folio is mapped into the page
ebb34f78d72c23 David Hildenbrand 2024-02-27 2363 * tables of more than one MM
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2364) * @folio: The folio.
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2365) *
003fde4492c88a David Hildenbrand 2025-03-03 2366 * This function checks if the folio maybe currently mapped into more than one
003fde4492c88a David Hildenbrand 2025-03-03 2367 * MM ("maybe mapped shared"), or if the folio is certainly mapped into a single
003fde4492c88a David Hildenbrand 2025-03-03 2368 * MM ("mapped exclusively").
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2369) *
17d5f38b33b662 David Hildenbrand 2024-07-31 2370 * For KSM folios, this function also returns "mapped shared" when a folio is
17d5f38b33b662 David Hildenbrand 2024-07-31 2371 * mapped multiple times into the same MM, because the individual page mappings
17d5f38b33b662 David Hildenbrand 2024-07-31 2372 * are independent.
17d5f38b33b662 David Hildenbrand 2024-07-31 2373 *
17d5f38b33b662 David Hildenbrand 2024-07-31 2374 * For small anonymous folios and anonymous hugetlb folios, the return
17d5f38b33b662 David Hildenbrand 2024-07-31 2375 * value will be exactly correct: non-KSM folios can only be mapped at most once
17d5f38b33b662 David Hildenbrand 2024-07-31 2376 * into an MM, and they cannot be partially mapped. KSM folios are
17d5f38b33b662 David Hildenbrand 2024-07-31 2377 * considered shared even if mapped multiple times into the same MM.
ebb34f78d72c23 David Hildenbrand 2024-02-27 2378 *
ebb34f78d72c23 David Hildenbrand 2024-02-27 2379 * For other folios, the result can be fuzzy:
ebb34f78d72c23 David Hildenbrand 2024-02-27 2380 * #. For partially-mappable large folios (THP), the return value can wrongly
003fde4492c88a David Hildenbrand 2025-03-03 2381 * indicate "mapped shared" (false positive) if a folio was mapped by
003fde4492c88a David Hildenbrand 2025-03-03 2382 * more than two MMs at one point in time.
ebb34f78d72c23 David Hildenbrand 2024-02-27 2383 * #. For pagecache folios (including hugetlb), the return value can wrongly
ebb34f78d72c23 David Hildenbrand 2024-02-27 2384 * indicate "mapped shared" (false positive) when two VMAs in the same MM
ebb34f78d72c23 David Hildenbrand 2024-02-27 2385 * cover the same file range.
ebb34f78d72c23 David Hildenbrand 2024-02-27 2386 *
ebb34f78d72c23 David Hildenbrand 2024-02-27 2387 * Further, this function only considers current page table mappings that
ebb34f78d72c23 David Hildenbrand 2024-02-27 2388 * are tracked using the folio mapcount(s).
ebb34f78d72c23 David Hildenbrand 2024-02-27 2389 *
ebb34f78d72c23 David Hildenbrand 2024-02-27 2390 * This function does not consider:
ebb34f78d72c23 David Hildenbrand 2024-02-27 2391 * #. If the folio might get mapped in the (near) future (e.g., swapcache,
ebb34f78d72c23 David Hildenbrand 2024-02-27 2392 * pagecache, temporary unmapping for migration).
ebb34f78d72c23 David Hildenbrand 2024-02-27 2393 * #. If the folio is mapped differently (VM_PFNMAP).
ebb34f78d72c23 David Hildenbrand 2024-02-27 2394 * #. If hugetlb page table sharing applies. Callers might want to check
ebb34f78d72c23 David Hildenbrand 2024-02-27 2395 * hugetlb_pmd_shared().
ebb34f78d72c23 David Hildenbrand 2024-02-27 2396 *
ebb34f78d72c23 David Hildenbrand 2024-02-27 2397 * Return: Whether the folio is estimated to be mapped into more than one MM.
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2398) */
003fde4492c88a David Hildenbrand 2025-03-03 2399 static inline bool folio_maybe_mapped_shared(struct folio *folio)
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2400) {
eefb9b2725e395 David Hildenbrand 2024-04-09 2401 int mapcount = folio_mapcount(folio);
eefb9b2725e395 David Hildenbrand 2024-04-09 2402
eefb9b2725e395 David Hildenbrand 2024-04-09 2403 /* Only partially-mappable folios require more care. */
eefb9b2725e395 David Hildenbrand 2024-04-09 2404 if (!folio_test_large(folio) || unlikely(folio_test_hugetlb(folio)))
eefb9b2725e395 David Hildenbrand 2024-04-09 2405 return mapcount > 1;
eefb9b2725e395 David Hildenbrand 2024-04-09 2406
003fde4492c88a David Hildenbrand 2025-03-03 2407 /*
003fde4492c88a David Hildenbrand 2025-03-03 2408 * vm_insert_page() without CONFIG_TRANSPARENT_HUGEPAGE ...
003fde4492c88a David Hildenbrand 2025-03-03 2409 * simply assume "mapped shared", nobody should really care
003fde4492c88a David Hildenbrand 2025-03-03 2410 * about this for arbitrary kernel allocations.
003fde4492c88a David Hildenbrand 2025-03-03 2411 */
003fde4492c88a David Hildenbrand 2025-03-03 2412 if (!IS_ENABLED(CONFIG_MM_ID))
eefb9b2725e395 David Hildenbrand 2024-04-09 2413 return true;
eefb9b2725e395 David Hildenbrand 2024-04-09 2414
003fde4492c88a David Hildenbrand 2025-03-03 2415 /*
003fde4492c88a David Hildenbrand 2025-03-03 2416 * A single mapping implies "mapped exclusively", even if the
003fde4492c88a David Hildenbrand 2025-03-03 2417 * folio flag says something different: it's easier to handle this
003fde4492c88a David Hildenbrand 2025-03-03 2418 * case here instead of on the RMAP hot path.
003fde4492c88a David Hildenbrand 2025-03-03 2419 */
003fde4492c88a David Hildenbrand 2025-03-03 2420 if (mapcount <= 1)
003fde4492c88a David Hildenbrand 2025-03-03 2421 return false;
4428a35f91f0f0 Lance Yang 2025-04-24 2422 return test_bit(FOLIO_MM_IDS_SHARED_BITNUM, &folio->_mm_ids);
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2423) }
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2424)
86ebd50224c073 Shivank Garg 2025-04-30 2425 /**
86ebd50224c073 Shivank Garg 2025-04-30 2426 * folio_expected_ref_count - calculate the expected folio refcount
86ebd50224c073 Shivank Garg 2025-04-30 2427 * @folio: the folio
86ebd50224c073 Shivank Garg 2025-04-30 2428 *
86ebd50224c073 Shivank Garg 2025-04-30 2429 * Calculate the expected folio refcount, taking references from the pagecache,
86ebd50224c073 Shivank Garg 2025-04-30 2430 * swapcache, PG_private and page table mappings into account. Useful in
86ebd50224c073 Shivank Garg 2025-04-30 2431 * combination with folio_ref_count() to detect unexpected references (e.g.,
86ebd50224c073 Shivank Garg 2025-04-30 2432 * GUP or other temporary references).
86ebd50224c073 Shivank Garg 2025-04-30 2433 *
86ebd50224c073 Shivank Garg 2025-04-30 2434 * Does currently not consider references from the LRU cache. If the folio
86ebd50224c073 Shivank Garg 2025-04-30 2435 * was isolated from the LRU (which is the case during migration or split),
86ebd50224c073 Shivank Garg 2025-04-30 2436 * the LRU cache does not apply.
86ebd50224c073 Shivank Garg 2025-04-30 2437 *
86ebd50224c073 Shivank Garg 2025-04-30 2438 * Calling this function on an unmapped folio -- !folio_mapped() -- that is
86ebd50224c073 Shivank Garg 2025-04-30 2439 * locked will return a stable result.
86ebd50224c073 Shivank Garg 2025-04-30 2440 *
86ebd50224c073 Shivank Garg 2025-04-30 2441 * Calling this function on a mapped folio will not result in a stable result,
86ebd50224c073 Shivank Garg 2025-04-30 2442 * because nothing stops additional page table mappings from coming (e.g.,
86ebd50224c073 Shivank Garg 2025-04-30 2443 * fork()) or going (e.g., munmap()).
86ebd50224c073 Shivank Garg 2025-04-30 2444 *
86ebd50224c073 Shivank Garg 2025-04-30 2445 * Calling this function without the folio lock will also not result in a
86ebd50224c073 Shivank Garg 2025-04-30 2446 * stable result: for example, the folio might get dropped from the swapcache
86ebd50224c073 Shivank Garg 2025-04-30 2447 * concurrently.
86ebd50224c073 Shivank Garg 2025-04-30 2448 *
86ebd50224c073 Shivank Garg 2025-04-30 2449 * However, even when called without the folio lock or on a mapped folio,
86ebd50224c073 Shivank Garg 2025-04-30 2450 * this function can be used to detect unexpected references early (for example,
86ebd50224c073 Shivank Garg 2025-04-30 2451 * if it makes sense to even lock the folio and unmap it).
86ebd50224c073 Shivank Garg 2025-04-30 2452 *
86ebd50224c073 Shivank Garg 2025-04-30 2453 * The caller must add any reference (e.g., from folio_try_get()) it might be
86ebd50224c073 Shivank Garg 2025-04-30 2454 * holding itself to the result.
86ebd50224c073 Shivank Garg 2025-04-30 2455 *
86ebd50224c073 Shivank Garg 2025-04-30 2456 * Returns the expected folio refcount.
86ebd50224c073 Shivank Garg 2025-04-30 2457 */
86ebd50224c073 Shivank Garg 2025-04-30 2458 static inline int folio_expected_ref_count(const struct folio *folio)
86ebd50224c073 Shivank Garg 2025-04-30 2459 {
86ebd50224c073 Shivank Garg 2025-04-30 2460 const int order = folio_order(folio);
86ebd50224c073 Shivank Garg 2025-04-30 2461 int ref_count = 0;
86ebd50224c073 Shivank Garg 2025-04-30 2462
78cb1a13c42a6d David Hildenbrand 2025-07-04 2463 if (WARN_ON_ONCE(page_has_type(&folio->page) && !folio_test_hugetlb(folio)))
86ebd50224c073 Shivank Garg 2025-04-30 2464 return 0;
86ebd50224c073 Shivank Garg 2025-04-30 2465
86ebd50224c073 Shivank Garg 2025-04-30 2466 /* One reference per page from the swapcache. */
86ebd50224c073 Shivank Garg 2025-04-30 2467 ref_count += folio_test_swapcache(folio) << order;
f183663901f21f Bijan Tabatabai 2025-12-16 2468
f183663901f21f Bijan Tabatabai 2025-12-16 2469 if (!folio_test_anon(folio)) {
86ebd50224c073 Shivank Garg 2025-04-30 2470 /* One reference per page from the pagecache. */
86ebd50224c073 Shivank Garg 2025-04-30 2471 ref_count += !!folio->mapping << order;
86ebd50224c073 Shivank Garg 2025-04-30 2472 /* One reference from PG_private. */
86ebd50224c073 Shivank Garg 2025-04-30 2473 ref_count += folio_test_private(folio);
86ebd50224c073 Shivank Garg 2025-04-30 2474 }
86ebd50224c073 Shivank Garg 2025-04-30 2475
86ebd50224c073 Shivank Garg 2025-04-30 2476 /* One reference per page table mapping. */
86ebd50224c073 Shivank Garg 2025-04-30 2477 return ref_count + folio_mapcount(folio);
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2478) }
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2479)
b424de33c42dbd Matthew Wilcox (Oracle 2021-04-24 2480) #ifndef HAVE_ARCH_MAKE_FOLIO_ACCESSIBLE
b424de33c42dbd Matthew Wilcox (Oracle 2021-04-24 2481) static inline int arch_make_folio_accessible(struct folio *folio)
b424de33c42dbd Matthew Wilcox (Oracle 2021-04-24 2482) {
e5a41fc77771c7 David Hildenbrand 2024-07-29 2483 return 0;
b424de33c42dbd Matthew Wilcox (Oracle 2021-04-24 2484) }
b424de33c42dbd Matthew Wilcox (Oracle 2021-04-24 2485) #endif
b424de33c42dbd Matthew Wilcox (Oracle 2021-04-24 2486)
f6ac2354d79119 Christoph Lameter 2006-06-30 2487 /*
f6ac2354d79119 Christoph Lameter 2006-06-30 2488 * Some inline functions in vmstat.h depend on page_zone()
f6ac2354d79119 Christoph Lameter 2006-06-30 2489 */
f6ac2354d79119 Christoph Lameter 2006-06-30 2490 #include <linux/vmstat.h>
f6ac2354d79119 Christoph Lameter 2006-06-30 2491
^1da177e4c3f41 Linus Torvalds 2005-04-16 2492 #if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2493 #define HASHED_PAGE_VIRTUAL
^1da177e4c3f41 Linus Torvalds 2005-04-16 2494 #endif
^1da177e4c3f41 Linus Torvalds 2005-04-16 2495
^1da177e4c3f41 Linus Torvalds 2005-04-16 2496 #if defined(WANT_PAGE_VIRTUAL)
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2497 static inline void *page_address(const struct page *page)
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2498 {
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2499 return page->virtual;
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2500 }
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2501 static inline void set_page_address(struct page *page, void *address)
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2502 {
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2503 page->virtual = address;
f92f455f67fef2 Geert Uytterhoeven 2014-01-21 2504 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2505 #define page_address_init() do { } while(0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2506 #endif
^1da177e4c3f41 Linus Torvalds 2005-04-16 2507
^1da177e4c3f41 Linus Torvalds 2005-04-16 2508 #if defined(HASHED_PAGE_VIRTUAL)
f991879473828f Ian Campbell 2011-08-17 @2509 void *page_address(const struct page *page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2510 void set_page_address(struct page *page, void *virtual);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2511 void page_address_init(void);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2512 #endif
^1da177e4c3f41 Linus Torvalds 2005-04-16 2513
:::::: The code at line 2356 was first introduced by commit
:::::: 4d2bcefa965b06a1f2be6912456bcfa86a34f184 mm: Reduce the number of slab->folio casts
:::::: TO: Matthew Wilcox (Oracle) <willy@infradead.org>
:::::: CC: Vlastimil Babka <vbabka@suse.cz>
--
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-02-14 23:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-14 23:39 [bvanassche:thread-safety-2026-02-13 7/85] include/linux/mm.h:2356:22: error: conflicting types for 'folio_size' 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.