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

xorg-server: Changes to 'ubuntu+1'



 ChangeLog                           |  149 ++++++++++++++++++++++++++++++++++++
 Xi/xibarriers.c                     |    9 +-
 configure.ac                        |    6 -
 debian/changelog                    |    9 +-
 hw/xfree86/common/xf86DPMS.c        |   45 +++++++---
 hw/xfree86/common/xf86platformBus.c |    7 +
 hw/xfree86/modes/xf86Crtc.c         |   18 +---
 hw/xfree86/modes/xf86RandR12.c      |   22 +++++
 hw/xquartz/GL/capabilities.c        |    4 
 m4/xorg-tls.m4                      |    2 
 os/log.c                            |    3 
 os/strndup.c                        |    4 
 randr/randrstr.h                    |    6 +
 randr/rrprovider.c                  |    2 
 test/signal-logging.c               |    8 +
 15 files changed, 257 insertions(+), 37 deletions(-)

New commits:
commit e19a356374f7d849461529ed7f67d4ffd33f27e9
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Mar 6 15:11:58 2013 +0100

    release to canonical-x

diff --git a/debian/changelog b/debian/changelog
index 65a2e44..a994d87 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,24 @@
+xorg-server (2:1.14.0-0ubuntu0.1) raring; urgency=low
+
+  [ Timo Aaltonen ]
+  * Merge from unreleased debian git.
+  * 500_pointer_barrier_thresholds.diff: Dropped, implemented upstream.
+  * Dropped upstreamed patches:
+    165_man_xorg_conf_no_device_ident.patch
+    233-xf86events-valgrind.patch
+    236-use-fbdev-for-poulsbo-oaktrail-medfield.patch
+
+  [ Bryce Harrington ]
+  * 157_check_null_modes.patch: Dropped, patch included upstream.
+  * 162_null_crtc_in_rotation.patch: Dropped, no longer relevant
+    (see LP: 139990)
+  * 167_nullptr_xisbread.patch: Dropped, fixed differently upstream.
+
+  [ Maarten Lankhorst ]
+  * Update to 1.14.0 release.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 06 Mar 2013 14:49:21 +0100
+
 xorg-server (2:1.14.0-1) UNRELEASED; urgency=low
 
   [ Maarten Lankhorst ]
@@ -25,24 +46,6 @@ xorg-server (2:1.14.0-1) UNRELEASED; urgency=low
 
  -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 22 Aug 2012 11:12:17 -0400
 
-xorg-server (2:1.13.99.902-0ubuntu1) UNRELEASED; urgency=low
-
-  [ Timo Aaltonen ]
-  * Merge from unreleased debian git.
-  * 500_pointer_barrier_thresholds.diff: Dropped, implemented upstream.
-  * Dropped upstreamed patches:
-    165_man_xorg_conf_no_device_ident.patch
-    233-xf86events-valgrind.patch
-    236-use-fbdev-for-poulsbo-oaktrail-medfield.patch
-
-  [ Bryce Harrington ]
-  * 157_check_null_modes.patch: Dropped, patch included upstream.
-  * 162_null_crtc_in_rotation.patch: Dropped, no longer relevant
-    (see LP: 139990)
-  * 167_nullptr_xisbread.patch: Dropped, fixed differently upstream.
-
- -- Timo Aaltonen <tjaalton@ubuntu.com>  Thu, 07 Feb 2013 20:25:26 +0200
-
 xorg-server (2:1.13.1.901-0ubuntu1) raring; urgency=low
 
   * Merge from unreleased debian git.

commit 546d012b6c5aa07f64fb09f53fd96335f6d5b711
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Mar 6 14:35:08 2013 +0100

    bump changelogs

