[linux] 01/02: Revert recent radeon revisions raising regressions

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Fri Apr 8 00:45:30 UTC 2016


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch jessie-updates
in repository linux.

commit 3bcd7d1a3e57dbc4d907467d2cadd559a9b1c193
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Sun Apr 3 14:20:51 2016 +0100

    Revert recent radeon revisions raising regressions
    
    These reverts were both included in 3.16.7-ckt26.
---
 debian/changelog                                   |  9 +++++
 ...t-drm-radeon-call-hpd_irq_event-on-resume.patch | 42 ++++++++++++++++++++++
 ...radeon-hold-reference-to-fences-in-radeon.patch | 39 ++++++++++++++++++++
 debian/patches/series                              |  2 ++
 4 files changed, 92 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index c1c537e..f6cffa4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+linux (3.16.7-ckt25-2) UNRELEASED; urgency=medium
+
+  * Revert "drm/radeon: hold reference to fences in radeon_sa_bo_new"
+    (Closes: #819881)
+  * Revert "drm/radeon: call hpd_irq_event on resume", reported to cause
+    regressions (crash/hang) on some systems
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Thu, 07 Apr 2016 22:32:39 +0100
+
 linux (3.16.7-ckt25-1) jessie; urgency=medium
 
   * New upstream stable update:
diff --git a/debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch b/debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch
new file mode 100644
index 0000000..d393dc2
--- /dev/null
+++ b/debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch
@@ -0,0 +1,42 @@
+From: Linus Torvalds <torvalds at linux-foundation.org>
+Date: Mon, 7 Mar 2016 13:15:09 -0800
+Subject: Revert "drm/radeon: call hpd_irq_event on resume"
+Origin: https://git.kernel.org/linus/256faedcfd646161477d47a1a78c32a562d2e845
+
+This reverts commit dbb17a21c131eca94eb31136eee9a7fe5aff00d9.
+
+It turns out that commit can cause problems for systems with multiple
+GPUs, and causes X to hang on at least a HP Pavilion dv7 with hybrid
+graphics.
+
+This got noticed originally in 4.4.4, where this patch had already
+gotten back-ported, but 4.5-rc7 was verified to have the same problem.
+
+Alexander Deucher says:
+ "It looks like you have a muxed system so I suspect what's happening is
+  that one of the display is being reported as connected for both the
+  IGP and the dGPU and then the desktop environment gets confused or
+  there some sort problem in the detect functions since the mux is not
+  switched to the dGPU.  I don't see an easy fix unless Dave has any
+  ideas.  I'd say just revert for now"
+
+Reported-by: Jörg-Volker Peetz <jvpeetz at web.de>
+Acked-by: Alexander Deucher <Alexander.Deucher at amd.com>
+Cc: Dave Airlie <airlied at gmail.com>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ drivers/gpu/drm/radeon/radeon_device.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
+index f7296ca6510c..ca470fb17aa4 100644
+--- a/drivers/gpu/drm/radeon/radeon_device.c
++++ b/drivers/gpu/drm/radeon/radeon_device.c
+@@ -1649,7 +1649,6 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
+ 	}
+ 
+ 	drm_kms_helper_poll_enable(dev);
+-	drm_helper_hpd_irq_event(dev);
+ 
+ 	/* set the power state here in case we are a PX system or headless */
+ 	if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled)
diff --git a/debian/patches/bugfix/all/revert-drm-radeon-hold-reference-to-fences-in-radeon.patch b/debian/patches/bugfix/all/revert-drm-radeon-hold-reference-to-fences-in-radeon.patch
new file mode 100644
index 0000000..6a61b43
--- /dev/null
+++ b/debian/patches/bugfix/all/revert-drm-radeon-hold-reference-to-fences-in-radeon.patch
@@ -0,0 +1,39 @@
+From: Luis Henriques <luis.henriques at canonical.com>
+Date: Wed, 9 Mar 2016 13:58:27 +0000
+Subject: Revert "drm/radeon: hold reference to fences in radeon_sa_bo_new"
+Origin: http://kernel.ubuntu.com/git/ubuntu/linux.git/commit?id=f80be5a9b1ccf679415676f761bc9efdc3ad13b5
+
+This reverts commit 73187980dfefe5198aadcfdf0a377e461eed2bfa, which was
+commit f6ff4f67cdf8455d0a4226eeeaf5af17c37d05eb upstream.
+
+This patch was triggering a Oops in stable kernel 3.10.99.  Christian
+agrees that the patch is correct but "assumes that radeon_fence_unref()
+can safely take NULL as the fence which is not the case for older
+kernels."
+
+Reported-by: Erik Andersen <andersen at codepoet.org>
+Acked-by: Christian König <christian.koenig at amd.com>
+Cc: Nicolai Hähnle <nicolai.haehnle at amd.com>
+Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
+---
+ drivers/gpu/drm/radeon/radeon_sa.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_sa.c b/drivers/gpu/drm/radeon/radeon_sa.c
+index 15fd57296081..adcf3e2f07da 100644
+--- a/drivers/gpu/drm/radeon/radeon_sa.c
++++ b/drivers/gpu/drm/radeon/radeon_sa.c
+@@ -349,13 +349,8 @@ int radeon_sa_bo_new(struct radeon_device *rdev,
+ 			/* see if we can skip over some allocations */
+ 		} while (radeon_sa_bo_next_hole(sa_manager, fences, tries));
+ 
+-		for (i = 0; i < RADEON_NUM_RINGS; ++i)
+-			radeon_fence_ref(fences[i]);
+-
+ 		spin_unlock(&sa_manager->wq.lock);
+ 		r = radeon_fence_wait_any(rdev, fences, false);
+-		for (i = 0; i < RADEON_NUM_RINGS; ++i)
+-			radeon_fence_unref(&fences[i]);
+ 		spin_lock(&sa_manager->wq.lock);
+ 		/* if we have nothing to wait for block */
+ 		if (r == -ENOENT) {
diff --git a/debian/patches/series b/debian/patches/series
index 7cd7bb1..cf5b7b1 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -656,3 +656,5 @@ debian/crypto-fix-abi-change-in-3.16.7-ckt25.patch
 bugfix/all/ip_vti-ip6_vti-do-not-touch-skb-mark-on-xmit.patch
 bugfix/all/xfrm-override-skb-mark-with-tunnel-parm.i_key-in-xfr.patch
 bugfix/all/ip_vti-ip6_vti-preserve-skb-mark-after-rcv_cb-call.patch
+bugfix/all/revert-drm-radeon-hold-reference-to-fences-in-radeon.patch
+bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list