X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fsched.c;h=1f31a528fdba8ef941f5a75acb65c3ac6a4bf815;hb=b620cc2cd80393b9a0f9a76806cb7f9e91671dac;hp=81b3a96ed2d09a79f7937503a88c3ced4c959953;hpb=d58dde0f552a5c5c4485b962d8b6e9dd54fefb30;p=linux-2.6 diff --git a/kernel/sched.c b/kernel/sched.c index 81b3a96ed2..1f31a528fd 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -294,6 +294,10 @@ static inline void prepare_lock_switch(runqueue_t *rq, task_t *next) static inline void finish_lock_switch(runqueue_t *rq, task_t *prev) { +#ifdef CONFIG_DEBUG_SPINLOCK + /* this is a valid case when another task releases the spinlock */ + rq->lock.owner = current; +#endif spin_unlock_irq(&rq->lock); } @@ -1529,10 +1533,6 @@ static inline void finish_task_switch(runqueue_t *rq, task_t *prev) * Manfred Spraul */ prev_task_flags = prev->flags; -#ifdef CONFIG_DEBUG_SPINLOCK - /* this is a valid case when another task releases the spinlock */ - rq->lock.owner = current; -#endif finish_arch_switch(prev); finish_lock_switch(rq, prev); if (mm)