summaryrefslogtreecommitdiffstats
path: root/freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch
diff options
context:
space:
mode:
authorAlexandre Oliva <lxoliva@fsfla.org>2012-04-24 10:44:20 +0000
committerAlexandre Oliva <lxoliva@fsfla.org>2012-04-24 10:44:20 +0000
commitac112633312881b3810a24f471e79fc717e61c98 (patch)
treeb26d6add2d2127312b90c36551a7ce76435cad60 /freed-ora/tags/f16/3.3.2-5.fc16.gnu/xen-x86-Implement-x86_apic_ops.patch
parentb7168715e4811209d7d0f161543e07bfc34efc79 (diff)
downloadlinux-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.patch85
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
+
OpenPOWER on IntegriCloud