2020-04-09 07:01:08

by Jürgen Groß

[permalink] [raw]
Subject: [PATCH] x86/xen: fix booting 32-bit pv guest

Commit 2f62f36e62daec ("x86/xen: Make the boot CPU idle task reliable")
introduced a regression for booting 32 bit Xen PV guests: the address
of the initial stack needs to be a virtual one.

Fixes: 2f62f36e62daec ("x86/xen: Make the boot CPU idle task reliable")
Signed-off-by: Juergen Gross <[email protected]>
---
arch/x86/xen/xen-head.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
index 7d1c4fcbe8f7..1ba601df3a37 100644
--- a/arch/x86/xen/xen-head.S
+++ b/arch/x86/xen/xen-head.S
@@ -38,7 +38,7 @@ SYM_CODE_START(startup_xen)
#ifdef CONFIG_X86_64
mov initial_stack(%rip), %rsp
#else
- mov pa(initial_stack), %esp
+ mov initial_stack, %esp
#endif

#ifdef CONFIG_X86_64
--
2.16.4


2020-04-09 14:47:42

by Boris Ostrovsky

[permalink] [raw]
Subject: Re: [PATCH] x86/xen: fix booting 32-bit pv guest


On 4/9/20 3:00 AM, Juergen Gross wrote:
> Commit 2f62f36e62daec ("x86/xen: Make the boot CPU idle task reliable")
> introduced a regression for booting 32 bit Xen PV guests: the address
> of the initial stack needs to be a virtual one.
>
> Fixes: 2f62f36e62daec ("x86/xen: Make the boot CPU idle task reliable")
> Signed-off-by: Juergen Gross <[email protected]>


Reviewed-by: Boris Ostrovsky <[email protected]>


> ---
> arch/x86/xen/xen-head.S | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
> index 7d1c4fcbe8f7..1ba601df3a37 100644
> --- a/arch/x86/xen/xen-head.S
> +++ b/arch/x86/xen/xen-head.S
> @@ -38,7 +38,7 @@ SYM_CODE_START(startup_xen)
> #ifdef CONFIG_X86_64


While at it, I'd swap the ifdefs and fold x86_64 case into the one below.


> mov initial_stack(%rip), %rsp
> #else
> - mov pa(initial_stack), %esp
> + mov initial_stack, %esp
> #endif
>
> #ifdef CONFIG_X86_64



2020-04-09 17:25:21

by Jürgen Groß

[permalink] [raw]
Subject: Re: [PATCH] x86/xen: fix booting 32-bit pv guest

On 09.04.20 16:44, Boris Ostrovsky wrote:
>
> On 4/9/20 3:00 AM, Juergen Gross wrote:
>> Commit 2f62f36e62daec ("x86/xen: Make the boot CPU idle task reliable")
>> introduced a regression for booting 32 bit Xen PV guests: the address
>> of the initial stack needs to be a virtual one.
>>
>> Fixes: 2f62f36e62daec ("x86/xen: Make the boot CPU idle task reliable")
>> Signed-off-by: Juergen Gross <[email protected]>
>
>
> Reviewed-by: Boris Ostrovsky <[email protected]>
>
>
>> ---
>> arch/x86/xen/xen-head.S | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
>> index 7d1c4fcbe8f7..1ba601df3a37 100644
>> --- a/arch/x86/xen/xen-head.S
>> +++ b/arch/x86/xen/xen-head.S
>> @@ -38,7 +38,7 @@ SYM_CODE_START(startup_xen)
>> #ifdef CONFIG_X86_64
>
>
> While at it, I'd swap the ifdefs and fold x86_64 case into the one below.

I wanted to remove 32-bit PV support from the kernel soon, so I think
this can wait until then. :-)


Juergen