debian/changelog | 8 + debian/patches/55_sparc-fbdev-fallback.diff | 128 ---------------------------- debian/patches/series | 1 3 files changed, 8 insertions(+), 129 deletions(-)
New commits: commit b0dc45f792c9aa1e3445bd6297cc2e99d36d8efb Author: Julien Cristau <jcris...@debian.org> Date: Fri May 22 15:18:26 2009 +0200 Revert change from -10.lenny1. If both PCI and fb drivers are loaded, the server falls over, so the workaround doesn't work, and seems to break other setups... diff --git a/debian/changelog b/debian/changelog index d6c7c66..56acd25 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +xorg-server (2:1.4.2-10.lenny2) UNRELEASED; urgency=low + + * Revert change from -10.lenny1. If both PCI and fb drivers are loaded, the + server falls over, so the workaround doesn't work, and seems to break + other setups... This closes: #527058, and reopens #488669. + + -- Julien Cristau <jcris...@debian.org> Fri, 22 May 2009 15:15:16 +0200 + xorg-server (2:1.4.2-10.lenny1) stable; urgency=low * Work around a bug in the sparc PCI code by falling back to the fbdev diff --git a/debian/patches/55_sparc-fbdev-fallback.diff b/debian/patches/55_sparc-fbdev-fallback.diff deleted file mode 100644 index cab2a6b..0000000 --- a/debian/patches/55_sparc-fbdev-fallback.diff +++ /dev/null @@ -1,128 +0,0 @@ -From db183d95a4b03a735da54609b6158e17b0422e62 Mon Sep 17 00:00:00 2001 -From: Julien Cristau <jcris...@debian.org> -Date: Tue, 24 Feb 2009 01:25:32 +0100 -Subject: [PATCH] Add an fbdev screen as a fallback on sparc - -Because of a bug in our PCI code that got exposed by recent kernels, -we will fail to start with PCI drivers on sparc. Add a new fallback -screen using the fbdev driver that should hopefully still work. - -For this to work we need xf86MapDomainMemory to not throw a fatal error -on failure, otherwise we won't even try the fallback. ---- - hw/xfree86/common/xf86Config.c | 65 ++++++++++++++++++++++++++++++++++ - hw/xfree86/os-support/bus/linuxPci.c | 4 +- - 2 files changed, 67 insertions(+), 2 deletions(-) - -Index: xorg-server/hw/xfree86/common/xf86Config.c -=================================================================== ---- xorg-server.orig/hw/xfree86/common/xf86Config.c -+++ xorg-server/hw/xfree86/common/xf86Config.c -@@ -1530,6 +1530,51 @@ - {0}, FALSE }, - }; - -+#ifdef __sparc__ -+/* -+ * XXX this is a kludge to workaround a bug on sparc that makes X fail to -+ * start on pci platforms, and where we want to always fallback to fbdev. -+ */ -+static void configAddFbdev(XF86ConfLayoutPtr conf_layout) -+{ -+ XF86ConfScreenPtr fbdev_screen = xnfcalloc(1, sizeof(XF86ConfScreenRec)); -+ XF86ConfDevicePtr fbdev_device = xnfcalloc(1, sizeof(XF86ConfDeviceRec)); -+ XF86ConfAdjacencyPtr fbdev_adjp = xnfcalloc(1, sizeof(XF86ConfAdjacencyRec)); -+ -+ fbdev_adjp->adj_scrnum = -1; -+ fbdev_adjp->adj_screen = fbdev_screen; -+ fbdev_adjp->adj_screen_str = xstrdup("fbdev fallback Screen"); -+ fbdev_adjp->adj_where = CONF_ADJ_OBSOLETE; -+ -+ fbdev_screen->scrn_identifier = xstrdup(fbdev_adjp->adj_screen_str); -+ fbdev_screen->scrn_device_str = xstrdup("fbdev fallback Device"); -+ fbdev_screen->scrn_device = fbdev_device; -+ -+ fbdev_device->dev_identifier = xstrdup(fbdev_screen->scrn_device_str); -+ fbdev_device->dev_driver = xstrdup("fbdev"); -+ -+ conf_layout->lay_adjacency_lst = -+ xf86addListItem(&conf_layout->lay_adjacency_lst->list, -+ &fbdev_adjp->list); -+} -+ -+static XF86ConfScreenPtr configAddFbdevScreen(void) -+{ -+ XF86ConfScreenPtr fbdev_screen = xnfcalloc(1, sizeof(XF86ConfScreenRec)); -+ XF86ConfDevicePtr fbdev_device = xnfcalloc(1, sizeof(XF86ConfDeviceRec)); -+ -+ fbdev_screen->scrn_identifier = xstrdup("fbdev fallback Screen"); -+ fbdev_screen->scrn_device_str = xstrdup("fbdev fallback Device"); -+ fbdev_screen->scrn_device = fbdev_device; -+ -+ fbdev_device->dev_identifier = xstrdup(fbdev_screen->scrn_device_str); -+ fbdev_device->dev_driver = xstrdup("fbdev"); -+ -+ return fbdev_screen; -+ -+} -+#endif -+ - /* - * figure out which layout is active, which screens are used in that layout, - * which drivers and monitors are used in these screens -@@ -1576,6 +1621,9 @@ - } - xf86Msg(from, "ServerLayout \"%s\"\n", conf_layout->lay_identifier); - adjp = conf_layout->lay_adjacency_lst; -+#ifdef __sparc__ -+ configAddFbdev(conf_layout); -+#endif - - /* - * we know that each screen is referenced exactly once on the left side -@@ -1820,13 +1868,30 @@ - - /* We have exactly one screen */ - -+#ifndef __sparc__ - slp = xnfcalloc(1, 2 * sizeof(screenLayoutRec)); -+#else -+ slp = xnfcalloc(3, sizeof(screenLayoutRec)); -+#endif -+ - slp[0].screen = xnfcalloc(1, sizeof(confScreenRec)); -+#ifndef __sparc__ - slp[1].screen = NULL; -+#else -+ slp[1].screen = xnfcalloc(1, sizeof(confScreenRec)); -+ slp[2].screen = NULL; -+#endif - if (!configScreen(slp[0].screen, conf_screen, 0, from)) { - xfree(slp); - return FALSE; - } -+#ifdef __sparc__ -+ conf_screen = configAddFbdevScreen(); -+ if (!configScreen(slp[1].screen, conf_screen, 1, X_DEFAULT)) { -+ xfree(slp); -+ return FALSE; -+ } -+#endif - servlayoutp->id = "(implicit)"; - servlayoutp->screens = slp; - servlayoutp->inactives = xnfcalloc(1, sizeof(GDevRec)); -Index: xorg-server/hw/xfree86/os-support/bus/linuxPci.c -=================================================================== ---- xorg-server.orig/hw/xfree86/os-support/bus/linuxPci.c -+++ xorg-server/hw/xfree86/os-support/bus/linuxPci.c -@@ -703,8 +703,8 @@ - if (fd >= 0) - close(fd); - if (addr == NULL || addr == MAP_FAILED) { -- perror("mmap failure"); -- FatalError("xf86MapDomainMem(): mmap() failure\n"); -+ ErrorF("xf86MapDomainMem(): %s\n", strerror(errno)); -+ addr = NULL; - } - return addr; - } diff --git a/debian/patches/series b/debian/patches/series index 1b2ebf2..25604c9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -28,7 +28,6 @@ 52_xevie-swap-replies.diff 53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch 54_more-sanity-checks.diff -55_sparc-fbdev-fallback.diff 91_ttf2pt1 91_ttf2pt1_updates 92_xprint-security-holes-fix.patch -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org