Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31b3c9d7 authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk
Browse files

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: default avatarSuresh 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: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 4a8e2a31
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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

arch/x86/xen/apic.c

0 → 100644
+17 −0
Original line number Diff line number Diff line
#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;
}
+2 −0
Original line number Diff line number Diff line
@@ -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();
	}
+4 −0
Original line number Diff line number Diff line
@@ -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