[XEN] IOPL is ignored for VM86 mode port accesses. Fix Xen
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 9 Jun 2006 13:29:00 +0000 (14:29 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 9 Jun 2006 13:29:00 +0000 (14:29 +0100)
emulation to match native behaviour.
Signed-off-by: Jan Beulich <jbeulich@novel..com>
xen/arch/x86/traps.c

index 74de928a374e77aa2c99572497188a92074279d2..031ee87e4ff2419e54c7185971d6c8d055907e10 100644 (file)
@@ -748,7 +748,8 @@ static inline int guest_io_okay(
 #define TOGGLE_MODE() ((void)0)
 #endif
 
-    if ( v->arch.iopl >= (guest_kernel_mode(v, regs) ? 1 : 3) )
+    if ( !vm86_mode(regs) &&
+         (v->arch.iopl >= (guest_kernel_mode(v, regs) ? 1 : 3)) )
         return 1;
 
     if ( v->arch.iobmp_limit > (port + bytes) )