fix rcu_dereference_check warning

This commit is contained in:
Kyle McMartin 2010-09-06 14:22:48 -04:00
parent 8ccfe4ce6a
commit cfdae029cc
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,27 @@
diff --git a/kernel/sched.c b/kernel/sched.c
index 6d0dbeb..3640c20 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -5155,9 +5155,11 @@ void __cpuinit init_idle_bootup_task(struct task_struct *idle)
void __cpuinit init_idle(struct task_struct *idle, int cpu)
{
struct rq *rq = cpu_rq(cpu);
+ struct rq *oldrq = task_rq(idle);
unsigned long flags;
- raw_spin_lock_irqsave(&rq->lock, flags);
+ local_irq_save(flags);
+ double_rq_lock(oldrq, rq);
__sched_fork(idle);
idle->state = TASK_RUNNING;
@@ -5170,7 +5172,8 @@ void __cpuinit init_idle(struct task_struct *idle, int cpu)
#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW)
idle->oncpu = 1;
#endif
- raw_spin_unlock_irqrestore(&rq->lock, flags);
+ double_rq_unlock(oldrq, rq);
+ local_irq_restore(flags);
/* Set the preempt count _outside_ the spinlocks! */
#if defined(CONFIG_PREEMPT)

View File

@ -712,6 +712,9 @@ Patch12070: xfs-move-aio-completion-after-unwritten-extent-conversion.patch
Patch12080: kprobes-x86-fix-kprobes-to-skip-prefixes-correctly.patch
# rhbz #622149
Patch12085: fix-rcu_deref_check-warning.patch
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@ -1314,6 +1317,9 @@ ApplyPatch xfs-move-aio-completion-after-unwritten-extent-conversion.patch
# bz 610941
ApplyPatch kprobes-x86-fix-kprobes-to-skip-prefixes-correctly.patch
# bz 622149
ApplyPatch fix-rcu_deref_check-warning.patch
# END OF PATCH APPLICATIONS
%endif
@ -1900,6 +1906,10 @@ fi
# and build.
%changelog
* Mon Sep 06 2010 Kyle McMartin <kyle@redhat.com>
- Patch from paulmck to fix rcu_dereference_check warning
(http://lkml.org/lkml/2010/8/16/258)
* Mon Sep 06 2010 Jarod Wilson <jarod@redhat.com> 2.6.35.4-20
- Restore the rest of the appleir driver patch