xen/common/kernel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
XENFEAT_pae_pgdir_above_4gb is only used by 32bit PV guests, hence limit
its setting in XENVER_get_features to the is_pv_domain() guarded section,
with the rest of the PV specific features.
No functional change intended.
Signed-off-by: Roger Pau Monné <roger@xenproject.org>
---
Changes since v1:
- Just move the conditional but don't merge it.
---
xen/common/kernel.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index f4bbd8818fa8..6811599f95fd 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -677,8 +677,6 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
(1U << XENFEAT_vcpu_time_phys_area) |
#endif
(1U << XENFEAT_runstate_phys_area);
- if ( VM_ASSIST(d, pae_extended_cr3) )
- fi.submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
if ( paging_mode_translate(d) )
fi.submap |=
(1U << XENFEAT_writable_page_tables) |
@@ -690,9 +688,13 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
#endif
#ifdef CONFIG_X86
if ( is_pv_domain(d) )
+ {
fi.submap |= (1U << XENFEAT_mmu_pt_update_preserve_ad) |
(1U << XENFEAT_highmem_assist) |
(1U << XENFEAT_gnttab_map_avail_bits);
+ if ( VM_ASSIST(d, pae_extended_cr3) )
+ fi.submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
+ }
else
fi.submap |= (1U << XENFEAT_hvm_safe_pvclock) |
(1U << XENFEAT_hvm_callback_vector) |
--
2.55.0
On 01.10.2026 11:19, Roger Pau Monne wrote: > XENFEAT_pae_pgdir_above_4gb is only used by 32bit PV guests, hence limit > its setting in XENVER_get_features to the is_pv_domain() guarded section, > with the rest of the PV specific features. > > No functional change intended. > > Signed-off-by: Roger Pau Monné <roger@xenproject.org> > --- > Changes since v1: > - Just move the conditional but don't merge it. And still no CONFIG_PV32 dependency? Jan
On Thu, Oct 01, 2026 at 01:05:39PM +0200, Jan Beulich wrote: > On 01.10.2026 11:19, Roger Pau Monne wrote: > > XENFEAT_pae_pgdir_above_4gb is only used by 32bit PV guests, hence limit > > its setting in XENVER_get_features to the is_pv_domain() guarded section, > > with the rest of the PV specific features. > > > > No functional change intended. > > > > Signed-off-by: Roger Pau Monné <roger@xenproject.org> > > --- > > Changes since v1: > > - Just move the conditional but don't merge it. > > And still no CONFIG_PV32 dependency? Andrew specifically asked for this form, or at least that was my understanding. Regards, Roger.
On 01.10.2026 16:05, Roger Pau Monné wrote: > On Thu, Oct 01, 2026 at 01:05:39PM +0200, Jan Beulich wrote: >> On 01.10.2026 11:19, Roger Pau Monne wrote: >>> XENFEAT_pae_pgdir_above_4gb is only used by 32bit PV guests, hence limit >>> its setting in XENVER_get_features to the is_pv_domain() guarded section, >>> with the rest of the PV specific features. >>> >>> No functional change intended. >>> >>> Signed-off-by: Roger Pau Monné <roger@xenproject.org> >>> --- >>> Changes since v1: >>> - Just move the conditional but don't merge it. >> >> And still no CONFIG_PV32 dependency? > > Andrew specifically asked for this form, or at least that was my > understanding. Well, Misra-wise you've added unreachable code this way. Jan
Le 01/10/2026 à 11:21, Roger Pau Monne a écrit :
> XENFEAT_pae_pgdir_above_4gb is only used by 32bit PV guests, hence limit
> its setting in XENVER_get_features to the is_pv_domain() guarded section,
> with the rest of the PV specific features.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger@xenproject.org>
> ---
> Changes since v1:
> - Just move the conditional but don't merge it.
> ---
> xen/common/kernel.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/xen/common/kernel.c b/xen/common/kernel.c
> index f4bbd8818fa8..6811599f95fd 100644
> --- a/xen/common/kernel.c
> +++ b/xen/common/kernel.c
> @@ -677,8 +677,6 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> (1U << XENFEAT_vcpu_time_phys_area) |
> #endif
> (1U << XENFEAT_runstate_phys_area);
> - if ( VM_ASSIST(d, pae_extended_cr3) )
> - fi.submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
> if ( paging_mode_translate(d) )
> fi.submap |=
> (1U << XENFEAT_writable_page_tables) |
> @@ -690,9 +688,13 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> #endif
> #ifdef CONFIG_X86
> if ( is_pv_domain(d) )
> + {
> fi.submap |= (1U << XENFEAT_mmu_pt_update_preserve_ad) |
> (1U << XENFEAT_highmem_assist) |
> (1U << XENFEAT_gnttab_map_avail_bits);
> + if ( VM_ASSIST(d, pae_extended_cr3) )
> + fi.submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
> + }
> else
> fi.submap |= (1U << XENFEAT_hvm_safe_pvclock) |
> (1U << XENFEAT_hvm_callback_vector) |
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
Teddy
On 01/10/2026 10:19 am, Roger Pau Monne wrote: > XENFEAT_pae_pgdir_above_4gb is only used by 32bit PV guests, hence limit > its setting in XENVER_get_features to the is_pv_domain() guarded section, > with the rest of the PV specific features. > > No functional change intended. > > Signed-off-by: Roger Pau Monné <roger@xenproject.org> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
© 2016 - 2026 Red Hat, Inc.