diff --git a/ChangeLog b/ChangeLog
index e428d98..6169721 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,152 @@
+commit 103b77c59e3638a45179bf6d7908f5c738d2d872
+Author: Keith Packard <keithp@keithp.com>
+Date:   Tue Mar 5 22:31:17 2013 -0800
+
+    Version bumped to 1.14
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 6238bd68bd71323f8b4f1808f34dabe2ae447fe3
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Tue Mar 5 13:04:46 2013 -0800
+
+    DPMS: include GPU screens in DPMS code
+    
+    Otherwise, displays driven by GPU screens remain on all the time.
+    
+    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit dd4ab8b572956f9457616869d6e383c8ed964c73
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Mar 5 10:14:29 2013 +1000
+
+    Xi: force dtime to 0 on the first BarrierHit
+    
+    dtime to the previous event is 0 on the first BarrierHit event.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 604169af8b67afc74a292cdb9070a3a1f2d7c536
+Merge: 8f4640b 6ea59dc
+Author: Keith Packard <keithp@keithp.com>
+Date:   Mon Mar 4 21:09:59 2013 -0800
+
+    Merge commit '6ea59dc2d8887102bfd8d7c838d2e7ab17645aec'
+
+commit 6ea59dc2d8887102bfd8d7c838d2e7ab17645aec
+Author: Jasper St. Pierre <jstpierre@mecheye.net>
+Date:   Sun Mar 3 04:50:55 2013 -0500
+
+    xibarriers: Remove accidental use of the comma operator
+    
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8f4640bdb9d3988148e09a08d2c7e3bab1d538d6
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jan 9 12:58:28 2013 +1000
+
+    randr: cleanup provider properly
+    
+    So in the cold plug server shutdown case, we reap the resources
+    before we call CloseScreen handlers, so the config->randr_provider
+    is a dangling pointer when the xf86CrtcCloseScreen handler is called,
+    
+    however in the hot screen unplug case, we can't rely on automatically
+    reaped resources, so we need to clean up the provider in the xf86CrtcCloseScreen
+    case.
+    
+    This patch provides a cleanup callback from the randr provider removal
+    into the DDX so it can cleanup properly, this then gets called by the automatic
+    code for cold plug, or if hot unplug it gets called explicitly.
+    
+    Fixes a number of random server crashes on shutdown
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58174
+    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=891140
+    
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 3ec35c45ca17f5ed6fd02c50fc49ae7b8d128dcb
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jan 9 12:53:14 2013 +1000
+
+    xf86: actually set the compat output in the failure case
+    
+    The previous fix for the previous fix, didn't fully work,
+    
+    If we don't set compat_output we end up doing derferences
+    of arrays with -1, leading to valgrind warnings.
+    
+    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit da8ee26023fc2868fe970471195a5f3c86fb574b
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jan 9 12:51:45 2013 +1000
+
+    xfree86/hotplug: cleanup properly if the screen fails to initialise
+    
+    Due to another bug, the modesetting/udl driver would fail to init properly
+    on hotplug, when it did the code didn't clean up properly, and on removing
+    the device the server could crash.
+    
+    Found in F18 testing.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+    Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
+
+commit 90642948cc78834d95f7a3bddaac7ff77b68ed7e
+Merge: 9a35d42 eda7dbf
+Author: Keith Packard <keithp@keithp.com>
+Date:   Thu Feb 14 11:05:48 2013 -0800
+
+    Merge remote-tracking branch 'jeremyhu/master'
+
+commit 9a35d4240e2aa91ac104f0f9f86f83ff9a2d3d04
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Feb 14 16:31:13 2013 +1000
+
+    os: fix pnprintf OOB buffer read for unterminated length modifiers
+    
+    Format strings with length modifiers but missing format specifier like "%0"
+    will read one byte past the array size.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit eda7dbff5a9f35fefe1e3dedacb82daadbf5945e
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Sat Feb 9 20:53:02 2013 -0800
+
+    XORG_TLS: Pick the first option that works (ie: prefer __thread)
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+
+commit 5da82f872daf25939a8fa04f1561b01f0315a623
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Sat Feb 9 20:40:10 2013 -0800
+
+    os: Ensure <dix-config.h> is included in strndup.c
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 67eaf4b46f678bc904f47dfcab6655e170d843e0
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Sat Feb 9 20:34:33 2013 -0800
+
+    XQuartz: Ensure <dix-config.h> is included in capabilities.c
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
 commit 955d434f4d755d00a24ae4068b9957765989d672
 Author: Keith Packard <keithp@keithp.com>
 Date:   Wed Feb 13 21:39:37 2013 -0800
