Blame SOURCES/0001-modesetting-Fix-msSharePixmapBacking-Segfault-Regres.patch

55d6a0
From 88f0787f93f097a125a0aa156eb9a5628adfc2c2 Mon Sep 17 00:00:00 2001
55d6a0
From: Alex Goins <agoins@nvidia.com>
55d6a0
Date: Thu, 12 Dec 2019 20:18:53 -0600
55d6a0
Subject: [PATCH xserver] modesetting: Fix msSharePixmapBacking Segfault
55d6a0
 Regression
55d6a0
MIME-Version: 1.0
55d6a0
Content-Type: text/plain; charset=UTF-8
55d6a0
Content-Transfer-Encoding: 8bit
55d6a0
55d6a0
Commit cb1b1e184 modified msSharePixmapBacking() to derive modesettingPtr from
55d6a0
the 'screen' argument. Unfortunately, the name of the argument is misleading --
55d6a0
the screen is the slave screen. If the master is modesetting,
55d6a0
and the slave is not modesetting, it will segfault.
55d6a0
55d6a0
To fix the problem, this change derives modesettingPtr from
55d6a0
ppix->drawable.pScreen. This method is already used when calling
55d6a0
ms->glamor.shareable_fd_from_pixmap() later in the function.
55d6a0
55d6a0
To avoid future issues, this change also renames the 'screen' argument to
55d6a0
'slave'.
55d6a0
55d6a0
Signed-off-by: Alex Goins <agoins@nvidia.com>
55d6a0
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
55d6a0
(cherry picked from commit 456dff1bf890459840718339279dcb84d36531eb)
55d6a0
---
55d6a0
 hw/xfree86/drivers/modesetting/driver.c | 5 +++--
55d6a0
 1 file changed, 3 insertions(+), 2 deletions(-)
55d6a0
55d6a0
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
55d6a0
index ce8bac9f5..0817fa470 100644
55d6a0
--- a/hw/xfree86/drivers/modesetting/driver.c
55d6a0
+++ b/hw/xfree86/drivers/modesetting/driver.c
55d6a0
@@ -1454,10 +1454,11 @@ CreateScreenResources(ScreenPtr pScreen)
55d6a0
 }
55d6a0
 
55d6a0
 static Bool
55d6a0
-msSharePixmapBacking(PixmapPtr ppix, ScreenPtr screen, void **handle)
55d6a0
+msSharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle)
55d6a0
 {
55d6a0
 #ifdef GLAMOR_HAS_GBM
55d6a0
-    modesettingPtr ms = modesettingPTR(xf86ScreenToScrn(screen));
55d6a0
+    modesettingPtr ms =
55d6a0
+        modesettingPTR(xf86ScreenToScrn(ppix->drawable.pScreen));
55d6a0
     int ret;
55d6a0
     CARD16 stride;
55d6a0
     CARD32 size;
55d6a0
-- 
55d6a0
2.34.1
55d6a0