set_rq_task(rq, next);
grq.nr_switches++;
prev->oncpu = 0;
-@@ -2547,10 +2652,15 @@ need_resched_nonpreemptible:
+@@ -2547,8 +2652,13 @@ need_resched_nonpreemptible:
} else
grq_unlock_irq();
- if (unlikely(reacquire_kernel_lock(current) < 0))
+rerun_prev_unlocked:
+ if (unlikely(reacquire_kernel_lock(current) < 0)) {
-+// prev = rq->curr;
-+// switch_count = &prev->nivcsw;
++ prev = rq->curr;
++ switch_count = &prev->nivcsw;
goto need_resched_nonpreemptible;
+ }
+
preempt_enable_no_resched();
-- if (unlikely(test_thread_flag(TIF_NEED_RESCHED)))
-+ if (need_resched())
+ if (unlikely(test_thread_flag(TIF_NEED_RESCHED)))
goto need_resched;
- }
- EXPORT_SYMBOL(schedule);
@@ -3066,8 +3176,9 @@ int task_prio(const struct task_struct *
if (prio <= 0)
goto out;
rq->sd = NULL;
rq->rd = NULL;
rq->online = 0;
-@@ -6219,10 +6334,6 @@ cputime_t task_stime(struct task_struct
- }
- #endif
-
--void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *st)
--{
--}
--
- inline cputime_t task_gtime(struct task_struct *p)
- {
- return p->gtime;
Index: kernel-2.6.28/kernel/sysctl.c
===================================================================
--- kernel-2.6.28.orig/kernel/sysctl.c
},
{
.ctl_name = CTL_UNNUMBERED,
+