diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2012-04-24 10:44:20 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2012-04-24 10:44:20 +0000 |
commit | ac112633312881b3810a24f471e79fc717e61c98 (patch) | |
tree | b26d6add2d2127312b90c36551a7ce76435cad60 /freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch | |
parent | b7168715e4811209d7d0f161543e07bfc34efc79 (diff) | |
download | linux-libre-raptor-ac112633312881b3810a24f471e79fc717e61c98.tar.gz linux-libre-raptor-ac112633312881b3810a24f471e79fc717e61c98.zip |
tag 3.3.2-5.fc16.gnu
Diffstat (limited to 'freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch')
-rw-r--r-- | freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch b/freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch new file mode 100644 index 000000000..0963ecb25 --- /dev/null +++ b/freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch @@ -0,0 +1,85 @@ +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> +Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> +--- + arch/x86/xen/Makefile | 2 +- + arch/x86/xen/apic.c | 17 +++++++++++++++++ + arch/x86/xen/enlighten.c | 2 ++ + arch/x86/xen/xen-ops.h | 4 ++++ + 4 files changed, 24 insertions(+), 1 deletions(-) + create mode 100644 arch/x86/xen/apic.c + +diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile +index add2c2d..96ab2c0 100644 +--- a/arch/x86/xen/Makefile ++++ b/arch/x86/xen/Makefile +@@ -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 +diff --git a/arch/x86/xen/apic.c b/arch/x86/xen/apic.c +new file mode 100644 +index 0000000..71ed91c +--- /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 0xff; ++} ++ ++void __init xen_init_apic(void) ++{ ++ x86_ioapic.read = xen_io_apic_read; ++} +diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c +index 0732326..93a03195 100644 +--- a/arch/x86/xen/enlighten.c ++++ b/arch/x86/xen/enlighten.c +@@ -1377,6 +1377,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(); + +diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h +index b095739..45c0c06 100644 +--- a/arch/x86/xen/xen-ops.h ++++ b/arch/x86/xen/xen-ops.h +@@ -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 +-- +1.7.7.5 + |