xen/x86: Implement x86_apic_ops
Or rather just implement one different function as opposed to the native one : the read function. We synthesize the values. Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> [v1: Rebased on top of tip/x86/urgent] [v2: Return 0xfd instead of 0xff in the default case] Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
4a8e2a3115
commit
31b3c9d723
4 changed files with 24 additions and 1 deletions
|
@ -20,5 +20,5 @@ obj-$(CONFIG_EVENT_TRACING) += trace.o
|
|||
obj-$(CONFIG_SMP) += smp.o
|
||||
obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
|
||||
obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o
|
||||
obj-$(CONFIG_XEN_DOM0) += vga.o
|
||||
obj-$(CONFIG_XEN_DOM0) += apic.o vga.o
|
||||
obj-$(CONFIG_SWIOTLB_XEN) += pci-swiotlb-xen.o
|
||||
|
|
17
arch/x86/xen/apic.c
Normal file
17
arch/x86/xen/apic.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
#include <linux/init.h>
|
||||
#include <asm/x86_init.h>
|
||||
|
||||
unsigned int xen_io_apic_read(unsigned apic, unsigned reg)
|
||||
{
|
||||
if (reg == 0x1)
|
||||
return 0x00170020;
|
||||
else if (reg == 0x0)
|
||||
return apic << 24;
|
||||
|
||||
return 0xfd;
|
||||
}
|
||||
|
||||
void __init xen_init_apic(void)
|
||||
{
|
||||
x86_io_apic_ops.read = xen_io_apic_read;
|
||||
}
|
|
@ -1362,6 +1362,8 @@ asmlinkage void __init xen_start_kernel(void)
|
|||
xen_start_info->console.domU.mfn = 0;
|
||||
xen_start_info->console.domU.evtchn = 0;
|
||||
|
||||
xen_init_apic();
|
||||
|
||||
/* Make sure ACS will be enabled */
|
||||
pci_request_acs();
|
||||
}
|
||||
|
|
|
@ -92,11 +92,15 @@ struct dom0_vga_console_info;
|
|||
|
||||
#ifdef CONFIG_XEN_DOM0
|
||||
void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size);
|
||||
void __init xen_init_apic(void);
|
||||
#else
|
||||
static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,
|
||||
size_t size)
|
||||
{
|
||||
}
|
||||
static inline void __init xen_init_apic(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Declare an asm function, along with symbols needed to make it
|
||||
|
|
Loading…
Reference in a new issue