Thanks for the explanation... > But basically, with CONFIG_PREEMPT_RT enabled, the lock points, such as > aqcuiring a spinlock, potentially become places where the current task > may be context switched out / preempted. > > Therefore, when a call is made to lock a spinlock for example, the > caller should not currently have irqs disabled, or preemption disabled, > since a context switch may occur. this doesn't seem relevant here... > void fastcall rt_downgrade_write(struct rw_semaphore *rwsem) > { > BUG(); > } this seems to be the problem... the -rt patch turns downgrade_write() into a BUG(). I need to look at the locking in user_mad.c again, but I think it may be possible to replace both places that do downgrade_write() with up_write() followed by down_read(). - R. - To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html