Module: xenomai-2.5 Branch: master Commit: 003e51d5437076132ef6405f8d36ba3942a63bb9 URL: http://git.xenomai.org/?p=xenomai-2.5.git;a=commit;h=003e51d5437076132ef6405f8d36ba3942a63bb9
Author: Philippe Gerum <[email protected]> Date: Wed Oct 6 08:47:23 2010 +0200 powerpc: upgrade I-pipe support to 2.6.35.7-powerpc-2.11-02 --- ... => adeos-ipipe-2.6.35.7-powerpc-2.11-02.patch} | 52 ++++--------------- 1 files changed, 11 insertions(+), 41 deletions(-) diff --git a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.35.7-powerpc-2.11-01.patch b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.35.7-powerpc-2.11-02.patch similarity index 99% rename from ksrc/arch/powerpc/patches/adeos-ipipe-2.6.35.7-powerpc-2.11-01.patch rename to ksrc/arch/powerpc/patches/adeos-ipipe-2.6.35.7-powerpc-2.11-02.patch index 698eb33..60e9a5f 100644 --- a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.35.7-powerpc-2.11-01.patch +++ b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.35.7-powerpc-2.11-02.patch @@ -265,7 +265,7 @@ index bd100fc..8fa1901 100644 * or should we not care like we do now ? --BenH. diff --git a/arch/powerpc/include/asm/ipipe.h b/arch/powerpc/include/asm/ipipe.h new file mode 100644 -index 0000000..776b916 +index 0000000..2e7f178 --- /dev/null +++ b/arch/powerpc/include/asm/ipipe.h @@ -0,0 +1,277 @@ @@ -316,10 +316,10 @@ index 0000000..776b916 +#include <asm/paca.h> +#endif + -+#define IPIPE_ARCH_STRING "2.11-01" ++#define IPIPE_ARCH_STRING "2.11-02" +#define IPIPE_MAJOR_NUMBER 2 +#define IPIPE_MINOR_NUMBER 11 -+#define IPIPE_PATCH_NUMBER 1 ++#define IPIPE_PATCH_NUMBER 2 + +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH + @@ -548,10 +548,10 @@ index 0000000..776b916 +#endif /* !__ASM_POWERPC_IPIPE_H */ diff --git a/arch/powerpc/include/asm/ipipe_base.h b/arch/powerpc/include/asm/ipipe_base.h new file mode 100644 -index 0000000..eb3867a +index 0000000..145d2cd --- /dev/null +++ b/arch/powerpc/include/asm/ipipe_base.h -@@ -0,0 +1,157 @@ +@@ -0,0 +1,161 @@ +/* -*- linux-c -*- + * include/asm-powerpc/ipipe_base.h + * @@ -623,6 +623,10 @@ index 0000000..eb3867a +#define IPIPE_MSG_IPI_OFFSET (IPIPE_CRITICAL_IPI) + +#define ipipe_processor_id() raw_smp_processor_id() ++ ++#define ipipe_ipi_p(ipi) \ ++ ((ipi) >= IPIPE_SERVICE_IPI0 && (ipi) <= IPIPE_SERVICE_IPI4) ++ +#else /* !CONFIG_SMP */ +#define ipipe_processor_id() 0 +#endif /* CONFIG_SMP */ @@ -2284,10 +2288,10 @@ index 5328709..8c3a2b7 100644 sync diff --git a/arch/powerpc/kernel/ipipe.c b/arch/powerpc/kernel/ipipe.c new file mode 100644 -index 0000000..89c9726 +index 0000000..825dc26 --- /dev/null +++ b/arch/powerpc/kernel/ipipe.c -@@ -0,0 +1,794 @@ +@@ -0,0 +1,760 @@ +/* -*- linux-c -*- + * linux/arch/powerpc/kernel/ipipe.c + * @@ -2350,16 +2354,6 @@ index 0000000..89c9726 + +#ifdef CONFIG_SMP + -+static cpumask_t __ipipe_cpu_sync_map; -+ -+static cpumask_t __ipipe_cpu_lock_map; -+ -+static IPIPE_DEFINE_SPINLOCK(__ipipe_cpu_barrier); -+ -+static atomic_t __ipipe_critical_count = ATOMIC_INIT(0); -+ -+static void (*__ipipe_cpu_sync) (void); -+ +static DEFINE_PER_CPU(struct ipipe_ipi_struct, ipipe_ipi_message); + +unsigned int __ipipe_ipi_irq = NR_IRQS + 1; /* dummy value */ @@ -2368,30 +2362,6 @@ index 0000000..89c9726 +cpumask_t __ipipe_dbrk_pending; /* pending debugger break IPIs */ +#endif + -+/* Always called with hw interrupts off. */ -+ -+void __ipipe_do_critical_sync(unsigned irq, void *cookie) -+{ -+ cpu_set(ipipe_processor_id(), __ipipe_cpu_sync_map); -+ -+ /* -+ * Now we are in sync with the lock requestor running on another -+ * CPU. Enter a spinning wait until he releases the global -+ * lock. -+ */ -+ spin_lock(&__ipipe_cpu_barrier); -+ -+ /* Got it. Now get out. */ -+ -+ if (__ipipe_cpu_sync) -+ /* Call the sync routine if any. */ -+ __ipipe_cpu_sync(); -+ -+ spin_unlock(&__ipipe_cpu_barrier); -+ -+ cpu_clear(ipipe_processor_id(), __ipipe_cpu_sync_map); -+} -+ +void __ipipe_hook_critical_ipi(struct ipipe_domain *ipd) +{ + ipd->irqs[IPIPE_CRITICAL_IPI].acknowledge = NULL; _______________________________________________ Xenomai-git mailing list [email protected] https://mail.gna.org/listinfo/xenomai-git
