drm/vmwgfx: Drop preempt_disable() in vmw_fifo_ping_host()
vmw_fifo_ping_host() disables preemption around a test and a register write via vmw_write(). The write function acquires a spinlock_t typed lock which is not allowed in a preempt_disable()ed section on PREEMPT_RT. This has been reported in the bugzilla. It has been explained by Thomas Hellstrom that this preempt_disable()ed section is not required for correctness. Remove the preempt_disable() section. Link: https://bugzilla.kernel.org/show_bug.cgi?id=206591 Link: https://lkml.kernel.org/r/0b5e1c65d89951de993deab06d1d197b40fd67aa.camel@vmware.com Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
This commit is contained in:
parent
3b0d6458c7
commit
44e5f9311c
@ -169,10 +169,8 @@ void vmw_fifo_ping_host(struct vmw_private *dev_priv, uint32_t reason)
|
||||
{
|
||||
u32 *fifo_mem = dev_priv->mmio_virt;
|
||||
|
||||
preempt_disable();
|
||||
if (cmpxchg(fifo_mem + SVGA_FIFO_BUSY, 0, 1) == 0)
|
||||
vmw_write(dev_priv, SVGA_REG_SYNC, reason);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
void vmw_fifo_release(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
|
||||
|
Loading…
x
Reference in New Issue
Block a user