diff --git a/debian/changelog b/debian/changelog
index 13b7181..496fb70 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.13.99.902-1) UNRELEASED; urgency=low
+xorg-server (2:1.14.0-1) UNRELEASED; urgency=low
 
   [ Maarten Lankhorst ]
   * New upstream release

commit 103b77c59e3638a45179bf6d7908f5c738d2d872
Author: Keith Packard <keithp@keithp.com>
Date:   Tue Mar 5 22:31:17 2013 -0800

    Version bumped to 1.14
    
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/configure.ac b/configure.ac
index 53335b1..6e1ff65 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,9 +26,9 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.13.99.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2013-02-12"
-RELEASE_NAME="Ginger Beer"
+AC_INIT([xorg-server], 1.14.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2013-03-05"
+RELEASE_NAME="Keemun Mao Feng"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 

commit 6238bd68bd71323f8b4f1808f34dabe2ae447fe3
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Mar 5 13:04:46 2013 -0800

    DPMS: include GPU screens in DPMS code
    
    Otherwise, displays driven by GPU screens remain on all the time.
    
    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c
index ef4a2c1..3f1e142 100644
--- a/hw/xfree86/common/xf86DPMS.c
+++ b/hw/xfree86/common/xf86DPMS.c
@@ -130,6 +130,19 @@ DPMSClose(ScreenPtr pScreen)
     return pScreen->CloseScreen(pScreen);
 }
 
+static void
+DPMSSetScreen(ScrnInfoPtr pScrn, int level)
+{
+    ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
+    DPMSPtr pDPMS = dixLookupPrivate(&pScreen->devPrivates, DPMSKey);
+
+    if (pDPMS && pScrn->DPMSSet && pDPMS->Enabled && pScrn->vtSema) {
+        xf86VGAarbiterLock(pScrn);
+        pScrn->DPMSSet(pScrn, level, 0);
+        xf86VGAarbiterUnlock(pScrn);
+    }
+}
+
 /*
  * DPMSSet --
  *	Device dependent DPMS mode setting hook.  This is called whenever
@@ -139,8 +152,6 @@ int
 DPMSSet(ClientPtr client, int level)
 {
     int rc, i;
-    DPMSPtr pDPMS;
-    ScrnInfoPtr pScrn;
 
     DPMSPowerLevel = level;
 
@@ -155,17 +166,23 @@ DPMSSet(ClientPtr client, int level)
 
     /* For each screen, set the DPMS level */
     for (i = 0; i < xf86NumScreens; i++) {
-        pScrn = xf86Screens[i];
-        pDPMS = dixLookupPrivate(&screenInfo.screens[i]->devPrivates, DPMSKey);
-        if (pDPMS && pScrn->DPMSSet && pDPMS->Enabled && pScrn->vtSema) {
-            xf86VGAarbiterLock(pScrn);
-            pScrn->DPMSSet(pScrn, level, 0);
-            xf86VGAarbiterUnlock(pScrn);
-        }
+        DPMSSetScreen(xf86Screens[i], level);
+    }
+    for (i = 0; i < xf86NumGPUScreens; i++) {
+        DPMSSetScreen(xf86GPUScreens[i], level);
     }
     return Success;
 }
 
+static Bool
+DPMSSupportedOnScreen(ScrnInfoPtr pScrn)
+{
+    ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
+    DPMSPtr pDPMS = dixLookupPrivate(&pScreen->devPrivates, DPMSKey);
+
+    return pDPMS && pScrn->DPMSSet;
+}
+
 /*
  * DPMSSupported --
  *	Return TRUE if any screen supports DPMS.
@@ -174,8 +191,6 @@ Bool
 DPMSSupported(void)
 {
     int i;
-    DPMSPtr pDPMS;
-    ScrnInfoPtr pScrn;
 
     if (DPMSKey == NULL) {
         return FALSE;
@@ -183,9 +198,11 @@ DPMSSupported(void)
 
     /* For each screen, check if DPMS is supported */
     for (i = 0; i < xf86NumScreens; i++) {
-        pScrn = xf86Screens[i];
-        pDPMS = dixLookupPrivate(&screenInfo.screens[i]->devPrivates, DPMSKey);
-        if (pDPMS && pScrn->DPMSSet)
+        if (DPMSSupportedOnScreen(xf86Screens[i]))
+            return TRUE;
+    }
+    for (i = 0; i < xf86NumGPUScreens; i++) {
+        if (DPMSSupportedOnScreen(xf86GPUScreens[i]))
             return TRUE;
     }
     return FALSE;

