[PATCH] xf86/modes: Defang stale pointers when copying modes
We stash a copy of the desiredMode on the crtc so that we can restore it after a vt switch. This copy is a simple memcpy and so also stashes a references to the pointers contained within the desiredMode. Those pointers are freed the next time the outputs are probed and mode list rebuilt, resulting in us chasing those dangling pointers on the next mode switch. ==22787== Invalid read of size 1 ==22787==at 0x40293C2: __GI_strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==22787==by 0x668F875: strdup (strdup.c:42) ==22787==by 0x5DBA00: XNFstrdup (utils.c:1124) ==22787==by 0x4D72ED: xf86DuplicateMode (xf86Modes.c:209) ==22787==by 0x4CA848: xf86CrtcSetModeTransform (xf86Crtc.c:276) ==22787==by 0x4D05B4: xf86SetDesiredModes (xf86Crtc.c:2677) ==22787==by 0xA7479D0: sna_create_screen_resources (sna_driver.c:220) ==22787==by 0x4CB914: xf86CrtcCreateScreenResources (xf86Crtc.c:725) ==22787==by 0x425498: main (main.c:216) ==22787== Address 0x72c60e0 is 0 bytes inside a block of size 9 free'd ==22787==at 0x4027AAE: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==22787==by 0x4A547E: xf86DeleteMode (xf86Mode.c:1984) ==22787==by 0x4CD84F: xf86ProbeOutputModes (xf86Crtc.c:1578) ==22787==by 0x4DC405: xf86RandR12GetInfo12 (xf86RandR12.c:1537) ==22787==by 0x518119: RRGetInfo (rrinfo.c:202) ==22787==by 0x51D997: rrGetScreenResources (rrscreen.c:335) ==22787==by 0x51E0D0: ProcRRGetScreenResources (rrscreen.c:475) ==22787==by 0x513852: ProcRRDispatch (randr.c:493) ==22787==by 0x4346DB: Dispatch (dispatch.c:439) ==22787==by 0x4256E4: main (main.c:287) v2: Rebase upon whitespaces changes. Reported-by: Zdenek Kabelac zdenek.kabe...@gmail.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36108 Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk --- hw/xfree86/common/xf86.h |2 ++ hw/xfree86/modes/xf86Crtc.c|6 +++--- hw/xfree86/modes/xf86Modes.c | 11 +++ hw/xfree86/modes/xf86RandR12.c |2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index 0eb000d..6e5e768 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -417,6 +417,8 @@ extern _X_EXPORT void xf86SetModeCrtc(DisplayModePtr p, int adjustFlags); extern _X_EXPORT DisplayModePtr xf86DuplicateMode(const DisplayModeRec * pMode); +extern _X_EXPORT void +xf86InternMode(DisplayModePtr intern, const DisplayModeRec * pMode); extern _X_EXPORT DisplayModePtr xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList); extern _X_EXPORT Bool diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index ab6ed5e..c8c2d72 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -2436,7 +2436,7 @@ xf86InitialConfiguration(ScrnInfoPtr scrn, Bool canGrow) xf86CrtcPtr crtc = crtcs[o]; if (mode crtc) { -crtc-desiredMode = *mode; +xf86InternMode(crtc-desiredMode, mode); crtc-desiredRotation = output-initial_rotation; crtc-desiredX = output-initial_x; crtc-desiredY = output-initial_y; @@ -2620,7 +2620,7 @@ xf86SetDesiredModes(ScrnInfoPtr scrn) if (!mode) return FALSE; -crtc-desiredMode = *mode; +xf86InternMode(crtc-desiredMode, mode); crtc-desiredRotation = RR_Rotate_0; crtc-desiredTransformPresent = FALSE; crtc-desiredX = 0; @@ -2759,7 +2759,7 @@ xf86SetSingleMode(ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation) if (!xf86CrtcSetModeTransform(crtc, crtc_mode, rotation, NULL, 0, 0)) ok = FALSE; else { -crtc-desiredMode = *crtc_mode; +xf86InternMode(crtc-desiredMode, crtc_mode); crtc-desiredRotation = rotation; crtc-desiredTransformPresent = FALSE; crtc-desiredX = 0; diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c index 2a6d267..bfdc311 100644 --- a/hw/xfree86/modes/xf86Modes.c +++ b/hw/xfree86/modes/xf86Modes.c @@ -191,6 +191,17 @@ xf86SetModeCrtc(DisplayModePtr p, int adjustFlags) } /** + * Fills in a copy of mode, removing all stale pointer references. + */ +void +xf86InternMode(DisplayModePtr intern, const DisplayModeRec *mode) +{ +*intern = *mode; +intern-prev = intern-next = NULL; +intern-name = NULL; +} + +/** * Allocates and returns a copy of pMode, including pointers within pMode. */ DisplayModePtr diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index e6b2052..0dfca5d 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -1216,7 +1216,7 @@ xf86RandR12CrtcSet(ScreenPtr pScreen, /* * Save the last successful setting for EnterVT */ -crtc-desiredMode = mode; +
[PATCH] [rfc] push don't render sw cursor/sigio avoidance hack down
From: Dave Airlie airl...@redhat.com While developing slave output devices, I tried to enable a swcursor on the Intel device for the primary cursor, depending on whether the usb device was plugged in, and I hit a SIGIO locking problem in libdrm_intel. I wondered why MPX didn't hit this and discovered the comment /* Hack: We mustn't call into -MoveCursor for anything but the * VCP, as this may cause a non-HW rendered cursor to be rendered during * SIGIO. This again leads to allocs during SIGIO which leads to SIGABRT. */ This is incorrect though, as the real problem is doing rendering of any SW cursor, even the VCP cursor can be SW. So this is a first attempt to push down the logic into the DDX, It changes Move/SetCursor to return a value, and undoes the changes if necessary. It then adds an atomic to denote if the input code is running under sigio. If it is it fails to call move cursor for any sw cursors. TODO: fix SetCursor properly to fallback if in sigio input paths This at least works that I can run x11perf with the hack gone and MPX still runs fine. Signed-off-by: Dave Airlie airl...@redhat.com --- hw/xfree86/common/xf86Events.c |4 ++ hw/xfree86/common/xf86Globals.c|2 + hw/xfree86/common/xf86InPriv.h |2 + hw/xfree86/common/xf86Priv.h |1 + hw/xfree86/common/xf86VGAarbiter.c | 12 -- hw/xfree86/common/xf86VGAarbiterPriv.h |4 +- hw/xfree86/ramdac/xf86Cursor.c | 50 ++- hw/xnest/Cursor.c |6 ++- hw/xnest/XNCursor.h|4 +- hw/xquartz/xpr/xprCursor.c |9 +++-- hw/xwin/wincursor.c|6 ++- mi/mipointer.c | 57 mi/mipointer.h |4 +- mi/misprite.c | 12 +++--- 14 files changed, 112 insertions(+), 61 deletions(-) diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 5896f22..5b1af27 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -73,6 +73,8 @@ #include inputstr.h #include xf86Xinput.h +#include xf86InPriv.h + #include mi.h #include mipointer.h @@ -295,8 +297,10 @@ xf86SigioReadInput(int fd, void *closure) int errno_save = errno; InputInfoPtr pInfo = closure; +input_in_sigio = 1; pInfo-read_input(pInfo); +input_in_sigio = 0; errno = errno_save; } diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c index 0071004..44b1b79 100644 --- a/hw/xfree86/common/xf86Globals.c +++ b/hw/xfree86/common/xf86Globals.c @@ -197,3 +197,5 @@ Bool xf86VidModeAllowNonLocal = FALSE; #endif RootWinPropPtr *xf86RegisteredPropertiesTable = NULL; Bool xorgHWAccess = FALSE; + +volatile sig_atomic_t input_in_sigio; diff --git a/hw/xfree86/common/xf86InPriv.h b/hw/xfree86/common/xf86InPriv.h index 5826ac3..2fa2318 100644 --- a/hw/xfree86/common/xf86InPriv.h +++ b/hw/xfree86/common/xf86InPriv.h @@ -33,6 +33,8 @@ #ifndef _xf86InPriv_h #define _xf86InPriv_h +extern volatile sig_atomic_t input_in_sigio; + /* xf86Globals.c */ extern InputDriverPtr *xf86InputDriverList; extern int xf86NumInputDrivers; diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h index 6c5efea..dcfc60f 100644 --- a/hw/xfree86/common/xf86Priv.h +++ b/hw/xfree86/common/xf86Priv.h @@ -35,6 +35,7 @@ #ifndef _XF86PRIV_H #define _XF86PRIV_H +#include signal.h #include xf86Privstr.h #include propertyst.h #include input.h diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c index b9b46f6..05383b0 100644 --- a/hw/xfree86/common/xf86VGAarbiter.c +++ b/hw/xfree86/common/xf86VGAarbiter.c @@ -938,25 +938,29 @@ VGAarbiterSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, return val; } -static void +static Bool VGAarbiterSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCur, int x, int y) { +Bool ret; SPRITE_PROLOG; VGAGet(pScreen); -PointPriv-spriteFuncs-SetCursor(pDev, pScreen, pCur, x, y); +ret = PointPriv-spriteFuncs-SetCursor(pDev, pScreen, pCur, x, y); VGAPut(); SPRITE_EPILOG; +return ret; } -static void +static Bool VGAarbiterSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { +Bool ret; SPRITE_PROLOG; VGAGet(pScreen); -PointPriv-spriteFuncs-MoveCursor(pDev, pScreen, x, y); +ret = PointPriv-spriteFuncs-MoveCursor(pDev, pScreen, x, y); VGAPut(); SPRITE_EPILOG; +return ret; } static Bool diff --git a/hw/xfree86/common/xf86VGAarbiterPriv.h b/hw/xfree86/common/xf86VGAarbiterPriv.h index ebc8854..963a595 100644 --- a/hw/xfree86/common/xf86VGAarbiterPriv.h +++ b/hw/xfree86/common/xf86VGAarbiterPriv.h @@ -248,9 +248,9 @@ static Bool VGAarbiterSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr
don't pull yet, but read: pull request for abi/api changes
Hi Keith, Can you check this pull request and confirm you will pull it when asked? I need to make the changes to at least the main 4-5 drivers before you pull this so stuff still builds, then I can go do a tinderbox lighting pass afterwards, I'd also add the ABI bump from Aaron on top in a real pull req, and probably squash all of these into one. But first I want to make sure you aren't going to pull a late review on things first, and I spend time doing pointless changes to drivers. Dave. The following changes since commit 9bc53d8cb04af2be3feeebb1b10774c2d599a76b: dri2: SProcDRI2Connect - send the response. (2012-05-22 21:19:40 -0700) are available in the git repository at: ssh://people.freedesktop.org/~airlied/xserver for-keithp Dave Airlie (27): xserver: remove index from CloseScreen (API/ABI breakage) xf86: change EnterVT/LeaveVT to take a ScrnInfoPtr (ABI/API break) xf86: modify FreeScreen callback to take pScrn instead of index. (ABI/API) xf86: move AdjustFrame to passing ScrnInfoPtr (ABI/API) xf86: migrate SwitchMode to taking ScrnInfoPtr (ABI/API) xf86: migrate ValidMode callback to ScrnInfoPtr (ABI/API) xf86/exa: migrate index to screen types for EnableDisableFBAccess (ABI/API) xf86: migrate ChangeGamma from index to ScrnInfoPtr (ABI/API) (v2) xf86: migrate SetDGAMode from index to ScrnInfoPtr (ABI/API) xf86: migrate PMEvent to a ScrnInfoPtr (ABI/API) xf86: migrate PointerMoved from index to ScrnInfoPtr (ABI/API) xserver: drop index argument to ScreenInit (ABI/API) (v2) int10: cleanup one unnecessary use of xf86Screens int10/vbe: don't use xf86Screens. (ABI) (v2) vbe: don't use index for VBEInterpretPanelID (API) int10/linux: drop use of xf86Screens from linux specific int10 code ddc: change API to take ScrnInfoPtr (v2) xf86/common: remove some more pScrn-pScreen uses xserver: convert block/wakeup handlers to passing ScreenPtr (ABI/API) (v2) xf86: fix xf86IsScreenPrimary interface to take a pScrn (API/ABI) xf86: make xf86DeleteScreen take a ScrnInfoPtr xf86/xv: remove scrnIndexfrom xf86FindXvOptions. dix: make Create/Free scratch pixmaps take a ScreenPtr xf86: add a define to denote the new non-index interfaces are being used dix/gc: consolidate GC object creation in one place xf86i2c: add pscrn for drivers to use xf86: xf86ClearEntityListForScreen should take a pScrn Xext/panoramiX.c |4 +- Xext/shm.c|4 +- Xext/xvdix.h |2 +- Xext/xvmain.c |8 +- Xext/xvmc.c |4 +- composite/compalloc.c |5 +- composite/compinit.c |4 +- dix/dispatch.c|5 +- dix/dixutils.c| 10 +-- dix/gc.c | 110 - dix/main.c|6 +- dix/pixmap.c | 10 ++-- doc/Xserver-spec.xml | 29 +++- exa/exa.c | 16 ++--- exa/exa.h |2 +- exa/exa_offscreen.c |4 +- exa/exa_priv.h|2 +- fb/fb.h |2 +- fb/fboverlay.c|2 +- fb/fboverlay.h|2 +- fb/fbscreen.c |2 +- glx/glxdri.c | 14 ++-- glx/glxdri2.c | 14 ++-- glx/glxscreens.c |4 +- glx/glxscreens.h |2 +- hw/dmx/dmxextension.c |2 +- hw/dmx/dmxscrinit.c | 26 hw/dmx/dmxscrinit.h |4 +- hw/dmx/input/dmxconsole.c |4 +- hw/kdrive/src/kdrive.c|6 +- hw/kdrive/src/kdrive.h|8 +- hw/kdrive/src/kinput.c|4 +- hw/kdrive/src/kxv.c |4 +- hw/vfb/InitOutput.c | 10 ++-- hw/xfree86/common/xf86.h | 10 ++- hw/xfree86/common/xf86Bus.c |7 +- hw/xfree86/common/xf86Cursor.c| 13 ++-- hw/xfree86/common/xf86DGA.c | 20 +++--- hw/xfree86/common/xf86DPMS.c | 14 ++-- hw/xfree86/common/xf86Events.c| 12 ++-- hw/xfree86/common/xf86Helper.c| 23 +++ hw/xfree86/common/xf86Init.c |4 +- hw/xfree86/common/xf86Mode.c |4 +- hw/xfree86/common/xf86PM.c| 14 ++-- hw/xfree86/common/xf86Priv.h |2 +- hw/xfree86/common/xf86RandR.c |8 +-
[PULL: xserver] dri2: Add DRI2GetParam request
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 The following changes since commit ba883a0f3435d5da82a8134e696c4905eea70f23: Merge remote-tracking branch 'jeremyhu/master' (2012-05-17 16:49:19 -0700) are available in the git repository at: git://people.freedesktop.org/~chadversary/xorg.xserver.git dri2getparam for you to fetch changes up to fba43ee7700e8c321a4feab4129015804817be80: dri2: Add DRI2GetParam request (2012-05-21 14:38:05 -0700) - Chad Versace (1): dri2: Add DRI2GetParam request configure.ac |2 +- hw/xfree86/dri2/dri2.c| 37 + hw/xfree86/dri2/dri2.h| 26 +- hw/xfree86/dri2/dri2ext.c | 33 + 4 files changed, 96 insertions(+), 2 deletions(-) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJPxQIXAAoJEAIvNt057x8iDxAQAKNEuMocAkO8553zCHoR6E84 xwRuw+FSaGJa4M6H5NaPSzPAxVT8OuW6jpQU+SmJkXJX/rJ5/J7S1nIN1s8ZWg6I t8q25ZZwUIF9Lhdjbeltkei23f+VbP7om6pvt4ZphXHt1jDgmG/d3toyfjCNWMJQ a6fqEAeF0r8DX0MYiOzUTwP6VQu2deAvXD2cLAf4VLUx4vvGqyonc5jdcILOC+sQ mnFofWzTK/CzDzrQ/HfogHZnPvwDDQ78p20nF5zRFdcVUlZxDAHLMdjEo0D/+EOA b13AADOPSgMxt1RgrzmkvXMkuQJAGIS0btJ2BzrLRJv3hCpGUw9opWaJaXns1NtZ BIYhz9+JEwPQRMbcbThjm6WcuM01MwrV0nei9iiWgM3UyFUsrO79Km3M0lZxU9Uq sen9AdW9mYJWuFeU1+0DvkI5vylubvE8vUjTFMtp+XUYhfDr165d0othRPpYoDym aX9pnrt9lZ3J8S+yNAX6e2thhSEZKVbML9QK0DQdiGObDJdAomq5P5ojaC9nD0bl Lb+gTykXfsCxCF8YI4vBiubUawW5PhzlIPfHpWNNbxxD+Mxduc9/iyxlLnhdTx0V tunP1vrghnOD8S4Aj1DUA9qx5ej1mo5YtcGLrNfddkNp4FbdIC6cmaslYY4iny1k u9EGaQ0Z2GAsQxwRkY7y =afY8 -END PGP SIGNATURE- ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: don't pull yet, but read: pull request for abi/api changes
Dave Airlie airl...@gmail.com writes: But first I want to make sure you aren't going to pull a late review on things first, and I spend time doing pointless changes to drivers. Will do. I'm sick today though, so I won't be able to think clearly enough until tomorrow. -keith -- keith.pack...@intel.com pgpqJgkdSGFgu.pgp Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PULL: xserver] dri2: Add DRI2GetParam request
Chad Versace chad.vers...@linux.intel.com writes: dri2: Add DRI2GetParam request (2012-05-21 14:38:05 -0700) I don't see any default setting for ds-GetParam; it looks like older drivers will just crash? -- keith.pack...@intel.com pgpP2eK71UJ0s.pgp Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PULL: xserver] dri2: Add DRI2GetParam request
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 05/29/2012 10:34 AM, Keith Packard wrote: Chad Versace chad.vers...@linux.intel.com writes: dri2: Add DRI2GetParam request (2012-05-21 14:38:05 -0700) I don't see any default setting for ds-GetParam; it looks like older drivers will just crash? You're right. All the other DRI2 functions fall back to some default behavior if ds-DRI2Whatever is null. I've updated my patch to fall back to this: *is_param_recognized = FALSE; return Success; After the change, I verified the build, but, since the change was so small, did not rerun tests. What is the correct next action? Do I need to resubmit patches or pull request? - Chad Versace chad.vers...@linux.intel.com -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJPxRakAAoJEAIvNt057x8iHxcQAJvIzoEwQ04smdzvplNBBO+o F0b35JFFLEdrjNGOT/ZZhdVSLI0Wv+up16pjx0HgNKOJtt/q6L6qiUZJT7jeraJh uFHEDr6IkAX83o62KRGqjsXczdAM3R+oEFuxJn4vRB3isedXZlKUKkSzibVOrf0J /jQ2kqypYWRkeqpfG0HFeYAIQZhtILANXijMoQRyx+yn4veEbkMuoIowT/36XUVG sIXaYGBYSPFdphjiwNwIJ6Ww1/Psqya5f5Yi+lGhFjMUIjdQicA2UaRS9NE9crUX UJmAnNlrEObue9uX1VwGKZ/vX2XlLBTH3VO4r4JDyPXW4B3BKCfPIwsNd5N3iEMr eBXHIyLXSbXSeEfxoKvbNZMQUrhRxri1BZYKLSHS1D2pkj35l5YSSIf9/p5Gkdni 8GGGsjW11FAE4rvgWY2LBwdS85zkp0Emfs/wKj+9uVQAQf7go66eP6QzEL1X4O9D MCWHnAInyN5g+7TbkcUxQHwWe8obA3JdXx3rZGkbKhRMZ27UqsfdBFyObQNEi1Tx WCfkiaJFk/cjzqJxo0X8vkKlCRpAPVHUflnal+Ljt6kmL4cNS9DK+uzrQ37RjdIu ajuqWR5DlhgJDfa2wRXPp+g3BRNBK/UnGhSctbw9bao838YDZKdhY9XxENDg+W6e YajFGK/aR35t8ufupcfO =eQu5 -END PGP SIGNATURE- ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PULL: xserver] dri2: Add DRI2GetParam request
Chad Versace chad.vers...@linux.intel.com writes: What is the correct next action? Do I need to resubmit patches or pull request? I'd rather just see the patch on the list and add my reviewed-by if it looks good. -- keith.pack...@intel.com pgpe0q3LJhEQ2.pgp Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PULL: xserver master] SPARC build fix, documentation fixes
These are now on server-1.12-branch and will be in 1.12.2.901: 19126c0..97cae5e server-1.12-branch - server-1.12-branch On May 21, 2012, at 13:37, Alan Coopersmith alan.coopersm...@oracle.com wrote: The following changes since commit ba883a0f3435d5da82a8134e696c4905eea70f23: Merge remote-tracking branch 'jeremyhu/master' (2012-05-17 16:49:19 -0700) are available in the git repository at: git://people.freedesktop.org/~alanc/xserver.git master for you to fetch changes up to 5a3a98fcb799c2ac8fa7494645ad9030f1cac837: Undocument Font Module loading (2012-05-18 21:34:20 -0700) The SPARC compiler.h patch I'd sent with the review requests is purposely omitted while we investigate an internal bug report related to it. Jeremy: all of these should be suitable for the 1.12 branch - the important one for us is the sbusPaletteKey build fix, but bringing the docs a little closer to matching reality is nice to have too. Alan Coopersmith (4): Convert sbusPaletteKey to latest DevPrivate API cvt man page should use Hz, not kHz, for vertical refresh rate Undocument mandatory loadable modules Undocument Font Module loading hw/xfree86/common/xf86sbusBus.c |8 ++-- hw/xfree86/doc/ddxDesign.xml| 25 - hw/xfree86/utils/man/cvt.man|4 ++-- 3 files changed, 8 insertions(+), 29 deletions(-) -- -Alan Coopersmith- alan.coopersm...@oracle.com Oracle Solaris Engineering - http://blogs.oracle.com/alanc ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel