• Steven Rostedt's avatar
    rt-locks: implement rt_downgrade_write · 86ed1c88
    Steven Rostedt authored
    The current code of rt_downgrade_write simply does a BUG(). There
    are places in the kernel that uses this code, and will crash a runnning
    preempt-rt kernel.
    
    The rt_downgrade_write converts a rwsem held for write into a rwsem
    held for read without ever releasing the semaphore. In -rt, the rwsems
    are simply a mutex. There is nothing different between a rwsem held
    for write, and one held for read. The difference is that one held for
    read can nest.
    
    This patch changes the BUG_ON() to simply BUG if the caller is not
    the owner of the semaphore.
    
    This patch comes from my rt-git repo, and has been tested there.
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Clark Williams <clark.williams@gmail.com>
    Cc: "Luis Claudio R. Goncalves" <lclaudio@uudg.org>
    LKML-Reference: <alpine.DEB.2.00.0904151142420.31828@gandalf.stny.rr.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    86ed1c88
rt.c 12.6 KB