debuggers.hg
changeset 16600:35890b260971
x86: Change proliant io emulation stub to use pushf/popf instead of pushfw/popfw.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author | Keir Fraser <keir.fraser@citrix.com> |
---|---|
date | Fri Dec 07 17:05:15 2007 +0000 (2007-12-07) |
parents | a74efcdc87b3 |
children | d4a3479e68ce |
files | xen/arch/x86/ioport_emulate.c |
line diff
1.1 --- a/xen/arch/x86/ioport_emulate.c Fri Dec 07 16:39:15 2007 +0000 1.2 +++ b/xen/arch/x86/ioport_emulate.c Fri Dec 07 17:05:15 2007 +0000 1.3 @@ -22,26 +22,24 @@ static void ioemul_handle_proliant_quirk 1.4 if ( (opcode != 0xee) || (port != 0xcd4) || !(value & 0x80) ) 1.5 return; 1.6 1.7 - /* pushfw */ 1.8 - io_emul_stub[ 0] = 0x66; 1.9 - io_emul_stub[ 1] = 0x9c; 1.10 + /* pushf */ 1.11 + io_emul_stub[0] = 0x9c; 1.12 /* cli */ 1.13 - io_emul_stub[ 2] = 0xfa; 1.14 + io_emul_stub[1] = 0xfa; 1.15 /* out %al,%dx */ 1.16 - io_emul_stub[ 3] = 0xee; 1.17 + io_emul_stub[2] = 0xee; 1.18 /* 1: in %dx,%al */ 1.19 - io_emul_stub[ 4] = 0xec; 1.20 + io_emul_stub[3] = 0xec; 1.21 /* test $0x80,%al */ 1.22 - io_emul_stub[ 5] = 0xa8; 1.23 - io_emul_stub[ 6] = 0x80; 1.24 + io_emul_stub[4] = 0xa8; 1.25 + io_emul_stub[5] = 0x80; 1.26 /* jnz 1b */ 1.27 - io_emul_stub[ 7] = 0x75; 1.28 - io_emul_stub[ 8] = 0xfb; 1.29 - /* popfw */ 1.30 - io_emul_stub[ 9] = 0x66; 1.31 - io_emul_stub[10] = 0x9d; 1.32 + io_emul_stub[6] = 0x75; 1.33 + io_emul_stub[7] = 0xfb; 1.34 + /* popf */ 1.35 + io_emul_stub[8] = 0x9d; 1.36 /* ret */ 1.37 - io_emul_stub[11] = 0xc3; 1.38 + io_emul_stub[9] = 0xc3; 1.39 } 1.40 1.41 int __init proliant_quirk(struct dmi_system_id *d)