diff options
author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-03-20 18:53:10 -0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-05-01 14:50:33 -0400 |
commit | 31b3c9d723407b395564d1fff3624cc0083ae520 (patch) | |
tree | 91956c150661328c2f1ff344491000cf06d2f60e /arch/x86/xen/apic.c | |
parent | 4a8e2a3115e7aa4bd2deb4c6483d47c743e0fbb3 (diff) | |
download | linux-31b3c9d723407b395564d1fff3624cc0083ae520.tar.bz2 |
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>
Diffstat (limited to 'arch/x86/xen/apic.c')
-rw-r--r-- | arch/x86/xen/apic.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/x86/xen/apic.c b/arch/x86/xen/apic.c new file mode 100644 index 000000000000..73ade38caa32 --- /dev/null +++ b/arch/x86/xen/apic.c @@ -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; +} |