ia64/xen-unstable

changeset 16562:35890b260971

x86: Change proliant io emulation stub to use pushf/popf instead of pushfw/popfw.
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)