Module: xenomai-rpm Branch: for-upstream Commit: 131e4ecbada4de9ea19aea1615e130d439f979c0 URL: http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=131e4ecbada4de9ea19aea1615e130d439f979c0
Author: Philippe Gerum <[email protected]> Date: Sat Apr 30 17:01:20 2011 +0200 powerpc: upgrade I-pipe support to 2.6.36.4-powerpc-2.12-04 --- ... => adeos-ipipe-2.6.36.4-powerpc-2.12-04.patch} | 90 ++++++++++---------- 1 files changed, 45 insertions(+), 45 deletions(-) diff --git a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36-powerpc-2.12-03.patch b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-04.patch similarity index 99% rename from ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36-powerpc-2.12-03.patch rename to ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-04.patch index 9fdbd59..2eebfe7 100644 --- a/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36-powerpc-2.12-03.patch +++ b/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.36.4-powerpc-2.12-04.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..3ff4004 +index 0000000..9ddee0b --- /dev/null +++ b/arch/powerpc/include/asm/ipipe.h @@ -0,0 +1,245 @@ @@ -316,10 +316,10 @@ index 0000000..3ff4004 +#include <asm/paca.h> +#endif + -+#define IPIPE_ARCH_STRING "2.12-03" ++#define IPIPE_ARCH_STRING "2.12-04" +#define IPIPE_MAJOR_NUMBER 2 +#define IPIPE_MINOR_NUMBER 12 -+#define IPIPE_PATCH_NUMBER 3 ++#define IPIPE_PATCH_NUMBER 4 + +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH + @@ -4035,7 +4035,7 @@ index 784a400..8979330 100644 native_lock_hpte(hptep); hpte_v = hptep->v; diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c -index 09dffe6..1637d97 100644 +index 1eb64ba..8c448fc 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c @@ -113,7 +113,7 @@ int mmu_ci_restrictions; @@ -4466,7 +4466,7 @@ index 59d9712..296f823 100644 /** diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c -index cf79b46..97dc2e1 100644 +index 568b503..443da36 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -335,7 +335,7 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group, @@ -5170,10 +5170,10 @@ index 98abf8b..7cb0a86 100644 struct ht_irq_cfg { struct pci_dev *dev; diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c -index 24110f6..e0e0c0c 100644 +index c9e86de..1fb5120 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c -@@ -3067,6 +3067,51 @@ static int serial8250_resume(struct platform_device *dev) +@@ -3068,6 +3068,51 @@ static int serial8250_resume(struct platform_device *dev) return 0; } @@ -5271,10 +5271,10 @@ index c4399e2..1ddd2cd 100644 static struct of_platform_driver mpc52xx_uart_of_driver = { diff --git a/fs/exec.c b/fs/exec.c -index 6d2b6f9..22c7040 100644 +index bda2d50..54e7737 100644 --- a/fs/exec.c +++ b/fs/exec.c -@@ -734,6 +734,7 @@ static int exec_mmap(struct mm_struct *mm) +@@ -764,6 +764,7 @@ static int exec_mmap(struct mm_struct *mm) { struct task_struct *tsk; struct mm_struct * old_mm, *active_mm; @@ -5282,7 +5282,7 @@ index 6d2b6f9..22c7040 100644 /* Notify parent that we're no longer interested in the old VM */ tsk = current; -@@ -757,8 +758,10 @@ static int exec_mmap(struct mm_struct *mm) +@@ -787,8 +788,10 @@ static int exec_mmap(struct mm_struct *mm) task_lock(tsk); active_mm = tsk->active_mm; tsk->mm = mm; @@ -7015,7 +7015,7 @@ index 9c9f049..62c8941 100644 static inline void __raw_read_lock(rwlock_t *lock) { diff --git a/include/linux/sched.h b/include/linux/sched.h -index 1e2a6db..de2bc3c 100644 +index c821609..7b6597f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -61,6 +61,7 @@ struct sched_param { @@ -7431,10 +7431,10 @@ index 0b72d1a..0cf11f6 100644 obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o diff --git a/kernel/exit.c b/kernel/exit.c -index 0312022..26426b2 100644 +index abc46d9..4d06963 100644 --- a/kernel/exit.c +++ b/kernel/exit.c -@@ -969,6 +969,7 @@ NORET_TYPE void do_exit(long code) +@@ -986,6 +986,7 @@ NORET_TYPE void do_exit(long code) acct_process(); trace_sched_process_exit(tsk); @@ -7443,10 +7443,10 @@ index 0312022..26426b2 100644 exit_files(tsk); exit_fs(tsk); diff --git a/kernel/fork.c b/kernel/fork.c -index c445f8c..1e26b45 100644 +index a576b98..b9927d0 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -540,6 +540,7 @@ void mmput(struct mm_struct *mm) +@@ -541,6 +541,7 @@ void mmput(struct mm_struct *mm) exit_aio(mm); ksm_exit(mm); exit_mmap(mm); @@ -7454,7 +7454,7 @@ index c445f8c..1e26b45 100644 set_mm_exe_file(mm, NULL); if (!list_empty(&mm->mmlist)) { spin_lock(&mmlist_lock); -@@ -915,6 +916,7 @@ static void copy_flags(unsigned long clone_flags, struct task_struct *p) +@@ -916,6 +917,7 @@ static void copy_flags(unsigned long clone_flags, struct task_struct *p) new_flags |= PF_FORKNOEXEC; new_flags |= PF_STARTING; p->flags = new_flags; @@ -7462,7 +7462,7 @@ index c445f8c..1e26b45 100644 clear_freeze_flag(p); } -@@ -1287,6 +1289,10 @@ static struct task_struct *copy_process(unsigned long clone_flags, +@@ -1288,6 +1290,10 @@ static struct task_struct *copy_process(unsigned long clone_flags, write_unlock_irq(&tasklist_lock); proc_fork_connector(p); cgroup_post_fork(p); @@ -7473,7 +7473,7 @@ index c445f8c..1e26b45 100644 perf_event_fork(p); return p; -@@ -1689,11 +1695,14 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) +@@ -1690,11 +1696,14 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) } if (new_mm) { @@ -7630,7 +7630,7 @@ index 0000000..6257dfa +obj-$(CONFIG_IPIPE_TRACE) += tracer.o diff --git a/kernel/ipipe/core.c b/kernel/ipipe/core.c new file mode 100644 -index 0000000..5a06d52 +index 0000000..cb07dfe --- /dev/null +++ b/kernel/ipipe/core.c @@ -0,0 +1,2194 @@ @@ -8913,14 +8913,14 @@ index 0000000..5a06d52 + irq_enter(); + ipd->irqs[irq].handler(irq, ipd->irqs[irq].cookie); + irq_exit(); -+ local_irq_disable_hw(); + root_stall_after_handler(); ++ local_irq_disable_hw(); + while (__ipipe_check_root_resched()) + __ipipe_preempt_schedule_irq(); + } else { + __ipipe_do_root_xirq(ipd, irq); -+ local_irq_disable_hw(); + root_stall_after_handler(); ++ local_irq_disable_hw(); + } + + p = ipipe_cpudom_ptr(__ipipe_current_domain); @@ -11566,7 +11566,7 @@ index 4c13b1a..93a1543 100644 do_oops_enter_exit(); } diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c -index 8dc31e0..722bab4 100644 +index 7a931a9..d86e8aa 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -269,6 +269,7 @@ static int create_image(int platform_mode) @@ -11585,7 +11585,7 @@ index 8dc31e0..722bab4 100644 local_irq_enable(); Enable_cpus: -@@ -395,6 +397,7 @@ static int resume_target_kernel(bool platform_mode) +@@ -400,6 +402,7 @@ static int resume_target_kernel(bool platform_mode) goto Enable_cpus; local_irq_disable(); @@ -11593,7 +11593,7 @@ index 8dc31e0..722bab4 100644 error = sysdev_suspend(PMSG_QUIESCE); if (error) -@@ -426,6 +429,7 @@ static int resume_target_kernel(bool platform_mode) +@@ -431,6 +434,7 @@ static int resume_target_kernel(bool platform_mode) sysdev_resume(); Enable_irqs: @@ -11601,7 +11601,7 @@ index 8dc31e0..722bab4 100644 local_irq_enable(); Enable_cpus: -@@ -512,6 +516,7 @@ int hibernation_platform_enter(void) +@@ -514,6 +518,7 @@ int hibernation_platform_enter(void) goto Platform_finish; local_irq_disable(); @@ -11610,7 +11610,7 @@ index 8dc31e0..722bab4 100644 if (!pm_check_wakeup_events()) { error = -EAGAIN; diff --git a/kernel/printk.c b/kernel/printk.c -index 8fe465a..8a2c17b 100644 +index 44a2aa7..b29781a 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -578,6 +578,41 @@ static int have_callable_console(void) @@ -11730,10 +11730,10 @@ index 8fe465a..8a2c17b 100644 /* cpu currently holding logbuf_lock */ static volatile unsigned int printk_cpu = UINT_MAX; diff --git a/kernel/sched.c b/kernel/sched.c -index dc85ceb..e6a3fa3 100644 +index 92c5b60..2d4cae7 100644 --- a/kernel/sched.c +++ b/kernel/sched.c -@@ -2356,7 +2356,8 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, +@@ -2349,7 +2349,8 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, smp_wmb(); rq = task_rq_lock(p, &flags); @@ -11743,7 +11743,7 @@ index dc85ceb..e6a3fa3 100644 goto out; if (p->se.on_rq) -@@ -2829,13 +2830,15 @@ asmlinkage void schedule_tail(struct task_struct *prev) +@@ -2822,13 +2823,15 @@ asmlinkage void schedule_tail(struct task_struct *prev) #endif if (current->set_child_tid) put_user(task_pid_vnr(current), current->set_child_tid); @@ -11760,7 +11760,7 @@ index dc85ceb..e6a3fa3 100644 context_switch(struct rq *rq, struct task_struct *prev, struct task_struct *next) { -@@ -2877,12 +2880,23 @@ context_switch(struct rq *rq, struct task_struct *prev, +@@ -2870,12 +2873,23 @@ context_switch(struct rq *rq, struct task_struct *prev, switch_to(prev, next, prev); barrier(); @@ -11784,7 +11784,7 @@ index dc85ceb..e6a3fa3 100644 } /* -@@ -3607,6 +3621,7 @@ notrace unsigned long get_parent_ip(unsigned long addr) +@@ -3728,6 +3742,7 @@ notrace unsigned long get_parent_ip(unsigned long addr) void __kprobes add_preempt_count(int val) { @@ -11792,7 +11792,7 @@ index dc85ceb..e6a3fa3 100644 #ifdef CONFIG_DEBUG_PREEMPT /* * Underflow? -@@ -3629,6 +3644,7 @@ EXPORT_SYMBOL(add_preempt_count); +@@ -3750,6 +3765,7 @@ EXPORT_SYMBOL(add_preempt_count); void __kprobes sub_preempt_count(int val) { @@ -11800,7 +11800,7 @@ index dc85ceb..e6a3fa3 100644 #ifdef CONFIG_DEBUG_PREEMPT /* * Underflow? -@@ -3677,6 +3693,7 @@ static noinline void __schedule_bug(struct task_struct *prev) +@@ -3798,6 +3814,7 @@ static noinline void __schedule_bug(struct task_struct *prev) */ static inline void schedule_debug(struct task_struct *prev) { @@ -11808,7 +11808,7 @@ index dc85ceb..e6a3fa3 100644 /* * Test if we are atomic. Since do_exit() needs to call into * schedule() atomically, we ignore that path for now. -@@ -3739,7 +3756,7 @@ pick_next_task(struct rq *rq) +@@ -3859,7 +3876,7 @@ pick_next_task(struct rq *rq) /* * schedule() is the main scheduler function. */ @@ -11817,7 +11817,7 @@ index dc85ceb..e6a3fa3 100644 { struct task_struct *prev, *next; unsigned long *switch_count; -@@ -3753,6 +3770,10 @@ need_resched: +@@ -3873,6 +3890,10 @@ need_resched: rcu_note_context_switch(cpu); prev = rq->curr; @@ -11828,7 +11828,7 @@ index dc85ceb..e6a3fa3 100644 release_kernel_lock(prev); need_resched_nonpreemptible: -@@ -3803,7 +3824,8 @@ need_resched_nonpreemptible: +@@ -3924,7 +3945,8 @@ need_resched_nonpreemptible: rq->curr = next; ++*switch_count; @@ -11838,7 +11838,7 @@ index dc85ceb..e6a3fa3 100644 /* * The context switch have flipped the stack from under us * and restored the local variables which were saved when -@@ -3812,8 +3834,10 @@ need_resched_nonpreemptible: +@@ -3933,8 +3955,10 @@ need_resched_nonpreemptible: */ cpu = smp_processor_id(); rq = cpu_rq(cpu); @@ -11850,7 +11850,7 @@ index dc85ceb..e6a3fa3 100644 post_schedule(rq); -@@ -3823,6 +3847,8 @@ need_resched_nonpreemptible: +@@ -3944,6 +3968,8 @@ need_resched_nonpreemptible: preempt_enable_no_resched(); if (need_resched()) goto need_resched; @@ -11859,7 +11859,7 @@ index dc85ceb..e6a3fa3 100644 } EXPORT_SYMBOL(schedule); -@@ -3914,7 +3940,8 @@ asmlinkage void __sched notrace preempt_schedule(void) +@@ -4035,7 +4061,8 @@ asmlinkage void __sched notrace preempt_schedule(void) do { add_preempt_count_notrace(PREEMPT_ACTIVE); @@ -11869,7 +11869,7 @@ index dc85ceb..e6a3fa3 100644 sub_preempt_count_notrace(PREEMPT_ACTIVE); /* -@@ -4695,6 +4722,7 @@ recheck: +@@ -4816,6 +4843,7 @@ recheck: oldprio = p->prio; prev_class = p->sched_class; __setscheduler(rq, p, policy, param->sched_priority); @@ -11877,7 +11877,7 @@ index dc85ceb..e6a3fa3 100644 if (running) p->sched_class->set_curr_task(rq); -@@ -5351,6 +5379,7 @@ void __cpuinit init_idle(struct task_struct *idle, int cpu) +@@ -5484,6 +5512,7 @@ void __cpuinit init_idle(struct task_struct *idle, int cpu) #else task_thread_info(idle)->preempt_count = 0; #endif @@ -11885,7 +11885,7 @@ index dc85ceb..e6a3fa3 100644 /* * The idle tasks have their own, simple scheduling class: */ -@@ -9188,3 +9217,64 @@ void synchronize_sched_expedited(void) +@@ -9321,3 +9350,64 @@ void synchronize_sched_expedited(void) EXPORT_SYMBOL_GPL(synchronize_sched_expedited); #endif /* #else #ifndef CONFIG_SMP */ @@ -12024,10 +12024,10 @@ index 3e216e0..9434a56 100644 } diff --git a/kernel/timer.c b/kernel/timer.c -index 97bf05b..3241147 100644 +index 102ad37..82792fb 100644 --- a/kernel/timer.c +++ b/kernel/timer.c -@@ -1284,6 +1284,25 @@ void update_process_times(int user_tick) +@@ -1290,6 +1290,25 @@ void update_process_times(int user_tick) run_posix_cpu_timers(p); } @@ -12477,7 +12477,7 @@ index 9e82e93..a4bd34d 100644 if (active_mm != mm) diff --git a/mm/vmalloc.c b/mm/vmalloc.c -index 6b8889d..efc3105 100644 +index d8087f0..6098862 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -173,6 +173,8 @@ static int vmap_page_range_noflush(unsigned long start, unsigned long end, _______________________________________________ Xenomai-git mailing list [email protected] https://mail.gna.org/listinfo/xenomai-git
