From cf2d0ce1776cd25ed54bd4c3b3a43452c22972c2 Mon Sep 17 00:00:00 2001 From: Chuck Ebbert Date: Wed, 5 Oct 2011 10:51:31 -0400 Subject: [PATCH] Linux 3.1-rc9 --- ...b1bf15b8532c396821774bf6451e563438f5.patch | 71 ------------------- drm-i915-fbc-stfu.patch | 2 +- kernel.spec | 12 ++-- sources | 2 +- ucvideo-fix-crash-when-linking-entities.patch | 34 --------- 5 files changed, 7 insertions(+), 114 deletions(-) delete mode 100644 777eb1bf15b8532c396821774bf6451e563438f5.patch delete mode 100644 ucvideo-fix-crash-when-linking-entities.patch diff --git a/777eb1bf15b8532c396821774bf6451e563438f5.patch b/777eb1bf15b8532c396821774bf6451e563438f5.patch deleted file mode 100644 index 7826375e0..000000000 --- a/777eb1bf15b8532c396821774bf6451e563438f5.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 777eb1bf15b8532c396821774bf6451e563438f5 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Wed, 28 Sep 2011 08:07:01 -0600 -Subject: [PATCH] block: Free queue resources at blk_release_queue() - -A kernel crash is observed when a mounted ext3/ext4 filesystem is -physically removed. The problem is that blk_cleanup_queue() frees up -some resources eg by calling elevator_exit(), which are not checked for -in normal operation. So we should rather move these calls to the -destructor function blk_release_queue() as at that point all remaining -references are gone. However, in doing so we have to ensure that any -externally supplied queue_lock is disconnected as the driver might free -up the lock after the call of blk_cleanup_queue(), - -Signed-off-by: Hannes Reinecke -Signed-off-by: Jens Axboe ---- - block/blk-core.c | 13 ++++++------- - block/blk-sysfs.c | 5 +++++ - 2 files changed, 11 insertions(+), 7 deletions(-) - -diff --git a/block/blk-core.c b/block/blk-core.c -index b2ed78a..d34433a 100644 ---- a/block/blk-core.c -+++ b/block/blk-core.c -@@ -348,9 +348,10 @@ void blk_put_queue(struct request_queue *q) - EXPORT_SYMBOL(blk_put_queue); - - /* -- * Note: If a driver supplied the queue lock, it should not zap that lock -- * unexpectedly as some queue cleanup components like elevator_exit() and -- * blk_throtl_exit() need queue lock. -+ * Note: If a driver supplied the queue lock, it is disconnected -+ * by this function. The actual state of the lock doesn't matter -+ * here as the request_queue isn't accessible after this point -+ * (QUEUE_FLAG_DEAD is set) and no other requests will be queued. - */ - void blk_cleanup_queue(struct request_queue *q) - { -@@ -367,10 +368,8 @@ void blk_cleanup_queue(struct request_queue *q) - queue_flag_set_unlocked(QUEUE_FLAG_DEAD, q); - mutex_unlock(&q->sysfs_lock); - -- if (q->elevator) -- elevator_exit(q->elevator); -- -- blk_throtl_exit(q); -+ if (q->queue_lock != &q->__queue_lock) -+ q->queue_lock = &q->__queue_lock; - - blk_put_queue(q); - } -diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c -index e681805..60fda88 100644 ---- a/block/blk-sysfs.c -+++ b/block/blk-sysfs.c -@@ -479,6 +479,11 @@ static void blk_release_queue(struct kobject *kobj) - - blk_sync_queue(q); - -+ if (q->elevator) -+ elevator_exit(q->elevator); -+ -+ blk_throtl_exit(q); -+ - if (rl->rq_pool) - mempool_destroy(rl->rq_pool); - --- -1.7.5.4 - diff --git a/drm-i915-fbc-stfu.patch b/drm-i915-fbc-stfu.patch index 7e30dae4b..9240387ee 100644 --- a/drm-i915-fbc-stfu.patch +++ b/drm-i915-fbc-stfu.patch @@ -89,8 +89,8 @@ index 56a8554..a6d14eb 100644 * display to settle before starting the compression. Note that * this delay also serves a second purpose: it allows for a @@ -1800,8 +1783,6 @@ static void intel_update_fbc(struct drm_device *dev) - struct intel_framebuffer *intel_fb; struct drm_i915_gem_object *obj; + int enable_fbc; - DRM_DEBUG_KMS("\n"); - diff --git a/kernel.spec b/kernel.spec index 6b046652d..6bebdec51 100644 --- a/kernel.spec +++ b/kernel.spec @@ -51,7 +51,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be prepended with "0.", so # for example a 3 here will become 0.3 # -%global baserelease 1 +%global baserelease 0 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -82,7 +82,7 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 8 +%define rcrev 9 # The git snapshot level %define gitrev 0 # Set rpm version accordingly @@ -722,7 +722,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch Patch13002: revert-efi-rtclock.patch Patch13003: efi-dont-map-boot-services-on-32bit.patch -Patch13005: ucvideo-fix-crash-when-linking-entities.patch Patch13007: add-macbookair41-keyboard.patch @@ -736,7 +735,6 @@ Patch20000: utrace.patch Patch21000: arm-omap-dt-compat.patch Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch -Patch21010: 777eb1bf15b8532c396821774bf6451e563438f5.patch %endif BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -1343,7 +1341,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch ApplyPatch revert-efi-rtclock.patch ApplyPatch efi-dont-map-boot-services-on-32bit.patch -ApplyPatch ucvideo-fix-crash-when-linking-entities.patch ApplyPatch add-macbookair41-keyboard.patch @@ -1354,8 +1351,6 @@ ApplyPatch powerpc-Fix-deadlock-in-icswx-code.patch # utrace. ApplyPatch utrace.patch -ApplyPatch 777eb1bf15b8532c396821774bf6451e563438f5.patch - # END OF PATCH APPLICATIONS %endif @@ -2057,6 +2052,9 @@ fi # and build. %changelog +* Wed Oct 05 2011 Chuck Ebbert 3.1.0-0.rc9.git0.0 +- Linux 3.1-rc9 + * Mon Oct 03 2011 Chuck Ebbert 3.1.0-0.rc8.git0.1 - block: Free queue resources at blk_release_queue() diff --git a/sources b/sources index 2194c37b8..e509d0145 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 398e95866794def22b12dfbc15ce89c0 linux-3.0.tar.bz2 -aae4a0422f4be618fcdbf4bf9de67143 patch-3.1-rc8.bz2 +85fd0d4c9701392b6eb9293035726a02 patch-3.1-rc9.bz2 diff --git a/ucvideo-fix-crash-when-linking-entities.patch b/ucvideo-fix-crash-when-linking-entities.patch deleted file mode 100644 index 69f86d64c..000000000 --- a/ucvideo-fix-crash-when-linking-entities.patch +++ /dev/null @@ -1,34 +0,0 @@ -The uvc_mc_register_entity() function wrongfully selects the -media_entity associated with a UVC entity when creating links. This -results in access to uninitialized media_entity structures and can hit a -BUG_ON statement in media_entity_create_link(). Fix it. - -Signed-off-by: Laurent Pinchart ---- - drivers/media/video/uvc/uvc_entity.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -This patch should fix a v3.0 regression that results in a kernel crash as -reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637740 and -https://bugzilla.redhat.com/show_bug.cgi?id=735437. - -Test results will be welcome. - -diff --git a/drivers/media/video/uvc/uvc_entity.c b/drivers/media/video/uvc/uvc_entity.c -index 48fea37..29e2399 100644 ---- a/drivers/media/video/uvc/uvc_entity.c -+++ b/drivers/media/video/uvc/uvc_entity.c -@@ -49,7 +49,7 @@ static int uvc_mc_register_entity(struct uvc_video_chain *chain, - if (remote == NULL) - return -EINVAL; - -- source = (UVC_ENTITY_TYPE(remote) != UVC_TT_STREAMING) -+ source = (UVC_ENTITY_TYPE(remote) == UVC_TT_STREAMING) - ? (remote->vdev ? &remote->vdev->entity : NULL) - : &remote->subdev.entity; - if (source == NULL) --- -Regards, - -Laurent Pinchart -