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

xorg-server: Changes to 'ubuntu'



 debian/changelog                                                          |   14 ++
 debian/patches/autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch |   63 ++++------
 debian/patches/config-add-no-removal.patch                                |   30 ++++
 debian/patches/series                                                     |    1 
 4 files changed, 71 insertions(+), 37 deletions(-)

New commits:
commit 8d4aa081a977bd4cc523998361e7edc233da1367
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Thu Mar 21 13:43:51 2013 +0100

    Refresh autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
    
    * Refresh autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
      - Unbind offload sink and render slave simultaneously.
        This prevents a use-after-free bug.
    * Add config-add-no-removal.patch (LP: #1157614)
      - Do not call device_remove when a device is hotplugged.
    * Refresh drm_device_keep_trying.patch
      - There is no need for drm master here. This might
        reopen LP #982889, but I do not think spinning here
       :is the correct answer.

diff --git a/debian/changelog b/debian/changelog
index dd234da..60017d8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+xorg-server (2:1.13.3-0ubuntu3) UNRELEASED; urgency=low
+
+  * Refresh autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
+    - Unbind offload sink and render slave simultaneously.
+      This prevents a use-after-free bug.
+  * Add config-add-no-removal.patch (LP: #1157614)
+    - Do not call device_remove when a device is hotplugged.
+  * Refresh drm_device_keep_trying.patch
+    - There is no need for drm master here. This might
+      reopen LP #982889, but I do not think spinning here
+     :is the correct answer.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 20 Mar 2013 15:36:15 +0000
+
 xorg-server (2:1.13.3-0ubuntu2) raring; urgency=low
 
   * Add patch to improve backtraces in the Xorg log.
diff --git a/debian/patches/autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch b/debian/patches/autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
index 2fc9c8c..b20ae31 100644
--- a/debian/patches/autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
+++ b/debian/patches/autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
@@ -16,8 +16,6 @@ This lets the gnome applet update if a usb device appears/disappears
  randr/rrscreen.c                    |  2 +-
  9 files changed, 40 insertions(+), 7 deletions(-)
 
-diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
-index 057b5b6..197bde8 100644
 --- a/hw/xfree86/common/xf86platformBus.c
 +++ b/hw/xfree86/common/xf86platformBus.c
 @@ -47,6 +47,7 @@
@@ -28,7 +26,7 @@ index 057b5b6..197bde8 100644
  int platformSlotClaimed;
  
  int xf86_num_platform_devices;
-@@ -462,7 +463,8 @@ xf86platformAddDevice(int index)
+@@ -470,7 +471,8 @@
     /* attach unbound to 0 protocol screen */
     AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
     xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]);
@@ -38,7 +36,7 @@ index 057b5b6..197bde8 100644
     return 0;
  }
  
-@@ -500,12 +502,13 @@ xf86platformRemoveDevice(int index)
+@@ -508,12 +510,13 @@
      xf86GPUScreens[i]->pScreen->CloseScreen(xf86GPUScreens[i]->pScreen);
  
      RemoveGPUScreen(xf86GPUScreens[i]->pScreen);
@@ -53,11 +51,9 @@ index 057b5b6..197bde8 100644
   out:
      return;
  }
-diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
-index 1263dd7..263a1dc 100644
 --- a/hw/xfree86/modes/xf86Crtc.c
 +++ b/hw/xfree86/modes/xf86Crtc.c
-@@ -3346,6 +3346,7 @@ void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master)
+@@ -3283,6 +3283,7 @@
          unbound = TRUE;
          AttachOffloadGPU(master->pScreen, pScrn->pScreen);
          slave_config->randr_provider->offload_sink = master_provider;
@@ -65,35 +61,41 @@ index 1263dd7..263a1dc 100644
      }
      if ((master->capabilities & RR_Capability_SourceOutput) &&
                 pScrn->capabilities & RR_Capability_SinkOutput) {
-@@ -3354,5 +3355,6 @@ void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master)
+@@ -3291,5 +3292,6 @@
              DetachUnboundGPU(pScrn->pScreen);
          AttachOutputGPU(master->pScreen, pScrn->pScreen);
          slave_config->randr_provider->output_source = master_provider;
 +	RRSetChanged(master->pScreen);
      }
  }
-diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
-index 01fc9c5..9d96c4f 100644
 --- a/hw/xfree86/modes/xf86RandR12.c
 +++ b/hw/xfree86/modes/xf86RandR12.c
-@@ -1895,10 +1895,12 @@ xf86RandR14ProviderDestroy(ScreenPtr screen, RRProviderPtr provider)
+@@ -1893,15 +1893,20 @@
+     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
+     
+     if (config->randr_provider == provider) {
++        BOOL detached = FALSE;
          if (config->randr_provider->offload_sink) {
              DetachOffloadGPU(screen);
              config->randr_provider->offload_sink = NULL;
-+	    RRSetChanged(screen);
++            RRSetChanged(screen);
++            detached = TRUE;
          }
-         else if (config->randr_provider->output_source) {
+-        else if (config->randr_provider->output_source) {
++        if (config->randr_provider->output_source) {
              DetachOutputGPU(screen);
              config->randr_provider->output_source = NULL;
-+	    RRSetChanged(screen);
++            RRSetChanged(screen);
++            detached = TRUE;
          }
-         else if (screen->current_master)
+-        else if (screen->current_master)
++        if (!detached && screen->current_master)
              DetachUnboundGPU(screen);
-diff --git a/randr/randr.c b/randr/randr.c
-index f0decfc..2aebe29 100644
+     }
+     config->randr_provider = NULL;
 --- a/randr/randr.c
 +++ b/randr/randr.c
-@@ -464,6 +464,28 @@ TellChanged(WindowPtr pWin, pointer value)
+@@ -464,6 +464,28 @@
      return WT_WALKCHILDREN;
  }
  
@@ -122,7 +124,7 @@ index f0decfc..2aebe29 100644
  /*
   * Something changed; send events and adjust pointer position
   */
-@@ -484,7 +506,7 @@ RRTellChanged(ScreenPtr pScreen)
+@@ -484,7 +506,7 @@
          mastersp = pScrPriv;
      }
  
