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

[Xen-changelog] [xen staging] xen/arm: Misc improvements to do_common_cpu_on()



commit 117bab9d7a270df90c540e984da18739022ce11e
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Wed Apr 24 19:10:58 2019 +0100
Commit:     Wei Liu <wei.liu2@xxxxxxxxxx>
CommitDate: Mon May 13 11:28:03 2019 +0100

    xen/arm: Misc improvements to do_common_cpu_on()
    
     * Use domain_vcpu() rather than opencoding the lookup.  Amongst other 
things,
       domain_vcpu() is spectre-v1-safe.
     * Unlock the domain immediately after arch_set_info_guest() completes.  
There
       is no need for free_vcpu_guest_context() to be within the critical 
region,
       and moving the call simplifies the error case.
    
    No practical change in functionality.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Julien Grall <julien.grall@xxxxxxx>
---
 xen/arch/arm/vpsci.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 9f4e5b8844..c1e250be59 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -33,7 +33,7 @@ static int do_common_cpu_on(register_t target_cpu, register_t 
entry_point,
 
     vcpuid = vaffinity_to_vcpuid(target_cpu);
 
-    if ( vcpuid >= d->max_vcpus || (v = d->vcpu[vcpuid]) == NULL )
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
         return PSCI_INVALID_PARAMETERS;
 
     /* THUMB set is not allowed with 64-bit domain */
@@ -82,14 +82,12 @@ static int do_common_cpu_on(register_t target_cpu, 
register_t entry_point,
 
     domain_lock(d);
     rc = arch_set_info_guest(v, ctxt);
+    domain_unlock(d);
+
     free_vcpu_guest_context(ctxt);
 
     if ( rc < 0 )
-    {
-        domain_unlock(d);
         return PSCI_DENIED;
-    }
-    domain_unlock(d);
 
     vcpu_wake(v);
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

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