DGA support for wsfb driver has been disabled
Rin Okuyama <[email protected]> Sat, 20 Aug 2022 18:23:46 +0900
| Newsgroups | gmane.os.netbsd.devel.x11 |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> Reply-To: [email protected] To: [email protected] 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.
添付メッセージ部
(text/x-diff, 1.1 KB)
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