@@ -131,11 +133,9 @@ index f0decfc..2aebe29 100644
          UpdateCurrentTimeIf();
          if (mastersp->configChanged) {
              mastersp->lastConfigTime = currentTime;
-diff --git a/randr/randrstr.h b/randr/randrstr.h
-index 55faaed..73132e3 100644
 --- a/randr/randrstr.h
 +++ b/randr/randrstr.h
-@@ -486,6 +486,10 @@ extern _X_EXPORT void
+@@ -486,6 +486,10 @@
   RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
  
  /* randr.c */
@@ -146,11 +146,9 @@ index 55faaed..73132e3 100644
  /*
   * Send all pending events
   */
-diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
-index e82d050..d0add47 100644
 --- a/randr/rrcrtc.c
 +++ b/randr/rrcrtc.c
-@@ -39,7 +39,7 @@ RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
+@@ -39,7 +39,7 @@
      if (pScreen) {
          rrScrPriv(pScreen);
  
@@ -159,11 +157,9 @@ index e82d050..d0add47 100644
          /*
           * Send ConfigureNotify on any layout change
           */
-diff --git a/randr/rrinfo.c b/randr/rrinfo.c
-index 1408d6f..fc57bd4 100644
 --- a/randr/rrinfo.c
 +++ b/randr/rrinfo.c
-@@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen,
+@@ -225,7 +225,7 @@
      pScrPriv->minHeight = minHeight;
      pScrPriv->maxWidth = maxWidth;
      pScrPriv->maxHeight = maxHeight;
@@ -172,11 +168,9 @@ index 1408d6f..fc57bd4 100644
      pScrPriv->configChanged = TRUE;
  }
  
-diff --git a/randr/rroutput.c b/randr/rroutput.c
-index 88781ba..195bef9 100644
 --- a/randr/rroutput.c
 +++ b/randr/rroutput.c
-@@ -36,7 +36,7 @@ RROutputChanged(RROutputPtr output, Bool configChanged)
+@@ -36,7 +36,7 @@
      output->changed = TRUE;
      if (pScreen) {
          rrScrPriv(pScreen);
@@ -185,11 +179,9 @@ index 88781ba..195bef9 100644
          if (configChanged)
              pScrPriv->configChanged = TRUE;
      }
-diff --git a/randr/rrscreen.c b/randr/rrscreen.c
-index 39340cc..36179ae 100644
 --- a/randr/rrscreen.c
 +++ b/randr/rrscreen.c
-@@ -143,7 +143,7 @@ RRScreenSizeNotify(ScreenPtr pScreen)
+@@ -143,7 +143,7 @@
      pScrPriv->height = pScreen->height;
      pScrPriv->mmWidth = pScreen->mmWidth;
      pScrPriv->mmHeight = pScreen->mmHeight;
@@ -198,6 +190,3 @@ index 39340cc..36179ae 100644
  /*    pScrPriv->sizeChanged = TRUE; */
  
      RRTellChanged(pScreen);
--- 
-1.8.1
-
diff --git a/debian/patches/config-add-no-removal.patch b/debian/patches/config-add-no-removal.patch
new file mode 100644
index 0000000..88a5b6d
--- /dev/null
+++ b/debian/patches/config-add-no-removal.patch
@@ -0,0 +1,30 @@
+diff --git a/config/udev.c b/config/udev.c
+index 454838f..74ac998 100644
+--- a/config/udev.c
++++ b/config/udev.c
+@@ -300,10 +300,9 @@ wakeup_handler(pointer data, int err, pointer read_mask)
+             return;
+         action = udev_device_get_action(udev_device);
+         if (action) {
+-            if (!strcmp(action, "add")) {
+-                device_removed(udev_device);
++            if (!strcmp(action, "add"))
+                 device_added(udev_device);
+-            } else if (!strcmp(action, "change")) {
++            else if (!strcmp(action, "change")) {
+                 /* ignore change for the drm devices */
+                 if (strcmp(udev_device_get_subsystem(udev_device), "drm")) {
+                     device_removed(udev_device);
+diff --git a/hw/xfree86/os-support/linux/lnx_platform.c b/hw/xfree86/os-support/linux/lnx_platform.c
+index 76f5583..c125e35 100644
+--- a/hw/xfree86/os-support/linux/lnx_platform.c
++++ b/hw/xfree86/os-support/linux/lnx_platform.c
+@@ -126,6 +126,8 @@ xf86PlatformDeviceProbe(struct OdevAttributes *attribs)
+     return;
+ 
+ out_free:
++    LogMessage(X_INFO, "config/udev: Ignoring already known drm device (%s)\n",
++               path);
+     config_odev_free_attribute_list(attribs);
+ }
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 5a913a9..c5c5417 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -49,3 +49,4 @@ dix-allow-pixmap-dirty-helper-to-be-used-for-non-sha.patch
 xserver-call-CSR-for-gpus.patch
 xf86-actually-set-the-compat-output-in-the-failure-c.patch
 autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
+config-add-no-removal.patch


Reply to: