mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
939ba61bd3
commit
c99986fa16
2 files changed
+4
-1
No files matched your search
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||