diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-03-19 14:08:02 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-03-19 14:08:02 +0000 |
commit | 54baaeb059ac5b87f9e5a15dee7a5f1bd3c762f6 (patch) | |
tree | ab622f06dd8761fb9e9c1237ca22d0877689e314 /xen/arch/x86/x86_emulate.c | |
parent | 7065b5e4c16be241d7182cd4fcbd316c4b14e3de (diff) | |
download | xen-54baaeb059ac5b87f9e5a15dee7a5f1bd3c762f6.tar.gz xen-54baaeb059ac5b87f9e5a15dee7a5f1bd3c762f6.tar.bz2 xen-54baaeb059ac5b87f9e5a15dee7a5f1bd3c762f6.zip |
x86_emulate: Remove the CPL and IOPL check in the I/O handling code.
The check is already carried out by the processor during VMEXIT, where
that is required.
Signed-off-by: Xu Dongxiao <dongxiao.xu@intel.com>
Diffstat (limited to 'xen/arch/x86/x86_emulate.c')
-rw-r--r-- | xen/arch/x86/x86_emulate.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c index 6981f9b52d..a3e71c2780 100644 --- a/xen/arch/x86/x86_emulate.c +++ b/xen/arch/x86/x86_emulate.c @@ -2265,7 +2265,6 @@ x86_emulate( case 0x6c ... 0x6d: /* ins %dx,%es:%edi */ { unsigned long nr_reps = get_rep_prefix(); - generate_exception_if(!mode_iopl(), EXC_GP, 0); dst.bytes = !(b & 1) ? 1 : (op_bytes == 8) ? 4 : op_bytes; dst.mem.seg = x86_seg_es; dst.mem.off = truncate_ea(_regs.edi); @@ -2295,7 +2294,6 @@ x86_emulate( case 0x6e ... 0x6f: /* outs %esi,%dx */ { unsigned long nr_reps = get_rep_prefix(); - generate_exception_if(!mode_iopl(), EXC_GP, 0); dst.bytes = !(b & 1) ? 1 : (op_bytes == 8) ? 4 : op_bytes; if ( (nr_reps > 1) && (ops->rep_outs != NULL) && ((rc = ops->rep_outs(ea.mem.seg, truncate_ea(_regs.esi), @@ -2832,7 +2830,6 @@ x86_emulate( unsigned int port = ((b < 0xe8) ? insn_fetch_type(uint8_t) : (uint16_t)_regs.edx); - generate_exception_if(!mode_iopl(), EXC_GP, 0); op_bytes = !(b & 1) ? 1 : (op_bytes == 8) ? 4 : op_bytes; if ( b & 2 ) { |