commit dd4ab8b572956f9457616869d6e383c8ed964c73
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 5 10:14:29 2013 +1000

    Xi: force dtime to 0 on the first BarrierHit
    
    dtime to the previous event is 0 on the first BarrierHit event.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c
index a225cbc..fccab86 100644
--- a/Xi/xibarriers.c
+++ b/Xi/xibarriers.c
@@ -435,6 +435,7 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
     dir = barrier_get_direction(current_x, current_y, x, y);
 
     while (dir != 0) {
+        int new_sequence;
         struct PointerBarrierDevice *pbd;
 
         c = barrier_find_nearest(cs, master, dir, current_x, current_y, x, y);
@@ -444,6 +445,8 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
         nearest = &c->barrier;
 
         pbd = GetBarrierDevice(c, master->id);
+        new_sequence = !pbd->hit;
+
         pbd->seen = TRUE;
         pbd->hit = TRUE;
 
@@ -466,7 +469,7 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
         ev.event_id = pbd->barrier_event_id;
         ev.barrierid = c->id;
 
-        ev.dt = ms - pbd->last_timestamp;
+        ev.dt = new_sequence ? 0 : ms - pbd->last_timestamp;
         ev.window = c->window;
         pbd->last_timestamp = ms;
 

commit 6ea59dc2d8887102bfd8d7c838d2e7ab17645aec
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Sun Mar 3 04:50:55 2013 -0500

    xibarriers: Remove accidental use of the comma operator
    
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c
index 7b7b83f..a225cbc 100644
--- a/Xi/xibarriers.c
+++ b/Xi/xibarriers.c
@@ -676,8 +676,8 @@ BarrierFreeBarrier(void *data, XID id)
             continue;
 
         ev.deviceid = dev->id;
-        ev.event_id = pbd->barrier_event_id,
-        ev.dt = ms - pbd->last_timestamp,
+        ev.event_id = pbd->barrier_event_id;
+        ev.dt = ms - pbd->last_timestamp;
 
         GetSpritePosition(dev, &root_x, &root_y);
         ev.root_x = root_x;

commit 8f4640bdb9d3988148e09a08d2c7e3bab1d538d6
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jan 9 12:58:28 2013 +1000

    randr: cleanup provider properly
    
    So in the cold plug server shutdown case, we reap the resources
    before we call CloseScreen handlers, so the config->randr_provider
    is a dangling pointer when the xf86CrtcCloseScreen handler is called,
    
    however in the hot screen unplug case, we can't rely on automatically
    reaped resources, so we need to clean up the provider in the xf86CrtcCloseScreen
    case.
    
    This patch provides a cleanup callback from the randr provider removal
    into the DDX so it can cleanup properly, this then gets called by the automatic
    code for cold plug, or if hot unplug it gets called explicitly.
    
    Fixes a number of random server crashes on shutdown
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58174
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=891140
    
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index b52b6ef..f9ae465 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -743,16 +743,8 @@ xf86CrtcCloseScreen(ScreenPtr screen)
     }
     /* detach any providers */
     if (config->randr_provider) {
-        if (config->randr_provider->offload_sink) {
-            DetachOffloadGPU(screen);
-            config->randr_provider->offload_sink = NULL;
-        }
-        else if (config->randr_provider->output_source) {
-            DetachOutputGPU(screen);
-            config->randr_provider->output_source = NULL;
-        }
-        else if (screen->current_master)
-            DetachUnboundGPU(screen);
+        RRProviderDestroy(config->randr_provider);
+        config->randr_provider = NULL;
     }
     return TRUE;
 }
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 3530abf..01fc9c5 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1885,6 +1885,27 @@ xf86RandR13ConstrainCursorHarder(DeviceIntPtr dev, ScreenPtr screen, int mode, i
     }
 }
 
