diff mbox series

ARM/boot: Don't poison 'current' during early boot

Message ID 20200115184358.21131-1-andrew.cooper3@citrix.com (mailing list archive)
State New, archived
Headers show
Series ARM/boot: Don't poison 'current' during early boot | expand

Commit Message

Andrew Cooper Jan. 15, 2020, 6:43 p.m. UTC
This logic was inherited from x86 (which was updated several times since).
Unlike x86 (at the time) however, while NULL isn't mapped in ARM, 0xfffff000
is, making this actively dangerous.

Drop the logic entirely, and leave 'current' as NULL during early boot.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
---
 xen/arch/arm/setup.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Julien Grall Jan. 15, 2020, 6:45 p.m. UTC | #1
Hi,

On 15/01/2020 18:43, Andrew Cooper wrote:
> This logic was inherited from x86 (which was updated several times since).
> Unlike x86 (at the time) however, while NULL isn't mapped in ARM, 0xfffff000
> is, making this actively dangerous.
> 
> Drop the logic entirely, and leave 'current' as NULL during early boot.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thank you for the cleanup!

Acked-by: Julien Grall <julien@xen.org>

Cheers,

> ---
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> ---
>   xen/arch/arm/setup.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 3c899cd4a0..9dd3738d44 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -798,9 +798,6 @@ void __init start_xen(unsigned long boot_phys_offset,
>       percpu_init_areas();
>       set_processor_id(0); /* needed early, for smp_processor_id() */
>   
> -    set_current((struct vcpu *)0xfffff000); /* debug sanity */
> -    idle_vcpu[0] = current;
> -
>       setup_virtual_regions(NULL, NULL);
>       /* Initialize traps early allow us to get backtrace when an error occurred */
>       init_traps();
>
diff mbox series

Patch

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 3c899cd4a0..9dd3738d44 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -798,9 +798,6 @@  void __init start_xen(unsigned long boot_phys_offset,
     percpu_init_areas();
     set_processor_id(0); /* needed early, for smp_processor_id() */
 
-    set_current((struct vcpu *)0xfffff000); /* debug sanity */
-    idle_vcpu[0] = current;
-
     setup_virtual_regions(NULL, NULL);
     /* Initialize traps early allow us to get backtrace when an error occurred */
     init_traps();