Commit 4428a35f authored by Lance Yang's avatar Lance Yang Committed by Andrew Morton
Browse files

mm/rmap: inline folio_test_large_maybe_mapped_shared() into callers

To prevent the function from being used when CONFIG_MM_ID is disabled, we
intend to inline it into its few callers, which also would help maintain
the expected code placement.

Link: https://lkml.kernel.org/r/20250424155606.57488-1-lance.yang@linux.dev


Signed-off-by: default avatarLance Yang <lance.yang@linux.dev>
Suggested-by: default avatarDavid Hildenbrand <david@redhat.com>
Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
Cc: Mingzhe Yang <mingzhe.yang@ly.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent ee43f26b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2111,7 +2111,7 @@ static inline bool folio_maybe_mapped_shared(struct folio *folio)
	 */
	if (mapcount <= 1)
		return false;
	return folio_test_large_maybe_mapped_shared(folio);
	return test_bit(FOLIO_MM_IDS_SHARED_BITNUM, &folio->_mm_ids);
}

#ifndef HAVE_ARCH_MAKE_FOLIO_ACCESSIBLE
+0 −4
Original line number Diff line number Diff line
@@ -1230,10 +1230,6 @@ static inline int folio_has_private(const struct folio *folio)
	return !!(folio->flags & PAGE_FLAGS_PRIVATE);
}

static inline bool folio_test_large_maybe_mapped_shared(const struct folio *folio)
{
	return test_bit(FOLIO_MM_IDS_SHARED_BITNUM, &folio->_mm_ids);
}
#undef PF_ANY
#undef PF_HEAD
#undef PF_NO_TAIL
+1 −1
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ static inline void __folio_large_mapcount_sanity_checks(const struct folio *foli
	VM_WARN_ON_ONCE(folio_mm_id(folio, 1) != MM_ID_DUMMY &&
			folio->_mm_id_mapcount[1] < 0);
	VM_WARN_ON_ONCE(!folio_mapped(folio) &&
			folio_test_large_maybe_mapped_shared(folio));
			test_bit(FOLIO_MM_IDS_SHARED_BITNUM, &folio->_mm_ids));
}

static __always_inline void folio_set_large_mapcount(struct folio *folio,
+2 −2
Original line number Diff line number Diff line
@@ -3768,7 +3768,7 @@ static bool __wp_can_reuse_large_anon_folio(struct folio *folio,
	 * If all folio references are from mappings, and all mappings are in
	 * the page tables of this MM, then this folio is exclusive to this MM.
	 */
	if (folio_test_large_maybe_mapped_shared(folio))
	if (test_bit(FOLIO_MM_IDS_SHARED_BITNUM, &folio->_mm_ids))
		return false;

	VM_WARN_ON_ONCE(folio_test_ksm(folio));
@@ -3791,7 +3791,7 @@ static bool __wp_can_reuse_large_anon_folio(struct folio *folio,
	folio_lock_large_mapcount(folio);
	VM_WARN_ON_ONCE_FOLIO(folio_large_mapcount(folio) > folio_ref_count(folio), folio);

	if (folio_test_large_maybe_mapped_shared(folio))
	if (test_bit(FOLIO_MM_IDS_SHARED_BITNUM, &folio->_mm_ids))
		goto unlock;
	if (folio_large_mapcount(folio) != folio_ref_count(folio))
		goto unlock;