Commit eb52c6d769 for qemu.org
commit eb52c6d7698824e877a19293706c77ce7b523120
Author: Richard Henderson <richard.henderson@linaro.org>
Date: Tue Feb 17 19:51:04 2026 +1000
page-vary: Build finalize_target_page_bits as common code
Use target_info->page_bits_init to merge
finalize_target_page_bits_common into
finalize_target_page_bits in page-vary-common.c.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <20260217095106.598486-6-richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/include/exec/page-vary.h b/include/exec/page-vary.h
index c4dc56634b..f2d735bec2 100644
--- a/include/exec/page-vary.h
+++ b/include/exec/page-vary.h
@@ -40,10 +40,6 @@ typedef struct {
uint64_t mask;
} TargetPageBits;
-#ifdef IN_PAGE_VARY
-void finalize_target_page_bits_common(int min);
-#endif
-
/**
* set_preferred_target_page_bits:
* @bits: number of bits needed to represent an address within the page
diff --git a/page-vary-common.c b/page-vary-common.c
index b41137c644..ddd0863378 100644
--- a/page-vary-common.c
+++ b/page-vary-common.c
@@ -50,11 +50,18 @@ bool set_preferred_target_page_bits(int bits)
return true;
}
-void finalize_target_page_bits_common(int min)
+void finalize_target_page_bits(void)
{
- if (target_page.bits == 0) {
- target_page.bits = min;
+ int bits = target_page.bits;
+
+ if (bits == 0) {
+ const TargetInfo *ti = target_info();
+
+ bits = ti->page_bits_init;
+ assert(bits != 0);
+ target_page.bits = bits;
}
- target_page.mask = -1ull << target_page.bits;
+
+ target_page.mask = -1ull << bits;
target_page.decided = true;
}
diff --git a/page-vary-target.c b/page-vary-target.c
index d388c5c3d6..bc4d8931b6 100644
--- a/page-vary-target.c
+++ b/page-vary-target.c
@@ -38,15 +38,3 @@ int migration_legacy_page_bits(void)
#endif
}
#endif
-
-void finalize_target_page_bits(void)
-{
-#ifndef TARGET_PAGE_BITS_VARY
- finalize_target_page_bits_common(TARGET_PAGE_BITS);
-#elif defined(CONFIG_USER_ONLY)
- assert(target_page.bits != 0);
- finalize_target_page_bits_common(target_page.bits);
-#else
- finalize_target_page_bits_common(TARGET_PAGE_BITS_LEGACY);
-#endif
-}