[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] xen/arm: Don't call setup_virtual_regions multiple time



commit 1260c7fdb91dfe0033d6eef0e94b93607be020a9
Author:     Julien Grall <julien.grall@xxxxxxx>
AuthorDate: Wed May 25 14:14:06 2016 +0100
Commit:     Wei Liu <wei.liu2@xxxxxxxxxx>
CommitDate: Wed May 25 14:42:55 2016 +0100

    xen/arm: Don't call setup_virtual_regions multiple time
    
    The commit 2aa925be84293b44ad587ed117184ace61b41dd6 "arm/x86: Use struct
    virtual_region to do bug, symbol, and (x86) exception tables lookup."
    has introduced virtual_region. The call to initialize those regions is
    made in init_traps which is called during each CPU bring up.
    
    This will result to register multiple time the same region and Xen crash
    when an address is looked up.
    
    This can be fixed by moving the call to setup_virtual_region directly in
    start_xen.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reported-by: Chenxia Zhao <chenxiao.zhao@xxxxxxxxx>
    Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
    Release-acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 xen/arch/arm/setup.c | 1 +
 xen/arch/arm/traps.c | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 09ff1ea..9bc11c4 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -722,6 +722,7 @@ void __init start_xen(unsigned long boot_phys_offset,
     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 --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 1828ea1..aa3e3c2 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -102,8 +102,6 @@ integer_param("debug_stack_lines", debug_stack_lines);
 
 void init_traps(void)
 {
-    setup_virtual_regions(NULL, NULL);
-
     /* Setup Hyp vector base */
     WRITE_SYSREG((vaddr_t)hyp_traps_vector, VBAR_EL2);
 
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.