summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:22:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:26:40 +0000
commit08f003891b84f52e49a5bdbc8a589fb052ac9a4e (patch)
treeb7e426b4a4eb48e9e71188a2812a4c71625c35ac /debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
parentMerging upstream version 4.19.260. (diff)
downloadlinux-08f003891b84f52e49a5bdbc8a589fb052ac9a4e.tar.xz
linux-08f003891b84f52e49a5bdbc8a589fb052ac9a4e.zip
Merging debian version 4.19.260-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch')
-rw-r--r--debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch b/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
new file mode 100644
index 000000000..016783a60
--- /dev/null
+++ b/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
@@ -0,0 +1,41 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Feb 2020 18:57:11 +0100
+Subject: [PATCH 319/342] drm/vmwgfx: Drop preempt_disable() in
+ vmw_fifo_ping_host()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d41c023d443b698d184f54f642578b0c195f140c
+
+[ Upstream commit b901491e7b9b7a676818d84e482b69be72fc142f ]
+
+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>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
+index d0fd147ef75f..fb5a3461bb8c 100644
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
+@@ -167,10 +167,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)