x86/pv: Support do_set_segment_base() for compat guests

set_segment_base is the only hypercall exists in only one of the two modes
guests might run in; all other hypercalls are either implemented, or
unimplemented in both modes.

Remove this split, by allowing do_set_segment_base() to be called in the
compat hypercall path.  This change will simplify the verification logic in a
later change.

No behavioural change from a guests point of view.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <JBeulich@suse.com>
This commit is contained in:
Andrew Cooper committed 2016-09-06 13:33:44 +01:00
1 parent 939ba61bd3
commit c99986fa16
2 files changed
+4 -1

No files matched your search

+1 -1
View File
@@ -456,7 +456,7 @@ ENTRY(compat_hypercall_table)
.quad compat_update_va_mapping_otherdomain
.quad compat_iret
.quad compat_vcpu_op
.quad compat_ni_hypercall /* 25 */
.quad do_set_segment_base /* 25 */
.quad compat_mmuext_op
.quad compat_xsm_op
.quad compat_nmi_op
+3
View File
@@ -1031,6 +1031,9 @@ long do_set_segment_base(unsigned int which, unsigned long base)
struct vcpu *v = current;
long ret = 0;
if ( is_pv_32bit_vcpu(v) )
return -ENOSYS; /* x86/64 only. */
switch ( which )
{
case SEGBASE_FS:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.