-
Peter Chubb authored
[PATCH] ia64: Fix OSDL BugMe report 2885: realtime process can't preempt low priority process in kernel Rearranged code to make it work. There were two problems: 1. The preempt flag was being tested only if code was leaving for user space (the logic should be: test for RESCHEDULE if we're switching to a kernel thread, test everything if switching to a user thread) 2. The check of the user space flags was being repeated even if the work had been done. There is one small change in semantics: when returning from a preemption, the preemption flag will *not* be rechecked. Otherwise, I found that it was easy to get into a livelock situation where no forward progress was made. Signed-off-by: David Mosberger <davidm@hpl.hp.com>
dbba4b55