From: Richard Henderson <[email protected]> Use target_info->page_bits_vary to merge set_preferred_target_page_bits_common into set_preferred_target_page_bits in page-vary-common.c.
Signed-off-by: Richard Henderson <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Message-ID: <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- include/exec/page-vary.h | 1 - page-vary-common.c | 29 ++++++++++++++++++----------- page-vary-target.c | 10 ---------- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/include/exec/page-vary.h b/include/exec/page-vary.h index 3c77689ca52..c4dc56634bc 100644 --- a/include/exec/page-vary.h +++ b/include/exec/page-vary.h @@ -41,7 +41,6 @@ typedef struct { } TargetPageBits; #ifdef IN_PAGE_VARY -bool set_preferred_target_page_bits_common(int bits); void finalize_target_page_bits_common(int min); #endif diff --git a/page-vary-common.c b/page-vary-common.c index ab77672dd41..b41137c644d 100644 --- a/page-vary-common.c +++ b/page-vary-common.c @@ -20,25 +20,32 @@ #define IN_PAGE_VARY 1 #include "qemu/osdep.h" +#include "qemu/target-info-impl.h" #include "exec/page-vary.h" /* WARNING: This file must *not* be complied with -flto. */ TargetPageBits target_page; -bool set_preferred_target_page_bits_common(int bits) +bool set_preferred_target_page_bits(int bits) { - /* - * The target page size is the lowest common denominator for all - * the CPUs in the system, so we can only make it smaller, never - * larger. And we can't make it smaller once we've committed to - * a particular size. - */ - if (target_page.bits == 0 || target_page.bits > bits) { - if (target_page.decided) { - return false; + const TargetInfo *ti = target_info(); + + assert(bits >= TARGET_PAGE_BITS_MIN); + if (ti->page_bits_vary) { + + /* + * The target page size is the lowest common denominator for all + * the CPUs in the system, so we can only make it smaller, never + * larger. And we can't make it smaller once we've committed to + * a particular size. + */ + if (target_page.bits == 0 || target_page.bits > bits) { + if (target_page.decided) { + return false; + } + target_page.bits = bits; } - target_page.bits = bits; } return true; } diff --git a/page-vary-target.c b/page-vary-target.c index 7c0565dd8dc..d388c5c3d64 100644 --- a/page-vary-target.c +++ b/page-vary-target.c @@ -39,16 +39,6 @@ int migration_legacy_page_bits(void) } #endif -bool set_preferred_target_page_bits(int bits) -{ - assert(bits >= TARGET_PAGE_BITS_MIN); -#ifdef TARGET_PAGE_BITS_VARY - return set_preferred_target_page_bits_common(bits); -#else - return true; -#endif -} - void finalize_target_page_bits(void) { #ifndef TARGET_PAGE_BITS_VARY -- 2.52.0
