diff mbox series

[4.19,49/49] x86/Xen: swap NX determination and GDT setup on BSP

Message ID 20210524152325.958181984@linuxfoundation.org
State Superseded
Headers show
Series None | expand

Commit Message

Greg Kroah-Hartman May 24, 2021, 3:26 p.m. UTC
From: Jan Beulich <jbeulich@suse.com>

commit ae897fda4f507e4b239f0bdfd578b3688ca96fb4 upstream.

xen_setup_gdt(), via xen_load_gdt_boot(), wants to adjust page tables.
For this to work when NX is not available, x86_configure_nx() needs to
be called first.

[jgross] Note that this is a revert of 36104cb9012a82e73 ("x86/xen:
Delay get_cpu_cap until stack canary is established"), which is possible
now that we no longer support running as PV guest in 32-bit mode.

Cc: <stable.vger.kernel.org> # 5.9
Fixes: 36104cb9012a82e73 ("x86/xen: Delay get_cpu_cap until stack canary is established")
Reported-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Link: https://lore.kernel.org/r/12a866b0-9e89-59f7-ebeb-a2a6cec0987a@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/enlighten_pv.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Jürgen Groß May 25, 2021, 5:11 a.m. UTC | #1
On 24.05.21 17:26, Greg Kroah-Hartman wrote:
> From: Jan Beulich <jbeulich@suse.com>

> 

> commit ae897fda4f507e4b239f0bdfd578b3688ca96fb4 upstream.

> 

> xen_setup_gdt(), via xen_load_gdt_boot(), wants to adjust page tables.

> For this to work when NX is not available, x86_configure_nx() needs to

> be called first.

> 

> [jgross] Note that this is a revert of 36104cb9012a82e73 ("x86/xen:

> Delay get_cpu_cap until stack canary is established"), which is possible

> now that we no longer support running as PV guest in 32-bit mode.

> 

> Cc: <stable.vger.kernel.org> # 5.9


Sorry for messing up the stable link, but please don't include this
patch in stable kernels before 5.9


Juergen

> Fixes: 36104cb9012a82e73 ("x86/xen: Delay get_cpu_cap until stack canary is established")

> Reported-by: Olaf Hering <olaf@aepfle.de>

> Signed-off-by: Jan Beulich <jbeulich@suse.com>

> Reviewed-by: Juergen Gross <jgross@suse.com>

> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

> 

> Link: https://lore.kernel.org/r/12a866b0-9e89-59f7-ebeb-a2a6cec0987a@suse.com

> Signed-off-by: Juergen Gross <jgross@suse.com>

> ---

>   arch/x86/xen/enlighten_pv.c |    8 ++++----

>   1 file changed, 4 insertions(+), 4 deletions(-)

> 

> --- a/arch/x86/xen/enlighten_pv.c

> +++ b/arch/x86/xen/enlighten_pv.c

> @@ -1246,16 +1246,16 @@ asmlinkage __visible void __init xen_sta

>   	/* Get mfn list */

>   	xen_build_dynamic_phys_to_machine();

>   

> +	/* Work out if we support NX */

> +	get_cpu_cap(&boot_cpu_data);

> +	x86_configure_nx();

> +

>   	/*

>   	 * Set up kernel GDT and segment registers, mainly so that

>   	 * -fstack-protector code can be executed.

>   	 */

>   	xen_setup_gdt(0);

>   

> -	/* Work out if we support NX */

> -	get_cpu_cap(&boot_cpu_data);

> -	x86_configure_nx();

> -

>   	/* Determine virtual and physical address sizes */

>   	get_cpu_address_sizes(&boot_cpu_data);

>   

> 

>
Greg Kroah-Hartman May 25, 2021, 6:55 a.m. UTC | #2
On Tue, May 25, 2021 at 07:11:21AM +0200, Juergen Gross wrote:
> On 24.05.21 17:26, Greg Kroah-Hartman wrote:

> > From: Jan Beulich <jbeulich@suse.com>

> > 

> > commit ae897fda4f507e4b239f0bdfd578b3688ca96fb4 upstream.

> > 

> > xen_setup_gdt(), via xen_load_gdt_boot(), wants to adjust page tables.

> > For this to work when NX is not available, x86_configure_nx() needs to

> > be called first.

> > 

> > [jgross] Note that this is a revert of 36104cb9012a82e73 ("x86/xen:

> > Delay get_cpu_cap until stack canary is established"), which is possible

> > now that we no longer support running as PV guest in 32-bit mode.

> > 

> > Cc: <stable.vger.kernel.org> # 5.9

> 

> Sorry for messing up the stable link, but please don't include this

> patch in stable kernels before 5.9


Now dropped, thanks for reminding me.

greg k-h
diff mbox series

Patch

--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1246,16 +1246,16 @@  asmlinkage __visible void __init xen_sta
 	/* Get mfn list */
 	xen_build_dynamic_phys_to_machine();
 
+	/* Work out if we support NX */
+	get_cpu_cap(&boot_cpu_data);
+	x86_configure_nx();
+
 	/*
 	 * Set up kernel GDT and segment registers, mainly so that
 	 * -fstack-protector code can be executed.
 	 */
 	xen_setup_gdt(0);
 
-	/* Work out if we support NX */
-	get_cpu_cap(&boot_cpu_data);
-	x86_configure_nx();
-
 	/* Determine virtual and physical address sizes */
 	get_cpu_address_sizes(&boot_cpu_data);