[xen master] x86/hvm: Fix altp2m_vcpu_enable_notify error handling

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[xen master] x86/hvm: Fix altp2m_vcpu_enable_notify error handling

patchbot
commit eb0660c6950e08e44fdfeca3e29320382e2a1554
Author:     Adrian Pop <[hidden email]>
AuthorDate: Wed Nov 15 15:47:59 2017 +0200
Commit:     Andrew Cooper <[hidden email]>
CommitDate: Thu Nov 16 17:25:59 2017 +0000

    x86/hvm: Fix altp2m_vcpu_enable_notify error handling
   
    The altp2m_vcpu_enable_notify subop handler might skip calling
    rcu_unlock_domain() after rcu_lock_current_domain().  Albeit since both
    rcu functions are no-ops when run on the current domain, this doesn't
    really have repercussions.
   
    The second change is adding a missing break that would have potentially
    enabled #VE for the current domain even if it had intended to enable it
    for another one (not a supported functionality).
   
    Signed-off-by: Adrian Pop <[hidden email]>
    Reviewed-by: Andrew Cooper <[hidden email]>
    Reviewed-by: Jan Beulich <[hidden email]>
    Release-acked-by: Julien Grall <[hidden email]>
---
 xen/arch/x86/hvm/hvm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 205b4cb..0af498a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4534,12 +4534,18 @@ static int do_altp2m_op(
 
         if ( a.u.enable_notify.pad || a.domain != DOMID_SELF ||
              a.u.enable_notify.vcpu_id != curr->vcpu_id )
+        {
             rc = -EINVAL;
+            break;
+        }
 
         if ( !gfn_eq(vcpu_altp2m(curr).veinfo_gfn, INVALID_GFN) ||
              mfn_eq(get_gfn_query_unlocked(curr->domain,
                     a.u.enable_notify.gfn, &p2mt), INVALID_MFN) )
-            return -EINVAL;
+        {
+            rc = -EINVAL;
+            break;
+        }
 
         vcpu_altp2m(curr).veinfo_gfn = _gfn(a.u.enable_notify.gfn);
         altp2m_vcpu_update_vmfunc_ve(curr);
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
[hidden email]
https://lists.xenproject.org/xen-changelog