+static void
+xf86RandR14ProviderDestroy(ScreenPtr screen, RRProviderPtr provider)
+{
+    ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
+    
+    if (config->randr_provider == provider) {
+        if (config->randr_provider->offload_sink) {
+            DetachOffloadGPU(screen);
+            config->randr_provider->offload_sink = NULL;
+        }
+        else if (config->randr_provider->output_source) {
+            DetachOutputGPU(screen);
+            config->randr_provider->output_source = NULL;
+        }
+        else if (screen->current_master)
+            DetachUnboundGPU(screen);
+    }
+    config->randr_provider = NULL;
+}
+
 static Bool
 xf86RandR12Init12(ScreenPtr pScreen)
 {
@@ -1914,6 +1935,7 @@ xf86RandR12Init12(ScreenPtr pScreen)
     rp->rrProviderSetProperty = xf86RandR14ProviderSetProperty;
     rp->rrProviderGetProperty = xf86RandR14ProviderGetProperty;
     rp->rrCrtcSetScanoutPixmap = xf86CrtcSetScanoutPixmap;
+    rp->rrProviderDestroy = xf86RandR14ProviderDestroy;
 
     pScrn->PointerMoved = xf86RandR12PointerMoved;
     pScrn->ChangeGamma = xf86RandR12ChangeGamma;
diff --git a/randr/randrstr.h b/randr/randrstr.h
index f52d0f2..2517479 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -232,6 +232,9 @@ typedef Bool (*RRProviderSetOffloadSinkProcPtr)(ScreenPtr pScreen,
                                          RRProviderPtr offload_sink);
 
 
+typedef void (*RRProviderDestroyProcPtr)(ScreenPtr pScreen,
+                                         RRProviderPtr provider);
+
 /* These are for 1.0 compatibility */
 
 typedef struct _rrRefresh {
@@ -330,6 +333,9 @@ typedef struct _rrScrPriv {
     Bool discontiguous;
 
     RRProviderPtr provider;
+
+    RRProviderDestroyProcPtr rrProviderDestroy;
+
 } rrScrPrivRec, *rrScrPrivPtr;
 
 extern _X_EXPORT DevPrivateKeyRec rrPrivKeyRec;
diff --git a/randr/rrprovider.c b/randr/rrprovider.c
index c4ed515..b321e62 100644
--- a/randr/rrprovider.c
+++ b/randr/rrprovider.c
@@ -389,6 +389,8 @@ RRProviderDestroyResource (pointer value, XID pid)
     {
         rrScrPriv(pScreen);
 
+        if (pScrPriv->rrProviderDestroy)
+            (*pScrPriv->rrProviderDestroy)(pScreen, provider);
         pScrPriv->provider = NULL;
     }
     free(provider);

commit 3ec35c45ca17f5ed6fd02c50fc49ae7b8d128dcb
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jan 9 12:53:14 2013 +1000

    xf86: actually set the compat output in the failure case
    
    The previous fix for the previous fix, didn't fully work,
    
    If we don't set compat_output we end up doing derferences
    of arrays with -1, leading to valgrind warnings.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index b3ded5a..b52b6ef 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1848,8 +1848,10 @@ SetCompatOutput(xf86CrtcConfigPtr config)
     }
 
     /* All outputs are disconnected, select one to fake */
-    if (!output && config->num_output)
-        output = config->output[0];
+    if (!output && config->num_output) {
+        config->compat_output = 0;
+        output = config->output[config->compat_output];
+    }
 
     return output;
 }

commit da8ee26023fc2868fe970471195a5f3c86fb574b
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jan 9 12:51:45 2013 +1000

    xfree86/hotplug: cleanup properly if the screen fails to initialise
    
    Due to another bug, the modesetting/udl driver would fail to init properly
    on hotplug, when it did the code didn't clean up properly, and on removing
    the device the server could crash.
    
    Found in F18 testing.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Reviewed-by: Aaron Plattner <aplattner@nvidia.com>

diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
index 0525e39..5866333 100644
--- a/hw/xfree86/common/xf86platformBus.c
+++ b/hw/xfree86/common/xf86platformBus.c
@@ -438,7 +438,12 @@ xf86platformAddDevice(int index)
     }
 
    scr_index = AddGPUScreen(xf86GPUScreens[i]->ScreenInit, 0, NULL);
-
+   if (scr_index == -1) {
+       xf86DeleteScreen(xf86GPUScreens[i]);
+       xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL);
+       xf86NumGPUScreens = old_screens;
+       return -1;
+   }
    dixSetPrivate(&xf86GPUScreens[i]->pScreen->devPrivates,
                  xf86ScreenKey, xf86GPUScreens[i]);
 

commit 9a35d4240e2aa91ac104f0f9f86f83ff9a2d3d04
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 14 16:31:13 2013 +1000

    os: fix pnprintf OOB buffer read for unterminated length modifiers
    
    Format strings with length modifiers but missing format specifier like "%0"
    will read one byte past the array size.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/os/log.c b/os/log.c
index 2697ace..95bd8cc 100644
--- a/os/log.c
+++ b/os/log.c
@@ -304,6 +304,9 @@ pnprintf(char *string, size_t size, const char *f, va_list args)
         while (f_idx < f_len && ((f[f_idx] >= '0' && f[f_idx] <= '9') || f[f_idx] == '.'))
             f_idx++;
 
+        if (f_idx >= f_len)
+            break;
+
         switch (f[f_idx]) {
         case 's':
             string_arg = va_arg(args, char*);
diff --git a/test/signal-logging.c b/test/signal-logging.c
index 1ef17af..e0eb810 100644
--- a/test/signal-logging.c
+++ b/test/signal-logging.c
@@ -199,6 +199,14 @@ static void logging_format(void)
     read_log_msg(logmsg);
     assert(strcmp(logmsg, "(EE) substituted string\n") == 0);
 
+    /* Invalid format */
+#warning Ignore compiler warning below "lacks type at end of format".  This is intentional.
+    LogMessageVerbSigSafe(X_ERROR, -1, "%4", 4);
+    read_log_msg(logmsg);
+    assert(strcmp(logmsg, "(EE) ") == 0);
+    LogMessageVerbSigSafe(X_ERROR, -1, "\n");
+    fseek(f, 0, SEEK_END);
+
     /* number substitution */
     ui = 0;
     do {

commit eda7dbff5a9f35fefe1e3dedacb82daadbf5945e
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Sat Feb 9 20:53:02 2013 -0800

    XORG_TLS: Pick the first option that works (ie: prefer __thread)
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

diff --git a/m4/xorg-tls.m4 b/m4/xorg-tls.m4
index 237fdcd..e04f1ff 100644
--- a/m4/xorg-tls.m4
+++ b/m4/xorg-tls.m4
@@ -28,7 +28,7 @@ AC_DEFUN([XORG_TLS], [
         ac_cv_tls=none
         keywords="__thread __declspec(thread)"
         for kw in $keywords ; do
-            AC_TRY_COMPILE([int $kw test;], [], ac_cv_tls=$kw)
+            AC_TRY_COMPILE([int $kw test;], [], ac_cv_tls=$kw ; break ;)
         done
     ])
     AC_MSG_RESULT($ac_cv_tls)

commit 5da82f872daf25939a8fa04f1561b01f0315a623
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Sat Feb 9 20:40:10 2013 -0800

    os: Ensure <dix-config.h> is included in strndup.c
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>

diff --git a/os/strndup.c b/os/strndup.c
index b604b9b..e0eddf1 100644
--- a/os/strndup.c
+++ b/os/strndup.c
@@ -27,6 +27,10 @@
  * SUCH DAMAGE.
  */
 
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>

commit 67eaf4b46f678bc904f47dfcab6655e170d843e0
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Sat Feb 9 20:34:33 2013 -0800

    XQuartz: Ensure <dix-config.h> is included in capabilities.c
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>

diff --git a/hw/xquartz/GL/capabilities.c b/hw/xquartz/GL/capabilities.c
index 4702595..5573629 100644
--- a/hw/xquartz/GL/capabilities.c
+++ b/hw/xquartz/GL/capabilities.c
@@ -20,6 +20,10 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <assert.h>


Reply to: