[PATCH xf86-video-amdgpu 1/6] glamor: Fix amdgpu_glamor_share_pixmap_backing for priv->bo == NULL

Michel Dänzer michel at daenzer.net
Wed Jun 8 08:45:14 UTC 2016


From: Michel Dänzer <michel.daenzer at amd.com>

Fixes crash when running a compositor and DRI_PRIME client via DRI2.

Reported-by: Qiang Yu <qiang.yu at amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/amdgpu_glamor.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/amdgpu_glamor.c b/src/amdgpu_glamor.c
index 52aa30d..b6ec98f 100644
--- a/src/amdgpu_glamor.c
+++ b/src/amdgpu_glamor.c
@@ -278,12 +278,17 @@ static Bool
 amdgpu_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
 				   void **handle_p)
 {
-	struct amdgpu_pixmap *priv = amdgpu_get_pixmap_private(pixmap);
+	ScreenPtr screen = pixmap->drawable.pScreen;
+	CARD16 stride;
+	CARD32 size;
+	int fd;
 
-	if (!priv)
+	fd = glamor_fd_from_pixmap(screen, pixmap, &stride, &size);
+	if (fd < 0)
 		return FALSE;
 
-	return amdgpu_share_pixmap_backing(priv->bo, handle_p);
+	*handle_p = (void *)(long)fd;
+	return TRUE;
 }
 
 static Bool
-- 
2.8.1



More information about the xorg-driver-ati mailing list