[Xenomai-git] Philippe Gerum : x86: update fpu state accessor for 2.6.35+
Module: xenomai-rpm Branch: for-upstream Commit: 1fc82f8e0399f1ca9c69099426a9808e5fcfc69d URL: http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=1fc82f8e0399f1ca9c69099426a9808e5fcfc69d Author: Philippe Gerum r...@xenomai.org Date: Wed May 26 12:12:45 2010 +0200 x86: update fpu state accessor for 2.6.35+ --- include/asm-x86/wrappers_32.h |5 - include/asm-x86/wrappers_64.h |5 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/asm-x86/wrappers_32.h b/include/asm-x86/wrappers_32.h index f738dc4..5f37766 100644 --- a/include/asm-x86/wrappers_32.h +++ b/include/asm-x86/wrappers_32.h @@ -219,9 +219,12 @@ typedef irq_handler_t rthal_irq_host_handler_t; #if LINUX_VERSION_CODE = KERNEL_VERSION(2,6,25) typedef union i387_union x86_fpustate; #define x86_fpustate_ptr(t) ((t)-i387) -#else +#elif LINUX_VERSION_CODE = KERNEL_VERSION(2,6,34) typedef union thread_xstate x86_fpustate; #define x86_fpustate_ptr(t) ((t)-xstate) +#else /* 2.6.35 and above */ +typedef union thread_xstate x86_fpustate; +#define x86_fpustate_ptr(t) ((t)-fpu.state) #endif #endif /* _XENO_ASM_X86_WRAPPERS_32_H */ diff --git a/include/asm-x86/wrappers_64.h b/include/asm-x86/wrappers_64.h index 346cf71..a61f6ba 100644 --- a/include/asm-x86/wrappers_64.h +++ b/include/asm-x86/wrappers_64.h @@ -70,9 +70,12 @@ typedef irq_handler_t rthal_irq_host_handler_t; #if LINUX_VERSION_CODE = KERNEL_VERSION(2,6,25) typedef union i387_union x86_fpustate; #define x86_fpustate_ptr(t) ((t)-i387) -#else +#elif LINUX_VERSION_CODE = KERNEL_VERSION(2,6,34) typedef union thread_xstate x86_fpustate; #define x86_fpustate_ptr(t) ((t)-xstate) +#else /* 2.6.35 and above */ +typedef union thread_xstate x86_fpustate; +#define x86_fpustate_ptr(t) ((t)-fpu.state) #endif #endif /* _XENO_ASM_X86_WRAPPERS_64_H */ ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : x86: upgrade I-pipe support to 2.6.34-x86-2.6-04
Module: xenomai-rpm Branch: for-upstream Commit: 66f9d24ad1ffa476c91925d952190ca97ac1158a URL: http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=66f9d24ad1ffa476c91925d952190ca97ac1158a Author: Philippe Gerum r...@xenomai.org Date: Wed May 26 12:14:03 2010 +0200 x86: upgrade I-pipe support to 2.6.34-x86-2.6-04 --- ...3.patch = adeos-ipipe-2.6.34-x86-2.6-04.patch} | 175 +--- 1 files changed, 81 insertions(+), 94 deletions(-) diff --git a/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-rc5-x86-2.6-03.patch b/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-x86-2.6-04.patch similarity index 98% rename from ksrc/arch/x86/patches/adeos-ipipe-2.6.34-rc5-x86-2.6-03.patch rename to ksrc/arch/x86/patches/adeos-ipipe-2.6.34-x86-2.6-04.patch index c5c34af..01a029b 100644 --- a/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-rc5-x86-2.6-03.patch +++ b/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-x86-2.6-04.patch @@ -168,7 +168,7 @@ index 0b72282..6574056 100644 /* diff --git a/arch/x86/include/asm/ipipe.h b/arch/x86/include/asm/ipipe.h new file mode 100644 -index 000..37ed040 +index 000..4d711dd --- /dev/null +++ b/arch/x86/include/asm/ipipe.h @@ -0,0 +1,156 @@ @@ -199,10 +199,10 @@ index 000..37ed040 +#ifdef CONFIG_IPIPE + +#ifndef IPIPE_ARCH_STRING -+#define IPIPE_ARCH_STRING 2.6-03 ++#define IPIPE_ARCH_STRING 2.6-04 +#define IPIPE_MAJOR_NUMBER2 +#define IPIPE_MINOR_NUMBER6 -+#define IPIPE_PATCH_NUMBER3 ++#define IPIPE_PATCH_NUMBER4 +#endif + +DECLARE_PER_CPU(struct pt_regs, __ipipe_tick_regs); @@ -1358,7 +1358,7 @@ index 09d3b17..0820b62 100644 static void flat_send_IPI_mask(const struct cpumask *cpumask, int vector) diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c -index 127b871..d77ffa8 100644 +index eb2789c..4069f88 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -74,8 +74,8 @@ @@ -1414,7 +1414,7 @@ index 127b871..d77ffa8 100644 raw_spin_unlock_irqrestore(ioapic_lock, flags); return was_pending; -@@ -2553,11 +2560,13 @@ static inline void irq_complete_move(struct irq_desc **descp) {} +@@ -2556,11 +2563,13 @@ static inline void irq_complete_move(struct irq_desc **descp) {} static void ack_apic_edge(unsigned int irq) { @@ -1429,7 +1429,7 @@ index 127b871..d77ffa8 100644 } atomic_t irq_mis_count; -@@ -2601,6 +2610,8 @@ static void __eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg) +@@ -2604,6 +2613,8 @@ static void __eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg) } } @@ -1438,7 +1438,7 @@ index 127b871..d77ffa8 100644 static void eoi_ioapic_irq(struct irq_desc *desc) { struct irq_cfg *cfg; -@@ -2615,12 +2626,44 @@ static void eoi_ioapic_irq(struct irq_desc *desc) +@@ -2618,12 +2629,44 @@ static void eoi_ioapic_irq(struct irq_desc *desc) raw_spin_unlock_irqrestore(ioapic_lock, flags); } @@ -1483,7 +1483,7 @@ index 127b871..d77ffa8 100644 int do_unmask_irq = 0; irq_complete_move(desc); -@@ -2720,19 +2763,40 @@ static void ack_apic_level(unsigned int irq) +@@ -2723,19 +2766,40 @@ static void ack_apic_level(unsigned int irq) move_masked_irq(irq); unmask_IO_APIC_irq_desc(desc); } @@ -1526,7 +1526,7 @@ index 127b871..d77ffa8 100644 eoi_ioapic_irq(desc); } #endif /* CONFIG_INTR_REMAP */ -@@ -2746,6 +2810,9 @@ static struct irq_chip ioapic_chip __read_mostly = { +@@ -2749,6 +2813,9 @@ static struct irq_chip ioapic_chip __read_mostly = { .eoi= ack_apic_level, #ifdef CONFIG_SMP .set_affinity = set_ioapic_affinity_irq, @@ -1536,7 +1536,7 @@ index 127b871..d77ffa8 100644 #endif .retrigger = ioapic_retrigger_irq, }; -@@ -2760,6 +2827,9 @@ static struct irq_chip ir_ioapic_chip __read_mostly = { +@@ -2763,6 +2830,9 @@ static struct irq_chip ir_ioapic_chip __read_mostly = { .eoi= ir_ack_apic_level, #ifdef CONFIG_SMP .set_affinity = set_ir_ioapic_affinity_irq, @@ -1546,7 +1546,7 @@ index 127b871..d77ffa8 100644 #endif #endif .retrigger = ioapic_retrigger_irq, -@@ -2805,23 +2875,29 @@ static inline void init_IO_APIC_traps(void) +@@ -2808,23 +2878,29 @@ static inline void init_IO_APIC_traps(void) static void mask_lapic_irq(unsigned int irq) { @@ -1579,7 +1579,7 @@ index 127b871..d77ffa8 100644 } static struct irq_chip lapic_chip __read_mostly = { -@@ -2829,6 +2905,9 @@ static struct irq_chip lapic_chip __read_mostly = { +@@ -2832,6 +2908,9 @@ static struct irq_chip lapic_chip __read_mostly = { .mask = mask_lapic_irq, .unmask = unmask_lapic_irq, .ack= ack_lapic_irq, @@ -1589,7 +1589,7 @@ index 127b871..d77ffa8 100644 }; static void lapic_register_intr(int irq, struct irq_desc *desc) -@@ -3076,6 +3155,10 @@ static inline void __init check_timer(void) +@@ -3079,6 +3158,10
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 2.6.34-powerpc-2.6-04
Module: xenomai-rpm Branch: for-upstream Commit: 170ae6e0d10b8709a361b6947fe5170764bfe89f URL: http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=170ae6e0d10b8709a361b6947fe5170764bfe89f Author: Philippe Gerum r...@xenomai.org Date: Wed May 26 18:54:53 2010 +0200 powerpc: upgrade I-pipe support to 2.6.34-powerpc-2.6-04 --- ...tch = adeos-ipipe-2.6.34-powerpc-2.9-01.patch} | 218 +++- 1 files changed, 125 insertions(+), 93 deletions(-) diff --git a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.34-rc5-powerpc-2.9-01.patch b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.34-powerpc-2.9-01.patch similarity index 98% rename from ksrc/arch/powerpc/patches/adeos-ipipe-2.6.34-rc5-powerpc-2.9-01.patch rename to ksrc/arch/powerpc/patches/adeos-ipipe-2.6.34-powerpc-2.9-01.patch index 3658c33..45bd252 100644 --- a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.34-rc5-powerpc-2.9-01.patch +++ b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.34-powerpc-2.9-01.patch @@ -51,6 +51,16 @@ index 2e19500..64449b7 100644 config HIGHMEM bool High memory support depends on PPC32 +diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile +index 1a54a3b..21788aa 100644 +--- a/arch/powerpc/Makefile b/arch/powerpc/Makefile +@@ -250,3 +250,5 @@ checkbin: + + CLEAN_FILES += $(TOUT) + ++ ++drivers-$(CONFIG_XENOMAI) += arch/powerpc/xenomai/ diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index bb2465b..3e33b21 100644 --- a/arch/powerpc/boot/Makefile @@ -237,7 +247,7 @@ index dde1296..8865751 100644 stw r5, 20(r1); \ stw r6, 24(r1); \ diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h -index 9f4c9d4..ce168bf 100644 +index bd100fc..8fa1901 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h @@ -13,6 +13,10 @@ @@ -1233,7 +1243,7 @@ index 8773263..aafe4c0 100644 obj-$(CONFIG_PPC_OF) += of_device.o of_platform.o prom_parse.o obj-$(CONFIG_PPC_CLOCK) += clock.o diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c -index 957ceb7..5e75c5b 100644 +index c09138d..d725dd6 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c @@ -131,8 +131,12 @@ int main(void) @@ -1246,10 +1256,10 @@ index 957ceb7..5e75c5b 100644 +#elif CONFIG_IPIPE + DEFINE(PACAROOTPCPU, offsetof(struct paca_struct, root_percpu)); +#endif - DEFINE(PACAPERFPEND, offsetof(struct paca_struct, perf_event_pending)); DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id)); #ifdef CONFIG_PPC_MM_SLICES -@@ -300,7 +304,9 @@ int main(void) + DEFINE(PACALOWSLICESPSIZE, offsetof(struct paca_struct, +@@ -299,7 +303,9 @@ int main(void) DEFINE(_DEAR, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, dar)); DEFINE(_ESR, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, dsisr)); #else /* CONFIG_PPC64 */ @@ -1409,7 +1419,7 @@ index 1175a85..d559ae1 100644 * PROM code for specific machines follows. Put it * here so it's easy to add arch-specific sections later. diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S -index 07109d8..67a3674 100644 +index 42e9d90..22595e7 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S @@ -33,6 +33,11 @@ @@ -1577,28 +1587,12 @@ index 07109d8..67a3674 100644 BEGIN_FW_FTR_SECTION ld r5,SOFTE(r1) FW_FTR_SECTION_ELSE -@@ -564,12 +654,38 @@ ALT_FW_FTR_SECTION_END_IFCLR(FW_FEATURE_ISERIES) - bl .perf_event_do_pending - 27: - #endif /* CONFIG_PERF_EVENTS */ -- - /* extract EE bit and use it to restore paca-hard_enabled */ - ld r3,_MSR(r1) +@@ -561,6 +651,23 @@ ALT_FW_FTR_SECTION_END_IFCLR(FW_FEATURE_ISERIES) rldicl r4,r3,49,63 /* r0 = (r3 15) 1 */ stb r4,PACAHARDIRQEN(r13) +#else /* !CONFIG_SOFTDISABLE */ +#ifdef CONFIG_IPIPE -+#ifdef CONFIG_PERF_EVENTS -+ /* check paca-perf_event_pending if we're enabling ints */ -+ ld r5,_MSR(r1) -+ rldicl r5,r5,49,63 /* r0 = (r3 15) 1 */ -+ lbz r3,PACAPERFPEND(r13) -+ and.r3,r3,r5 -+ beq 27f -+ bl .perf_event_do_pending -+27: -+#endif /* CONFIG_PERF_EVENTS */ +#ifdef CONFIG_IPIPE_TRACE_IRQSOFF + ld r3,_MSR(r1) + rldicl r3,r3,49,63 /* r0 = (r3 15) 1 */ @@ -1617,7 +1611,7 @@ index 07109d8..67a3674 100644 #ifdef CONFIG_PPC_BOOK3E b .exception_return_book3e #else -@@ -659,6 +775,7 @@ do_work: +@@ -650,6 +757,7 @@ do_work: crandc eq,cr1*4+eq,eq bne restore @@ -1625,7 +1619,7 @@ index 07109d8..67a3674 100644 /* Here we are preempting the current task. * * Ensure interrupts are soft-disabled. We also properly mark -@@ -669,9 +786,14 @@ do_work: +@@ -660,9 +768,14 @@ do_work: stb
[Xenomai-git] Philippe Gerum : x86: upgrade I-pipe support to 2.6.34-x86-2.6-04
Module: xenomai-rpm Branch: for-upstream Commit: 2465f3dea7ff399bb68d46f9d4e6c796fabaa72f URL: http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=2465f3dea7ff399bb68d46f9d4e6c796fabaa72f Author: Philippe Gerum r...@xenomai.org Date: Wed May 26 18:54:15 2010 +0200 x86: upgrade I-pipe support to 2.6.34-x86-2.6-04 --- ...3.patch = adeos-ipipe-2.6.34-x86-2.6-04.patch} | 175 +--- 1 files changed, 81 insertions(+), 94 deletions(-) diff --git a/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-rc5-x86-2.6-03.patch b/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-x86-2.6-04.patch similarity index 98% rename from ksrc/arch/x86/patches/adeos-ipipe-2.6.34-rc5-x86-2.6-03.patch rename to ksrc/arch/x86/patches/adeos-ipipe-2.6.34-x86-2.6-04.patch index c5c34af..01a029b 100644 --- a/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-rc5-x86-2.6-03.patch +++ b/ksrc/arch/x86/patches/adeos-ipipe-2.6.34-x86-2.6-04.patch @@ -168,7 +168,7 @@ index 0b72282..6574056 100644 /* diff --git a/arch/x86/include/asm/ipipe.h b/arch/x86/include/asm/ipipe.h new file mode 100644 -index 000..37ed040 +index 000..4d711dd --- /dev/null +++ b/arch/x86/include/asm/ipipe.h @@ -0,0 +1,156 @@ @@ -199,10 +199,10 @@ index 000..37ed040 +#ifdef CONFIG_IPIPE + +#ifndef IPIPE_ARCH_STRING -+#define IPIPE_ARCH_STRING 2.6-03 ++#define IPIPE_ARCH_STRING 2.6-04 +#define IPIPE_MAJOR_NUMBER2 +#define IPIPE_MINOR_NUMBER6 -+#define IPIPE_PATCH_NUMBER3 ++#define IPIPE_PATCH_NUMBER4 +#endif + +DECLARE_PER_CPU(struct pt_regs, __ipipe_tick_regs); @@ -1358,7 +1358,7 @@ index 09d3b17..0820b62 100644 static void flat_send_IPI_mask(const struct cpumask *cpumask, int vector) diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c -index 127b871..d77ffa8 100644 +index eb2789c..4069f88 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -74,8 +74,8 @@ @@ -1414,7 +1414,7 @@ index 127b871..d77ffa8 100644 raw_spin_unlock_irqrestore(ioapic_lock, flags); return was_pending; -@@ -2553,11 +2560,13 @@ static inline void irq_complete_move(struct irq_desc **descp) {} +@@ -2556,11 +2563,13 @@ static inline void irq_complete_move(struct irq_desc **descp) {} static void ack_apic_edge(unsigned int irq) { @@ -1429,7 +1429,7 @@ index 127b871..d77ffa8 100644 } atomic_t irq_mis_count; -@@ -2601,6 +2610,8 @@ static void __eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg) +@@ -2604,6 +2613,8 @@ static void __eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg) } } @@ -1438,7 +1438,7 @@ index 127b871..d77ffa8 100644 static void eoi_ioapic_irq(struct irq_desc *desc) { struct irq_cfg *cfg; -@@ -2615,12 +2626,44 @@ static void eoi_ioapic_irq(struct irq_desc *desc) +@@ -2618,12 +2629,44 @@ static void eoi_ioapic_irq(struct irq_desc *desc) raw_spin_unlock_irqrestore(ioapic_lock, flags); } @@ -1483,7 +1483,7 @@ index 127b871..d77ffa8 100644 int do_unmask_irq = 0; irq_complete_move(desc); -@@ -2720,19 +2763,40 @@ static void ack_apic_level(unsigned int irq) +@@ -2723,19 +2766,40 @@ static void ack_apic_level(unsigned int irq) move_masked_irq(irq); unmask_IO_APIC_irq_desc(desc); } @@ -1526,7 +1526,7 @@ index 127b871..d77ffa8 100644 eoi_ioapic_irq(desc); } #endif /* CONFIG_INTR_REMAP */ -@@ -2746,6 +2810,9 @@ static struct irq_chip ioapic_chip __read_mostly = { +@@ -2749,6 +2813,9 @@ static struct irq_chip ioapic_chip __read_mostly = { .eoi= ack_apic_level, #ifdef CONFIG_SMP .set_affinity = set_ioapic_affinity_irq, @@ -1536,7 +1536,7 @@ index 127b871..d77ffa8 100644 #endif .retrigger = ioapic_retrigger_irq, }; -@@ -2760,6 +2827,9 @@ static struct irq_chip ir_ioapic_chip __read_mostly = { +@@ -2763,6 +2830,9 @@ static struct irq_chip ir_ioapic_chip __read_mostly = { .eoi= ir_ack_apic_level, #ifdef CONFIG_SMP .set_affinity = set_ir_ioapic_affinity_irq, @@ -1546,7 +1546,7 @@ index 127b871..d77ffa8 100644 #endif #endif .retrigger = ioapic_retrigger_irq, -@@ -2805,23 +2875,29 @@ static inline void init_IO_APIC_traps(void) +@@ -2808,23 +2878,29 @@ static inline void init_IO_APIC_traps(void) static void mask_lapic_irq(unsigned int irq) { @@ -1579,7 +1579,7 @@ index 127b871..d77ffa8 100644 } static struct irq_chip lapic_chip __read_mostly = { -@@ -2829,6 +2905,9 @@ static struct irq_chip lapic_chip __read_mostly = { +@@ -2832,6 +2908,9 @@ static struct irq_chip lapic_chip __read_mostly = { .mask = mask_lapic_irq, .unmask = unmask_lapic_irq, .ack= ack_lapic_irq, @@ -1589,7 +1589,7 @@ index 127b871..d77ffa8 100644 }; static void lapic_register_intr(int irq, struct irq_desc *desc) -@@ -3076,6 +3155,10 @@ static inline void __init check_timer(void) +@@ -3079,6 +3158,10