• Peter Chubb's avatar
    [PATCH] ia64: Fix OSDL BugMe report 2885: realtime process can't preempt low... · dbba4b55
    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: default avatarDavid Mosberger <davidm@hpl.hp.com>
    dbba4b55
entry.S 41.6 KB