Re: [PATCH] BUG(): sched.c: Line 944

Linus Torvalds (torvalds@transmeta.com)
Mon, 16 Sep 2002 16:45:58 -0700 (PDT)


On 16 Sep 2002, Robert Love wrote:
>
> Nope. If PREEMPT_ACTIVE is set, schedule() assumes the task is being
> preempted and skips certain logic e.g. deactivate_task() (this is the
> same code that lets us safely preempt a TASK_ZOMBIE).

Ahhah! I know. You just make lock_depth 0 when you exit, without actually
taking the kernel lock. Which fools the logic into accepting a
preempt-disable, since it thinks that the preempt disable is due to
holding the kernel lock.

Add a big comment and you're all done.

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/