ARM/boot: Don't poison 'current' during early boot
diff mbox series

Message ID 20200115184358.21131-1-andrew.cooper3@citrix.com
State New
Headers show
Series
  • ARM/boot: Don't poison 'current' during early boot
Related show

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();
>

Patch
diff mbox series

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();