Date: Wednesday, March 4, 2015 @ 18:38:25 Author: lcarlier Revision: 232856
upgpkg: xf86-video-intel 2.99.917-4 fix FS#43906 Modified: xf86-video-intel/trunk/PKGBUILD xf86-video-intel/trunk/git-fixes.patch -----------------+ PKGBUILD | 6 +++--- git-fixes.patch | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-03-04 17:33:09 UTC (rev 232855) +++ PKGBUILD 2015-03-04 17:38:25 UTC (rev 232856) @@ -4,7 +4,7 @@ pkgname=xf86-video-intel pkgver=2.99.917 -pkgrel=3 +pkgrel=4 arch=(i686 x86_64) url="http://xorg.freedesktop.org/" license=('custom') @@ -26,11 +26,11 @@ source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2 git-fixes.patch) sha256sums=('00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9' - '201f60bc75d61dd95ae7bc166ef2cb153fe693471b42952e6d61cc0780a51e2e') + '9216b69b7e01b6910b4758c4e346d84a43198ee516f6b239bf43c4e172a9c922') prepare() { cd ${pkgname}-${pkgver} - # fix FS#43840 + # fix FS#43840, FS#43906 patch -Np1 -i ../git-fixes.patch } Modified: git-fixes.patch =================================================================== --- git-fixes.patch 2015-03-04 17:33:09 UTC (rev 232855) +++ git-fixes.patch 2015-03-04 17:38:25 UTC (rev 232856) @@ -79,4 +79,50 @@ if (ret) { -- cgit v0.10.2 +From db82617464e55432522e6199a88408ff0187f6ff Mon Sep 17 00:00:00 2001 +From: Chris Wilson <[email protected]> +Date: Wed, 4 Mar 2015 17:12:30 +0000 +Subject: sna: Decouple RandR pointers early in CloseScreen +RR resources are freed before CloseScreen (as they are a ServerClient +resource), but on entering our CloseScreen callbacks we are left with a +set of stale pointers. Decouple those before proceeding so that we are +not tempted to dereference them. + +Bugzilla: https://bugs.archlinux.org/task/43906 +Signed-off-by: Chris Wilson <[email protected]> + +diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c +index 88db508..fd6c46c 100644 +--- a/src/sna/sna_display.c ++++ b/src/sna/sna_display.c +@@ -6292,9 +6292,26 @@ sna_mode_enable(struct sna *sna) + sna->mode.dirty = false; + } + ++static void sna_randr_close(struct sna *sna) ++{ ++ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn); ++ int n; ++ ++ /* The RR structs are freed early during CloseScreen as they ++ * are tracked as Resources. However, we may be tempted to ++ * access them during shutdown so decouple them now. ++ */ ++ for (n = 0; n < config->num_output; n++) ++ config->output[n]->randr_output = NULL; ++ ++ for (n = 0; n < config->num_crtc; n++) ++ config->crtc[n]->randr_crtc = NULL; ++} ++ + void + sna_mode_close(struct sna *sna) + { ++ sna_randr_close(sna); + sna_mode_wakeup(sna); + + if (sna->flags & SNA_IS_HOSTED) +-- +cgit v0.10.2 +
