[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 2.6.30.3-powerpc-2.7-06
Module: xenomai-gch Branch: for-2.4 Commit: ea99fd191d83bf92a2288072f7fcbc080070eabf URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=ea99fd191d83bf92a2288072f7fcbc080070eabf Author: Philippe Gerum Date: Sun Dec 20 12:30:13 2009 +0100 powerpc: upgrade I-pipe support to 2.6.30.3-powerpc-2.7-06 --- ...adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-06.patch} | 44 +--- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-04.patch b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-06.patch similarity index 99% rename from ksrc/arch/powerpc/patches/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-04.patch rename to ksrc/arch/powerpc/patches/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-06.patch index a9f1efc..bec5e6d 100644 --- a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-04.patch +++ b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-06.patch @@ -572,7 +572,7 @@ index b7e034b..d769f6d 100644 #define hard_irq_disable()local_irq_disable() diff --git a/arch/powerpc/include/asm/ipipe.h b/arch/powerpc/include/asm/ipipe.h new file mode 100644 -index 000..5fdbbb8 +index 000..71327e4 --- /dev/null +++ b/arch/powerpc/include/asm/ipipe.h @@ -0,0 +1,271 @@ @@ -623,10 +623,10 @@ index 000..5fdbbb8 +#include +#endif + -+#define IPIPE_ARCH_STRING "2.7-04" ++#define IPIPE_ARCH_STRING "2.7-06" +#define IPIPE_MAJOR_NUMBER2 +#define IPIPE_MINOR_NUMBER7 -+#define IPIPE_PATCH_NUMBER4 ++#define IPIPE_PATCH_NUMBER6 + +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH + @@ -2303,7 +2303,7 @@ index 5328709..8c3a2b7 100644 sync diff --git a/arch/powerpc/kernel/ipipe.c b/arch/powerpc/kernel/ipipe.c new file mode 100644 -index 000..304d39b +index 000..6db07d9 --- /dev/null +++ b/arch/powerpc/kernel/ipipe.c @@ -0,0 +1,865 @@ @@ -2472,7 +2472,7 @@ index 000..304d39b + if (cpus_empty(cpumask)) + return CPU_MASK_NONE; /* Error -- bad mask value or non-routable IRQ. */ + -+ cpumask_copy(&oldmask, &irq_to_desc(irq)->affinity); ++ cpumask_copy(&oldmask, irq_to_desc(irq)->affinity); + irq_to_desc(irq)->chip->set_affinity(irq, &cpumask); + + return oldmask; @@ -7173,7 +7173,7 @@ index 000..6257dfa +obj-$(CONFIG_IPIPE_TRACE) += tracer.o diff --git a/kernel/ipipe/core.c b/kernel/ipipe/core.c new file mode 100644 -index 000..ffaceaa +index 000..aa2e5a0 --- /dev/null +++ b/kernel/ipipe/core.c @@ -0,0 +1,1794 @@ @@ -7491,7 +7491,7 @@ index 000..ffaceaa + +#ifdef CONFIG_IPIPE_DEBUG_INTERNAL + /* This helps catching bad usage from assembly call sites. */ -+ BUG_ON(!__ipipe_root_domain_p); ++ BUG_ON(!__ipipe_root_domain_p && !oops_in_progress); +#endif + + p = ipipe_root_cpudom_ptr(); @@ -7507,7 +7507,7 @@ index 000..ffaceaa +void __ipipe_restore_root(unsigned long x) +{ +#ifdef CONFIG_IPIPE_DEBUG_INTERNAL -+ BUG_ON(!ipipe_root_domain_p); ++ BUG_ON(!ipipe_root_domain_p && !oops_in_progress); +#endif + + if (x) @@ -8855,7 +8855,7 @@ index 000..ffaceaa + + ipipe_context_check_off(); + ipipe_trace_panic_freeze(); -+ ipipe_set_printk_sync(__ipipe_current_domain); ++ oops_in_progress = 1; + + if (this_domain->priority > border_domain->priority) + printk(KERN_ERR "I-pipe: Detected illicit call from domain " @@ -11214,7 +11214,7 @@ index cad..0a3eac6 100644 * This function runs timers and the timer-tq in bottom half context. */ diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c -index f1ed080..aa45f71 100644 +index f1ed080..28fbd5b 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -28,6 +28,7 @@ @@ -11249,30 +11249,26 @@ index f1ed080..aa45f71 100644 ret = ftrace_arch_code_modify_post_process(); FTRACE_WARN_ON(ret); -@@ -2189,9 +2199,9 @@ static int ftrace_convert_nops(struct module *mod, - } +@@ -2190,7 +2200,9 @@ static int ftrace_convert_nops(struct module *mod, /* disable interrupts to prevent kstop machine */ -- local_irq_save(flags); -+ local_irq_save_hw_notrace(flags); + local_irq_save(flags); ++ local_irq_disable_hw(); ftrace_update_code(mod); -- local_irq_restore(flags); -+ local_irq_restore_hw_notrace(flags); ++ local_irq_enable_hw(); + local_irq_restore(flags); mutex_unlock(&ftrace_lock); - return 0; -@@ -2216,9 +2226,9 @@ void __init ftrace_init(void) - /* Keep the ftrace pointer to the stub */ +@@ -2217,7 +2229,9 @@ void __init ftrace_init(void) addr = (unsigned long)ftrace_stub; -- local_irq_save(flags); -+ local_irq_save_hw_notrace(flags); + local_irq_save(flags); ++ local_irq_disable_hw(); ftrace_dyn_arch_init(&addr); -- local_irq_restore(flags); -+ local_irq_restore_hw_not
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 3.5.7-4
Module: xenomai-2.6 Branch: master Commit: 8f09b030a7841c01c4b4ddf43665facc027f4f6c URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=8f09b030a7841c01c4b4ddf43665facc027f4f6c Author: Philippe Gerum Date: Sun Jun 2 15:49:02 2013 +0200 powerpc: upgrade I-pipe support to 3.5.7-4 --- ...pc-3.patch => ipipe-core-3.5.7-powerpc-4.patch} | 1502 1 files changed, 1246 insertions(+), 256 deletions(-) diff --git a/ksrc/arch/powerpc/patches/ipipe-core-3.5.7-powerpc-3.patch b/ksrc/arch/powerpc/patches/ipipe-core-3.5.7-powerpc-4.patch similarity index 92% rename from ksrc/arch/powerpc/patches/ipipe-core-3.5.7-powerpc-3.patch rename to ksrc/arch/powerpc/patches/ipipe-core-3.5.7-powerpc-4.patch index 713ec3d..a297723 100644 --- a/ksrc/arch/powerpc/patches/ipipe-core-3.5.7-powerpc-3.patch +++ b/ksrc/arch/powerpc/patches/ipipe-core-3.5.7-powerpc-4.patch @@ -262,10 +262,10 @@ index 0554ab0..ec312e0 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 000..4182870 +index 000..56b7a7d --- /dev/null +++ b/arch/powerpc/include/asm/ipipe.h -@@ -0,0 +1,185 @@ +@@ -0,0 +1,164 @@ +/* + * include/asm-powerpc/ipipe.h + * @@ -307,7 +307,7 @@ index 000..4182870 +#include +#include + -+#define IPIPE_CORE_RELEASE3 ++#define IPIPE_CORE_RELEASE4 + +struct ipipe_domain; + @@ -318,20 +318,6 @@ index 000..4182870 +extern cpumask_t __ipipe_dbrk_pending; +#endif + -+#define ipipe_mm_switch_protect(flags) \ -+ do {\ -+ __mmactivate_head();\ -+ barrier(); \ -+ (void)(flags); \ -+ } while(0) -+ -+#define ipipe_mm_switch_unprotect(flags) \ -+ do {\ -+ barrier(); \ -+ __mmactivate_tail();\ -+ (void)(flags); \ -+ } while(0) -+ +extern unsigned long __ipipe_hrtimer_freq; + +#define __ipipe_hrclock_freq ppc_tb_freq @@ -441,13 +427,6 @@ index 000..4182870 + +static inline void ipipe_notify_root_preemption(void) { } + -+#else /* !CONFIG_IPIPE */ -+ -+#include -+ -+#define ipipe_mm_switch_protect(flags)do { (void)(flags); } while(0) -+#define ipipe_mm_switch_unprotect(flags) do { (void)(flags); } while(0) -+ +#endif /* !CONFIG_IPIPE */ + +#endif /* !__ASM_POWERPC_IPIPE_H */ @@ -851,186 +830,135 @@ index 000..2bc8217 + +#endif /* !_ASM_POWERPC_IPIPE_HWIRQ_H */ diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h -index a73668a..c4254a3 100644 +index a73668a..c7f7f6c 100644 --- a/arch/powerpc/include/asm/mmu_context.h +++ b/arch/powerpc/include/asm/mmu_context.h -@@ -36,15 +36,99 @@ extern void switch_cop(struct mm_struct *next); +@@ -36,15 +36,39 @@ extern void switch_cop(struct mm_struct *next); extern int use_cop(unsigned long acop, struct mm_struct *mm); extern void drop_cop(unsigned long acop, struct mm_struct *mm); -+#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH -+ -+#if defined(CONFIG_PPC_MMU_NOHASH) && defined(CONFIG_SMP) -+#define __IPIPE_ATOMIC_MM_UPDATE 1 -+#endif ++#if !defined(CONFIG_IPIPE) || defined(CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH) + -+static inline void __mmactivate_head(void) -+{ -+#ifdef __IPIPE_ATOMIC_MM_UPDATE -+ hard_local_irq_disable(); -+#else -+ preempt_disable(); -+#endif -+ __this_cpu_write(ipipe_percpu.active_mm, NULL); -+} ++#define ipipe_mm_switch_protect(flags)\ ++ do { (void)(flags); } while (0) + -+static inline void __mmactivate_tail(void) -+{ -+#ifdef __IPIPE_ATOMIC_MM_UPDATE -+ hard_local_irq_enable(); -+#else -+ preempt_enable(); -+#endif -+} ++#define ipipe_mm_switch_unprotect(flags) \ ++ do { (void)(flags); } while (0) + -+#else /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ ++#else /* CONFIG_IPIPE && !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ + -+static inline void __mmactivate_head(void) -+{ -+#ifdef CONFIG_IPIPE_DEBUG_INTERNAL -+ WARN_ON_ONCE(hard_irqs_disabled()); -+#endif -+ hard_cond_local_irq_disable(); -+} ++#define ipipe_mm_switch_protect(flags)\ ++ do {\ ++ (flags) = hard_cond_local_irq_save(); \ ++ barrier(); \ ++ } while (0) \ + -+static inline void __mmactivate_tail(void) -+{ -+ hard_cond_local_irq_enable(); -+} ++#define ipipe_mm_switch_unprotect(flags) \ ++ do {
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 3.8.0-1
Module: xenomai-2.6 Branch: master Commit: f952b048fdf08806da686a33879d7e6af42b9cdb URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=f952b048fdf08806da686a33879d7e6af42b9cdb Author: Philippe Gerum Date: Sat Jun 1 10:11:55 2013 +0200 powerpc: upgrade I-pipe support to 3.8.0-1 --- ...erpc-4.patch => ipipe-core-3.8-powerpc-1.patch} | 5222 +++- 1 files changed, 2953 insertions(+), 2269 deletions(-) Diff: http://git.xenomai.org/?p=xenomai-2.6.git;a=commitdiff;h=f952b048fdf08806da686a33879d7e6af42b9cdb ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support
Module: xenomai-2.6 Branch: master Commit: 5c17a0a5c9ddd6110fb334bb3a330bf2b8420133 URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=5c17a0a5c9ddd6110fb334bb3a330bf2b8420133 Author: Philippe Gerum Date: Tue Jan 22 12:04:23 2013 +0100 powerpc: upgrade I-pipe support --- ...c-2.patch => ipipe-core-3.2.21-powerpc-4.patch} | 127 -- ...pc-2.patch => ipipe-core-3.4.6-powerpc-4.patch} | 187 ++-- ...pc-2.patch => ipipe-core-3.5.7-powerpc-3.patch} | 507 +++- 3 files changed, 502 insertions(+), 319 deletions(-) diff --git a/ksrc/arch/powerpc/patches/ipipe-core-3.2.21-powerpc-2.patch b/ksrc/arch/powerpc/patches/ipipe-core-3.2.21-powerpc-4.patch similarity index 99% rename from ksrc/arch/powerpc/patches/ipipe-core-3.2.21-powerpc-2.patch rename to ksrc/arch/powerpc/patches/ipipe-core-3.2.21-powerpc-4.patch index 3ac7a2d..48c3f73 100644 --- a/ksrc/arch/powerpc/patches/ipipe-core-3.2.21-powerpc-2.patch +++ b/ksrc/arch/powerpc/patches/ipipe-core-3.2.21-powerpc-4.patch @@ -285,7 +285,7 @@ index bb712c9..8885e9b 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 000..62ac2ce +index 000..c935bf8 --- /dev/null +++ b/arch/powerpc/include/asm/ipipe.h @@ -0,0 +1,187 @@ @@ -337,7 +337,7 @@ index 000..62ac2ce +#include +#endif + -+#define IPIPE_CORE_RELEASE2 ++#define IPIPE_CORE_RELEASE4 + +struct ipipe_domain; + @@ -889,7 +889,7 @@ index b0b06d8..cef2379 100644 #ifdef CONFIG_IRQSOFF_TRACER /* diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h -index a73668a..e51b0e2 100644 +index a73668a..5eda09f 100644 --- a/arch/powerpc/include/asm/mmu_context.h +++ b/arch/powerpc/include/asm/mmu_context.h @@ -36,15 +36,112 @@ extern void switch_cop(struct mm_struct *next); @@ -1048,15 +1048,23 @@ index a73668a..e51b0e2 100644 } #define deactivate_mm(tsk,mm) do { } while (0) -@@ -99,7 +209,7 @@ static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next) +@@ -96,11 +206,15 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, + */ + static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next) + { ++#ifndef CONFIG_IPIPE unsigned long flags; local_irq_save(flags); - switch_mm(prev, next, current); ++#endif + __switch_mm(prev, next, current); ++#ifndef CONFIG_IPIPE local_irq_restore(flags); ++#endif } + /* We don't currently use enter_lazy_tlb() for anything */ diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h index e6fae49..7a5f3ce 100644 --- a/arch/powerpc/include/asm/mpic.h @@ -5696,10 +5704,10 @@ index e6bb36a..898a91a 100644 diff --git a/include/linux/ipipe.h b/include/linux/ipipe.h new file mode 100644 -index 000..f282637 +index 000..b8e628e --- /dev/null +++ b/include/linux/ipipe.h -@@ -0,0 +1,399 @@ +@@ -0,0 +1,419 @@ +/* -*- linux-c -*- + * include/linux/ipipe.h + * @@ -5770,6 +5778,7 @@ index 000..f282637 +void __ipipe_reenter_root(void); + +int __ipipe_disable_ondemand_mappings(struct task_struct *p); ++ +int __ipipe_pin_vma(struct mm_struct *mm, struct vm_area_struct *vma); + +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH @@ -6002,31 +6011,50 @@ index 000..f282637 + +static inline void ipipe_enable_irq(unsigned int irq) +{ -+ struct irq_desc *desc = irq_to_desc(irq); -+ struct irq_chip *chip = irq_desc_get_chip(desc); ++ struct irq_desc *desc; ++ struct irq_chip *chip; ++ ++ desc = irq_to_desc(irq); ++ if (desc == NULL) ++ return; ++ ++ chip = irq_desc_get_chip(desc); + -+ if (WARN_ON_ONCE(chip->irq_unmask == NULL)) ++ if (WARN_ON_ONCE(chip->irq_enable == NULL && chip->irq_unmask == NULL)) + return; + -+ chip->irq_unmask(&desc->irq_data); ++ if (chip->irq_enable) ++ chip->irq_enable(&desc->irq_data); ++ else ++ chip->irq_unmask(&desc->irq_data); +} + +static inline void ipipe_disable_irq(unsigned int irq) +{ -+ struct irq_desc *desc = irq_to_desc(irq); -+ struct irq_chip *chip = irq_desc_get_chip(desc); ++ struct irq_desc *desc; ++ struct irq_chip *chip; ++ ++ desc = irq_to_desc(irq); ++ if (desc == NULL) ++ return; ++ ++ chip = irq_desc_get_chip(desc); + -+ if (WARN_ON_ONCE(chip->irq_mask == NULL)) ++ if (WARN_ON_ONCE(chip->irq_disable == NULL && chip->irq_mask == NULL)) + return; + -+ chip->irq_mask(&desc->irq_data); ++ if (chip->irq_disable) ++ chip->irq_disable(&desc->irq_data); ++ else ++ chip->irq_mask(&desc->irq_data); +} + +static inline void ipipe_end_irq(unsigned int irq) +{ + struct irq_desc *desc = irq_to_desc(irq); + -+ desc->ipipe_end(irq, desc); ++
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 3.2.21, 3.4, 3. 5 core release 2
Module: xenomai-2.6 Branch: master Commit: 40b7887d635f9835f80b2f55495fe17f8621 URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=40b7887d635f9835f80b2f55495fe17f8621 Author: Philippe Gerum Date: Wed Dec 26 11:29:20 2012 +0100 powerpc: upgrade I-pipe support to 3.2.21, 3.4, 3.5 core release 2 --- ...c-1.patch => ipipe-core-3.2.21-powerpc-2.patch} | 335 +- ...3-08.patch => ipipe-core-3.4.6-powerpc-2.patch} |11106 ++- ...2-05.patch => ipipe-core-3.5.3-powerpc-2.patch} |12043 +++- 3 files changed, 12885 insertions(+), 10599 deletions(-) Diff: http://git.xenomai.org/?p=xenomai-2.6.git;a=commitdiff;h=40b7887d635f9835f80b2f55495fe17f8621 ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 3.2.21-powerpc-1 ( core series)
Module: xenomai-2.6 Branch: master Commit: 8197ce188749900885d9c5189fc48441296966da URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=8197ce188749900885d9c5189fc48441296966da Author: Philippe Gerum Date: Tue Jul 10 17:06:25 2012 +0200 powerpc: upgrade I-pipe support to 3.2.21-powerpc-1 (core series) The new I-pipe "core" series introduces a significant evolution of the pipeline mechanism, exposing a Xenomai-friendly interface. Patches from these series are supported by Xenomai 2.6.1 onward. --- .../patches/ipipe-core-3.2.21-powerpc-1.patch |13324 1 files changed, 13324 insertions(+), 0 deletions(-) Diff: http://git.xenomai.org/?p=xenomai-2.6.git;a=commitdiff;h=8197ce188749900885d9c5189fc48441296966da ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : powerpc: upgrade I-pipe support to 2.6.36.4-powerpc-2. 12-05, 3.1.10-powerpc-2.13-08
Module: xenomai-2.6 Branch: master Commit: e7c9512d3e3f34562b686dd1d5c3e2c8a7b3b761 URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=e7c9512d3e3f34562b686dd1d5c3e2c8a7b3b761 Author: Philippe Gerum Date: Sat Jul 7 19:01:42 2012 +0200 powerpc: upgrade I-pipe support to 2.6.36.4-powerpc-2.12-05, 3.1.10-powerpc-2.13-08 --- ... => adeos-ipipe-2.6.36.4-powerpc-2.12-05.patch} | 18 +- ...ch => adeos-ipipe-3.1.10-powerpc-2.13-08.patch} | 36 +++- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-04.patch b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-05.patch similarity index 99% rename from ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-04.patch rename to ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-05.patch index 2eebfe7..d82980f 100644 --- a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-04.patch +++ b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-05.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 000..9ddee0b +index 000..e37eaad --- /dev/null +++ b/arch/powerpc/include/asm/ipipe.h @@ -0,0 +1,245 @@ @@ -316,10 +316,10 @@ index 000..9ddee0b +#include +#endif + -+#define IPIPE_ARCH_STRING "2.12-04" ++#define IPIPE_ARCH_STRING "2.12-05" +#define IPIPE_MAJOR_NUMBER2 +#define IPIPE_MINOR_NUMBER12 -+#define IPIPE_PATCH_NUMBER4 ++#define IPIPE_PATCH_NUMBER5 + +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH + @@ -391,8 +391,8 @@ index 000..9ddee0b + +#ifdef CONFIG_PPC64 +#define ipipe_read_tsc(t) (t = mftb()) -+#define ipipe_tsc2ns(t) (((t) * 1000UL) / (__ipipe_cpu_freq / 100UL)) -+#define ipipe_tsc2us(t) ((t) / (__ipipe_cpu_freq / 100UL)) ++#define ipipe_tsc2ns(t) (((t) * 1000UL) / (__ipipe_hrclock_freq / 100UL)) ++#define ipipe_tsc2us(t) ((t) / (__ipipe_hrclock_freq / 100UL)) +#else /* CONFIG_PPC32 */ +#define ipipe_read_tsc(t) \ + ({ \ @@ -409,12 +409,12 @@ index 000..9ddee0b + }) + +#define ipipe_tsc2ns(t) \ -+ unsigned long)(t)) * 1000) / (__ipipe_cpu_freq / 100)) ++ unsigned long)(t)) * 1000) / (__ipipe_hrclock_freq / 100)) + +#define ipipe_tsc2us(t) \ + ({ \ + unsigned long long delta = (t); \ -+ do_div(delta, __ipipe_cpu_freq/100+1); \ ++ do_div(delta, __ipipe_hrclock_freq/100+1); \ + (unsigned long)delta; \ + }) +#endif /* CONFIG_PPC32 */ @@ -1220,7 +1220,7 @@ index cf51966..e7d287c 100644 desc->chip->eoi(irq); } diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h -index ff0005e..a25f0f8 100644 +index ff0005eec..a25f0f8 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h @@ -948,7 +948,7 @@ @@ -7000,7 +7000,7 @@ index bc2994e..5e2da8d 100644 #define write_unlock_irq(lock)_raw_write_unlock_irq(lock) diff --git a/include/linux/rwlock_api_smp.h b/include/linux/rwlock_api_smp.h -index 9c9f049..62c8941 100644 +index 9c9f049..62c894150 100644 --- a/include/linux/rwlock_api_smp.h +++ b/include/linux/rwlock_api_smp.h @@ -141,7 +141,9 @@ static inline int __raw_write_trylock(rwlock_t *lock) diff --git a/ksrc/arch/powerpc/patches/adeos-ipipe-3.1.10-powerpc-2.13-07.patch b/ksrc/arch/powerpc/patches/adeos-ipipe-3.1.10-powerpc-2.13-08.patch similarity index 99% rename from ksrc/arch/powerpc/patches/adeos-ipipe-3.1.10-powerpc-2.13-07.patch rename to ksrc/arch/powerpc/patches/adeos-ipipe-3.1.10-powerpc-2.13-08.patch index 31a667f..ca42fe6 100644 --- a/ksrc/arch/powerpc/patches/adeos-ipipe-3.1.10-powerpc-2.13-07.patch +++ b/ksrc/arch/powerpc/patches/adeos-ipipe-3.1.10-powerpc-2.13-08.patch @@ -1,14 +1,3 @@ -diff --git a/.gitignore b/.gitignore -index 57af07c..455244d 100644 a/.gitignore -+++ b/.gitignore -@@ -82,5 +82,6 @@ GSYMS - GTAGS - - *.orig -+*.rej - *~ - \#*# diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 6926b61..361330a 100644 --- a/arch/powerpc/Kconfig @@ -116,7 +105,7 @@ index 3bf9cca..322343f 100644 #define R_PPC_NONE0 #define R_PPC_ADDR32 1 /* 32bit absolute address */ diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h -index 8057f4f..f163820 100644 +index 8057f4f..1da2463 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-