]> xenbits.xensource.com Git - people/dariof/xen.git/commitdiff
x86: eliminate pv_post_outb_hook
authorWei Liu <wei.liu2@citrix.com>
Fri, 9 Nov 2018 16:29:19 +0000 (16:29 +0000)
committerWei Liu <wei.liu2@citrix.com>
Mon, 12 Nov 2018 09:31:55 +0000 (09:31 +0000)
Use amd_acpi_c1e_quirk and amd_check_disable_c1e instead.

Requested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/cpu/amd.c
xen/arch/x86/pv/emul-priv-op.c
xen/include/asm-x86/io.h

index e1fc88bdcffea44473b195c89a33b709e8ff2419..c790416f8df85f5302f5e3076804f78abc299bce 100644 (file)
@@ -630,12 +630,8 @@ static void init_amd(struct cpuinfo_x86 *c)
        {
        case 0xf ... 0x17:
                disable_c1e(NULL);
-               if (acpi_smi_cmd && (acpi_enable_value | acpi_disable_value)) {
-#ifdef CONFIG_PV
-                       pv_post_outb_hook = amd_check_disable_c1e;
-#endif
+               if (acpi_smi_cmd && (acpi_enable_value | acpi_disable_value))
                        amd_acpi_c1e_quirk = true;
-               }
                break;
        }
 
index f73ea4a163dca14e2ff4c6f063a3fb302f65341d..83441b68b376bf6707ec70cd0cde56648493d67b 100644 (file)
@@ -26,6 +26,7 @@
 #include <xen/spinlock.h>
 #include <xen/trace.h>
 
+#include <asm/amd.h>
 #include <asm/apic.h>
 #include <asm/debugreg.h>
 #include <asm/hpet.h>
@@ -59,8 +60,6 @@ struct priv_op_ctxt {
 void host_to_guest_gpr_switch(struct cpu_user_regs *);
 unsigned long guest_to_host_gpr_switch(unsigned long);
 
-void (*pv_post_outb_hook)(unsigned int port, u8 value);
-
 typedef void io_emul_stub_t(struct cpu_user_regs *);
 
 static io_emul_stub_t *io_emul_stub_setup(struct priv_op_ctxt *ctxt, u8 opcode,
@@ -351,8 +350,8 @@ static void guest_io_write(unsigned int port, unsigned int bytes,
         {
         case 1:
             outb((uint8_t)data, port);
-            if ( pv_post_outb_hook )
-                pv_post_outb_hook(port, (uint8_t)data);
+            if ( amd_acpi_c1e_quirk )
+                amd_check_disable_c1e(port, (uint8_t)data);
             break;
         case 2:
             outw((uint16_t)data, port);
@@ -432,8 +431,8 @@ static int write_io(unsigned int port, unsigned int bytes,
             io_emul_stub_setup(poc, ctxt->opcode, port, bytes);
 
         io_emul(ctxt->regs);
-        if ( (bytes == 1) && pv_post_outb_hook )
-            pv_post_outb_hook(port, val);
+        if ( (bytes == 1) && amd_acpi_c1e_quirk )
+            amd_check_disable_c1e(port, val);
         return X86EMUL_DONE;
     }
 
index 4d2064ed0482e6d7568255b374653914d803cb92..8708b79b996e98ddf3be58bee44adfe03ee2a843 100644 (file)
@@ -48,8 +48,6 @@ __OUT(b,"b",char)
 __OUT(w,"w",short)
 __OUT(l,,int)
 
-extern void (*pv_post_outb_hook)(unsigned int port, u8 value);
-
 /* Function pointer used to handle platform specific I/O port emulation. */
 #define IOEMUL_QUIRK_STUB_BYTES 10
 extern bool (*ioemul_handle_quirk)(