tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

DGA support for wsfb driver has been disabled



Hi,

Let me belatedly announce that I've disabled DGA support for
wsfb driver, as it is terribly broken.

dga(1) crashes X server with wsfb driver; pScrn->AdjustFrame is
called from DGA codes, albeit it is explicitly set to NULL.

Furthermore, if nop is privided as pScrn->AdjustFrame, dga(1)
crashes not only X server but also kernel! This is because DGA
extension in X server uses physical address of framebuffer,
whereas we do not provide it.

(Note that wsdisplay(4) does not provide any method to obtain
physical address of framebuffer for userland.)

If there's no objection, I will send pullup request to
netbsd-[89] in few days.

Thanks,
rin

-------- Forwarded Message --------
Subject: CVS commit: src/external/mit/xorg/server/drivers/xf86-video-wsfb
Date: Sat, 20 Aug 2022 01:02:44 +0000
From: Rin Okuyama <rin%netbsd.org@localhost>
Reply-To: source-changes-d%NetBSD.org@localhost
To: source-changes-full%NetBSD.org@localhost

Module Name:	src
Committed By:	rin
Date:		Sat Aug 20 01:02:44 UTC 2022

Modified Files:
	src/external/mit/xorg/server/drivers/xf86-video-wsfb: Makefile

Log Message:
wsfb: Disable broken DGA support:
 - dga(1) crashes X server since pScrn->AdjustFrame is NULL.
 - If nop is provided as pScrn->AdjustFrame, dga(1) crashes X server *AND*
   kernel. This is because DGA uses physical address of framebuffer via
   /dev/mem (oops!), but we provide only mmap(2)'ed virtual address.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
    src/external/mit/xorg/server/drivers/xf86-video-wsfb/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/mit/xorg/server/drivers/xf86-video-wsfb/Makefile
diff -u src/external/mit/xorg/server/drivers/xf86-video-wsfb/Makefile:1.5 src/external/mit/xorg/server/drivers/xf86-video-wsfb/Makefile:1.6
--- src/external/mit/xorg/server/drivers/xf86-video-wsfb/Makefile:1.5	Fri Aug  3 02:26:00 2018
+++ src/external/mit/xorg/server/drivers/xf86-video-wsfb/Makefile	Sat Aug 20 01:02:44 2022
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.5 2018/08/03 02:26:00 kamil Exp $
+#	$NetBSD: Makefile,v 1.6 2022/08/20 01:02:44 rin Exp $
 
 DRIVER=		xf86-video-wsfb
 DRIVER_NAME=	wsfb_drv
@@ -11,3 +11,11 @@ CPPFLAGS+=	-DHAVE_CONFIG_H -I${X11SRCDIR
 CWARNFLAGS.clang+=	-Wno-format
 
 .include "../Makefile.xf86-driver"
+
+# XXX
+# DGA support for this driver is broken:
+# - dga(1) crashes X server since pScrn->AdjustFrame is NULL.
+# - If nop is provided as pScrn->AdjustFrame, dga(1) crashes X server *AND*
+#   kernel. This is because DGA uses physical address of framebuffer via
+#   /dev/mem (oops!), but we provide only mmap(2)'ed virtual address.
+CPPFLAGS+=	-UXFreeXDGA




Home | Main Index | Thread Index | Old Index