jwboyer pushed to kernel (master). "Linux v4.0-rc5-96-g3c435c1e472b (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Fri Mar 27 13:22:48 UTC 2015


>From 41c0069fbcddcdcc5aeca4203fcc936093a461e7 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer at fedoraproject.org>
Date: Fri, 27 Mar 2015 09:22:16 -0400
Subject: Linux v4.0-rc5-96-g3c435c1e472b

- Fixes hangs due to i915 issues (rhbz 1204050 1206056)

diff --git a/drm-Fixup-racy-refcounting-in-plane_force_disable.patch b/drm-Fixup-racy-refcounting-in-plane_force_disable.patch
deleted file mode 100644
index 6c46cb0..0000000
--- a/drm-Fixup-racy-refcounting-in-plane_force_disable.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Fri, 27 Feb 2015 12:58:13 +0100
-Subject: [PATCH] drm: Fixup racy refcounting in plane_force_disable
-
-Originally it was impossible to be dropping the last refcount in this
-function since there was always one around still from the idr. But in
-
-commit 83f45fc360c8e16a330474860ebda872d1384c8c
-Author: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date:   Wed Aug 6 09:10:18 2014 +0200
-
-    drm: Don't grab an fb reference for the idr
-
-we've switched to weak references, broke that assumption but forgot to
-fix it up.
-
-Since we still force-disable planes it's only possible to hit this
-when racing multiple rmfb with fbdev restoring or similar evil things.
-As long as userspace is nice it's impossible to hit the BUG_ON.
-
-But the BUG_ON would most likely be hit from fbdev code, which usually
-invovles the console_lock besides all modeset locks. So very likely
-we'd never get the bug reports if this was hit in the wild, hence
-better be safe than sorry and backport.
-
-Spotted by Matt Roper while reviewing other patches.
-
-[airlied: pull this back into 4.0 - the oops happens there]
-
-Cc: stable at vger.kernel.org
-Cc: Matt Roper <matthew.d.roper at intel.com>
-Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
----
- drivers/gpu/drm/drm_crtc.c | 13 +------------
- 1 file changed, 1 insertion(+), 12 deletions(-)
-
-diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
-index f6d04c7b5115..679b10e34fb5 100644
---- a/drivers/gpu/drm/drm_crtc.c
-+++ b/drivers/gpu/drm/drm_crtc.c
-@@ -525,17 +525,6 @@ void drm_framebuffer_reference(struct drm_framebuffer *fb)
- }
- EXPORT_SYMBOL(drm_framebuffer_reference);
- 
--static void drm_framebuffer_free_bug(struct kref *kref)
--{
--	BUG();
--}
--
--static void __drm_framebuffer_unreference(struct drm_framebuffer *fb)
--{
--	DRM_DEBUG("%p: FB ID: %d (%d)\n", fb, fb->base.id, atomic_read(&fb->refcount.refcount));
--	kref_put(&fb->refcount, drm_framebuffer_free_bug);
--}
--
- /**
-  * drm_framebuffer_unregister_private - unregister a private fb from the lookup idr
-  * @fb: fb to unregister
-@@ -1320,7 +1309,7 @@ void drm_plane_force_disable(struct drm_plane *plane)
- 		return;
- 	}
- 	/* disconnect the plane from the fb and crtc: */
--	__drm_framebuffer_unreference(plane->old_fb);
-+	drm_framebuffer_unreference(plane->old_fb);
- 	plane->old_fb = NULL;
- 	plane->fb = NULL;
- 	plane->crtc = NULL;
--- 
-2.1.0
-
diff --git a/drm-i915-Don-t-try-to-reference-the-fb-in-get_initia.patch b/drm-i915-Don-t-try-to-reference-the-fb-in-get_initia.patch
deleted file mode 100644
index ba40a84..0000000
--- a/drm-i915-Don-t-try-to-reference-the-fb-in-get_initia.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From: Damien Lespiau <damien.lespiau at intel.com>
-Date: Thu, 5 Feb 2015 18:30:20 +0000
-Subject: [PATCH] drm/i915: Don't try to reference the fb in
- get_initial_plane_config()
-
-Tvrtko noticed a new warning on boot:
-
-  WARNING: CPU: 1 PID: 353 at include/linux/kref.h:47 drm_framebuffer_reference+0x6c/0x80 [drm]()
-  Call Trace:
-  [<ffffffff8161f10c>] dump_stack+0x4f/0x7b
-  [<ffffffff81052caa>] warn_slowpath_common+0xaa/0xd0
-  [<ffffffff81052d8a>] warn_slowpath_null+0x1a/0x20
-  [<ffffffffa00d035c>] drm_framebuffer_reference+0x6c/0x80 [drm]
-  [<ffffffffa01c0df7>] update_state_fb.isra.54+0x47/0x50 [i915]
-  [<ffffffffa01ccd5c>] skylake_get_initial_plane_config+0x93c/0x950 [i915]
-  [<ffffffffa01e8721>] intel_modeset_init+0x1551/0x17c0 [i915]
-  [<ffffffffa02476e0>] i915_driver_load+0xed0/0x11e0 [i915]
-  [<ffffffff81627aa1>] ? _raw_spin_unlock_irqrestore+0x51/0x70
-  [<ffffffffa00ca8b7>] drm_dev_register+0x77/0x110 [drm]
-  [<ffffffffa00cda3b>] drm_get_pci_dev+0x11b/0x1f0 [drm]
-  [<ffffffff81098e3d>] ? trace_hardirqs_on+0xd/0x10
-  [<ffffffff81627aa1>] ? _raw_spin_unlock_irqrestore+0x51/0x70
-  [<ffffffffa0145276>] i915_pci_probe+0x56/0x60 [i915]
-  [<ffffffff813ad59c>] pci_device_probe+0x7c/0x100
-  [<ffffffff81466aad>] driver_probe_device+0x16d/0x380
-
-We cannot take a reference at this point, not before
-intel_framebuffer_init() and the underlying drm_framebuffer_init().
-
-Introduced in:
-
-  commit 706dc7b549175e47f23e913b7f1e52874a7d0f56
-  Author: Matt Roper <matthew.d.roper at intel.com>
-  Date:   Tue Feb 3 13:10:04 2015 -0800
-
-      drm/i915: Ensure plane->state->fb stays in sync with plane->fb
-
-v2: Don't move update_state_fb(). It was moved around because I
-    originally put update_state_fb() in intel_alloc_plane_obj() before
-    finding a better place. (Matt)
-
-Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
-Reported-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
-Cc: Matt Roper <matthew.d.roper at intel.com>
-Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
-Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
----
- drivers/gpu/drm/i915/intel_display.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index e116dee10cf9..177714a9d778 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -2438,8 +2438,10 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
- 	if (!intel_crtc->base.primary->fb)
- 		return;
- 
--	if (intel_alloc_plane_obj(intel_crtc, plane_config))
-+	if (intel_alloc_plane_obj(intel_crtc, plane_config)) {
-+		update_state_fb(intel_crtc->base.primary);
- 		return;
-+	}
- 
- 	kfree(intel_crtc->base.primary->fb);
- 	intel_crtc->base.primary->fb = NULL;
-@@ -6663,7 +6665,6 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc,
- 		      plane_config->size);
- 
- 	crtc->base.primary->fb = fb;
--	update_state_fb(crtc->base.primary);
- }
- 
- static void chv_crtc_clock_get(struct intel_crtc *crtc,
-@@ -7704,7 +7705,6 @@ skylake_get_initial_plane_config(struct intel_crtc *crtc,
- 		      plane_config->size);
- 
- 	crtc->base.primary->fb = fb;
--	update_state_fb(crtc->base.primary);
- 	return;
- 
- error:
-@@ -7798,7 +7798,6 @@ ironlake_get_initial_plane_config(struct intel_crtc *crtc,
- 		      plane_config->size);
- 
- 	crtc->base.primary->fb = fb;
--	update_state_fb(crtc->base.primary);
- }
- 
- static bool ironlake_get_pipe_config(struct intel_crtc *crtc,
--- 
-2.1.0
-
diff --git a/drm-i915-Fix-atomic-state-when-reusing-the-firmware-.patch b/drm-i915-Fix-atomic-state-when-reusing-the-firmware-.patch
deleted file mode 100644
index 56eddbe..0000000
--- a/drm-i915-Fix-atomic-state-when-reusing-the-firmware-.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Damien Lespiau <damien.lespiau at intel.com>
-Date: Thu, 5 Feb 2015 19:24:25 +0000
-Subject: [PATCH] drm/i915: Fix atomic state when reusing the firmware fb
-
-Right now, we get a warning when taking over the firmware fb:
-
-  [drm:drm_atomic_plane_check] FB set but no CRTC
-
-with the following backtrace:
-
-  [<ffffffffa010339d>] drm_atomic_check_only+0x35d/0x510 [drm]
-  [<ffffffffa0103567>] drm_atomic_commit+0x17/0x60 [drm]
-  [<ffffffffa00a6ccd>] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper]
-  [<ffffffffa00f1fed>] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm]
-  [<ffffffffa00a8a1b>] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper]
-  [<ffffffffa00aa969>] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper]
-  [<ffffffffa00aa9e2>] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper]
-  [<ffffffffa050a71a>] intel_fbdev_set_par+0x1a/0x60 [i915]
-  [<ffffffff813ad444>] fbcon_init+0x4f4/0x580
-
-That's because we update the plane state with the fb from the firmware, but we
-never associate the plane to that CRTC.
-
-We don't quite have the full DRM take over from HW state just yet, so
-fake enough of the plane atomic state to pass the checks.
-
-v2: Fix the state on which we set the CRTC in the case we're sharing the
-    initial fb with another pipe. (Matt)
-
-Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
-Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-
-(Backported to 4.0-rc5)
----
- drivers/gpu/drm/i915/intel_display.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 177714a9d778..805b5e7b0058 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -2439,6 +2439,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
- 		return;
- 
- 	if (intel_alloc_plane_obj(intel_crtc, plane_config)) {
-+		intel_crtc->base.primary->state->crtc = &intel_crtc->base;
- 		update_state_fb(intel_crtc->base.primary);
- 		return;
- 	}
-@@ -2469,6 +2470,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
- 
- 			drm_framebuffer_reference(c->primary->fb);
- 			intel_crtc->base.primary->fb = c->primary->fb;
-+			intel_crtc->base.primary->state->crtc = &intel_crtc->base;
- 			obj->frontbuffer_bits |= INTEL_FRONTBUFFER_PRIMARY(intel_crtc->pipe);
- 			break;
- 		}
--- 
-2.1.0
-
diff --git a/drm-i915-Fixup-legacy-plane-crtc-link-for-initial-fb.patch b/drm-i915-Fixup-legacy-plane-crtc-link-for-initial-fb.patch
deleted file mode 100644
index afacbd1..0000000
--- a/drm-i915-Fixup-legacy-plane-crtc-link-for-initial-fb.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Wed, 25 Mar 2015 18:30:38 +0100
-Subject: [PATCH] drm/i915: Fixup legacy plane->crtc link for initial fb config
-
-This is a very similar bug in the load detect code fixed in
-
-commit 9128b040eb774e04bc23777b005ace2b66ab2a85
-Author: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date:   Tue Mar 3 17:31:21 2015 +0100
-
-    drm/i915: Fix modeset state confusion in the load detect code
-
-But this time around it was the initial fb code that forgot to update
-the plane->crtc pointer. Otherwise it's the exact same bug, with the
-exact same restrains (any set_config call/ioctl that doesn't disable
-the pipe papers over the bug for free, so fairly hard to hit in normal
-testing). So if you want the full explanation just go read that one
-over there - it's rather long ...
-
-Cc: Matt Roper <matthew.d.roper at intel.com>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Chris Wilson <chris at chris-wilson.co.uk>
-Cc: Josh Boyer <jwboyer at fedoraproject.org>
-Cc: Jani Nikula <jani.nikula at linux.intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
-
-(Backported to 4.0-rc5)
----
- drivers/gpu/drm/i915/intel_display.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 805b5e7b0058..778e7fa41c17 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -2440,6 +2440,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
- 
- 	if (intel_alloc_plane_obj(intel_crtc, plane_config)) {
- 		intel_crtc->base.primary->state->crtc = &intel_crtc->base;
-+		intel_crtc->base.primary->crtc = &intel_crtc->base;
- 		update_state_fb(intel_crtc->base.primary);
- 		return;
- 	}
-@@ -2471,6 +2472,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
- 			drm_framebuffer_reference(c->primary->fb);
- 			intel_crtc->base.primary->fb = c->primary->fb;
- 			intel_crtc->base.primary->state->crtc = &intel_crtc->base;
-+			intel_crtc->base.primary->crtc = &intel_crtc->base;
- 			obj->frontbuffer_bits |= INTEL_FRONTBUFFER_PRIMARY(intel_crtc->pipe);
- 			break;
- 		}
--- 
-2.1.0
-
diff --git a/drm-i915-hush-check-crtc-state.patch b/drm-i915-hush-check-crtc-state.patch
index 7391de0..bd927d2 100644
--- a/drm-i915-hush-check-crtc-state.patch
+++ b/drm-i915-hush-check-crtc-state.patch
@@ -14,10 +14,10 @@ Upstream-status: http://lists.freedesktop.org/archives/intel-gfx/2013-November/0
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 6d22128d97b1..e116dee10cf9 100644
+index f75173c20f47..1003782a38c4 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -10909,7 +10909,7 @@ check_crtc_state(struct drm_device *dev)
+@@ -10917,7 +10917,7 @@ check_crtc_state(struct drm_device *dev)
  
  		if (active &&
  		    !intel_pipe_config_compare(dev, crtc->config, &pipe_config)) {
diff --git a/kernel.spec b/kernel.spec
index f5a70be..7c79dee 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -68,7 +68,7 @@ Summary: The Linux kernel
 # The rc snapshot level
 %define rcrev 5
 # The git snapshot level
-%define gitrev 3
+%define gitrev 4
 # Set rpm version accordingly
 %define rpmversion 4.%{upstream_sublevel}.0
 %endif
@@ -628,11 +628,6 @@ Patch26168: HID-multitouch-add-support-of-clickpads.patch
 Patch26170: acpi-video-Allow-forcing-native-backlight-on-non-win.patch
 Patch26171: acpi-video-Add-force-native-backlight-quirk-for-Leno.patch
 
-Patch26172: drm-Fixup-racy-refcounting-in-plane_force_disable.patch
-Patch26173: drm-i915-Don-t-try-to-reference-the-fb-in-get_initia.patch
-Patch26175: drm-i915-Fix-atomic-state-when-reusing-the-firmware-.patch
-Patch26176: drm-i915-Fixup-legacy-plane-crtc-link-for-initial-fb.patch
-
 #rhbz 1203584
 Patch26174: Input-ALPS-fix-max-coordinates-for-v5-and-v7-protoco.patch
 
@@ -1375,11 +1370,6 @@ ApplyPatch HID-multitouch-add-support-of-clickpads.patch
 ApplyPatch acpi-video-Allow-forcing-native-backlight-on-non-win.patch
 ApplyPatch acpi-video-Add-force-native-backlight-quirk-for-Leno.patch
 
-ApplyPatch drm-Fixup-racy-refcounting-in-plane_force_disable.patch
-ApplyPatch drm-i915-Don-t-try-to-reference-the-fb-in-get_initia.patch
-ApplyPatch drm-i915-Fix-atomic-state-when-reusing-the-firmware-.patch
-ApplyPatch drm-i915-Fixup-legacy-plane-crtc-link-for-initial-fb.patch
-
 #rhbz 1203584
 ApplyPatch Input-ALPS-fix-max-coordinates-for-v5-and-v7-protoco.patch
 
@@ -2233,6 +2223,10 @@ fi
 #
 # 
 %changelog
+* Fri Mar 27 2015 Josh Boyer <jwboyer at fedoraproject.org> - 4.0.0-0.rc5.git4.1
+- Linux v4.0-rc5-96-g3c435c1e472b
+- Fixes hangs due to i915 issues (rhbz 1204050 1206056)
+
 * Thu Mar 26 2015 Josh Boyer <jwboyer at fedoraproject.org> - 4.0.0-0.rc5.git3.1
 - Linux v4.0-rc5-80-g4c4fe4c24782
 
diff --git a/sources b/sources
index accd2ba..f0c7106 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
 b26150c980099ef554b26d07f470e647  linux-4.0-rc5.tar.xz
 7614f559a09f0242827fc7783c7adf3f  perf-man-4.0-rc5.tar.gz
-ee2f45f001bd0764920024894631f061  patch-4.0-rc5-git3.xz
+6b92fe5b8052c71e65a6db8d43a776fa  patch-4.0-rc5-git4.xz
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/kernel.git/commit/?h=master&id=41c0069fbcddcdcc5aeca4203fcc936093a461e7


More information about the scm-commits mailing list