refresh rt-core-implementation.patch
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/rt-core-implementation.patch b/rt-core-implementation.patch
index 99661a3..108de20 100644
--- a/rt-core-implementation.patch
+++ b/rt-core-implementation.patch
@@ -1,4 +1,4 @@
-From c651e0c06f3ea64d302837cc3b576d6993694fd2 Mon Sep 17 00:00:00 2001
+From e5f224f353006a42af083210dee0a3c7b507aa1f Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:07 -0500
Subject: [PATCH] rt: core implementation
@@ -27,10 +27,10 @@
/*
* Are we in NMI context?
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index 1221d23..3489c31 100644
+index 9365227..5215fbe 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
-@@ -123,7 +123,7 @@ extern int _cond_resched(void);
+@@ -133,7 +133,7 @@ extern int _cond_resched(void);
# define might_resched() do { } while (0)
#endif
@@ -39,7 +39,7 @@
void __might_sleep(const char *file, int line, int preempt_offset);
/**
* might_sleep - annotation for functions that can sleep
-@@ -287,6 +287,12 @@ extern void printk_tick(void);
+@@ -297,6 +297,12 @@ extern void printk_tick(void);
extern void asmlinkage __attribute__((format(printf, 1, 2)))
early_printk(const char *fmt, ...);
@@ -52,7 +52,7 @@
unsigned long int_sqrt(unsigned long);
static inline void console_silent(void)
-@@ -316,6 +322,7 @@ extern int root_mountflags;
+@@ -326,6 +332,7 @@ extern int root_mountflags;
/* Values used for system_state */
extern enum system_states {
SYSTEM_BOOTING,
@@ -90,10 +90,10 @@
extern int prof_on __read_mostly;
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h
-index c5da749..9eb17f9 100644
+index 55ca73c..630e94d 100644
--- a/include/linux/radix-tree.h
+++ b/include/linux/radix-tree.h
-@@ -169,7 +169,18 @@ unsigned long radix_tree_next_hole(struct radix_tree_root *root,
+@@ -176,7 +176,18 @@ unsigned long radix_tree_next_hole(struct radix_tree_root *root,
unsigned long index, unsigned long max_scan);
unsigned long radix_tree_prev_hole(struct radix_tree_root *root,
unsigned long index, unsigned long max_scan);
@@ -112,7 +112,7 @@
void radix_tree_init(void);
void *radix_tree_tag_set(struct radix_tree_root *root,
unsigned long index, unsigned int tag);
-@@ -189,7 +200,9 @@ int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
+@@ -196,7 +207,9 @@ int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
static inline void radix_tree_preload_end(void)
{
@@ -123,7 +123,7 @@
#endif /* _LINUX_RADIX_TREE_H */
diff --git a/include/linux/smp.h b/include/linux/smp.h
-index 7a0570e..c55f2ca 100644
+index cfa2d20..97f377e 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -50,6 +50,16 @@ extern void smp_send_stop(void);
@@ -308,7 +308,7 @@
Say N if you are unsure.
diff --git a/kernel/exit.c b/kernel/exit.c
-index 309df57..adeffd2 100644
+index 4b94bd4..3804e64 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -69,7 +69,9 @@ static void __unhash_process(struct task_struct *p)
@@ -333,7 +333,7 @@
task_unlock(tsk);
mm_update_next_owner(mm);
mmput(mm);
-@@ -1501,6 +1505,9 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace,
+@@ -1503,6 +1507,9 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace,
struct task_struct *p)
{
int ret = eligible_child(wo, p);
@@ -344,10 +344,10 @@
return ret;
diff --git a/kernel/fork.c b/kernel/fork.c
-index c49f839..30086f9 100644
+index 22a84a6..4a2e451 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -186,6 +186,16 @@ void __put_task_struct(struct task_struct *tsk)
+@@ -193,6 +193,16 @@ void __put_task_struct(struct task_struct *tsk)
free_task(tsk);
}
@@ -387,10 +387,10 @@
down_write(&nh->rwsem);
diff --git a/kernel/signal.c b/kernel/signal.c
-index 5c2181b..9dda83b 100644
+index 9ecee0f..e826006 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
-@@ -949,7 +949,9 @@ static int __send_signal(int sig, struct siginfo *info, struct task_struct *t,
+@@ -966,7 +966,9 @@ static int __send_signal(int sig, struct siginfo *info, struct task_struct *t,
trace_signal_generate(sig, info, t);
@@ -400,7 +400,7 @@
if (!prepare_signal(sig, t, from_ancestor_ns))
return 0;
-@@ -1710,15 +1712,8 @@ static void ptrace_stop(int exit_code, int clear_code, siginfo_t *info)
+@@ -1727,15 +1729,8 @@ static void ptrace_stop(int exit_code, int clear_code, siginfo_t *info)
read_lock(&tasklist_lock);
if (may_ptrace_stop()) {
do_notify_parent_cldstop(current, CLD_TRAPPED);
@@ -478,7 +478,7 @@
#ifdef CONFIG_SMP
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index dee4865..fb74031 100644
+index 5bfb213..9f2f34d 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -26,6 +26,7 @@
@@ -520,9 +520,9 @@
{
if (del_timer_sync(&dwork->timer)) {
struct cpu_workqueue_struct *cwq;
-- cwq = wq_per_cpu(keventd_wq, get_cpu());
+- cwq = wq_per_cpu(get_wq_data(&dwork->work)->wq, get_cpu());
+ int cpu = raw_smp_processor_id();
-+ cwq = wq_per_cpu(keventd_wq, cpu);
++ cwq = wq_per_cpu(get_wq_data(&dwork->work)->wq, cpu);
__queue_work(cwq, &dwork->work);
- put_cpu();
}
@@ -585,10 +585,10 @@
+ set_workqueue_prio(keventd_wq, SCHED_FIFO, 1, -20);
}
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index 5e3407d..aa0142b 100644
+index 935248b..da38548 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
-@@ -415,6 +415,8 @@ config DEBUG_RT_MUTEXES
+@@ -416,6 +416,8 @@ config DEBUG_RT_MUTEXES
help
This allows rt mutex semantics violations and rt mutex related
deadlocks (lockups) to be detected and reported automatically.
@@ -597,7 +597,7 @@
config DEBUG_PI_LIST
bool
-@@ -438,7 +440,7 @@ config DEBUG_SPINLOCK
+@@ -439,7 +441,7 @@ config DEBUG_SPINLOCK
config DEBUG_MUTEXES
bool "Mutex debugging: basic checks"
@@ -607,7 +607,7 @@
This feature allows mutex semantics violations to be detected and
reported.
diff --git a/lib/Makefile b/lib/Makefile
-index 3b0b4a6..2d21722 100644
+index 0d40152..1847796 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -34,7 +34,8 @@ obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
@@ -754,10 +754,10 @@
if (unexpected_testcase_failures) {
printk("-----------------------------------------------------------------\n");
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
-index 6b9670d..149f285 100644
+index 2a087e0..e66c9d9 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
-@@ -157,12 +157,14 @@ radix_tree_node_alloc(struct radix_tree_root *root)
+@@ -156,12 +156,14 @@ radix_tree_node_alloc(struct radix_tree_root *root)
* succeed in getting a node here (and never reach
* kmem_cache_alloc)
*/
@@ -772,7 +772,7 @@
}
if (ret == NULL)
ret = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask);
-@@ -195,6 +197,8 @@ radix_tree_node_free(struct radix_tree_node *node)
+@@ -194,6 +196,8 @@ radix_tree_node_free(struct radix_tree_node *node)
call_rcu(&node->rcu_head, radix_tree_node_rcu_free);
}
@@ -781,7 +781,7 @@
/*
* Load up this CPU's radix_tree_node buffer with sufficient objects to
* ensure that the addition of a single element in the tree cannot fail. On
-@@ -230,6 +234,8 @@ out:
+@@ -229,6 +233,8 @@ out:
}
EXPORT_SYMBOL(radix_tree_preload);