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 <apop@bitdefender.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Release-acked-by: Julien Grall <julien.grall@linaro.org>
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);