diff --git a/drm-i915-add-reclaimable-to-page-allocations.patch b/drm-i915-add-reclaimable-to-page-allocations.patch deleted file mode 100644 index 6014f2c..0000000 --- a/drm-i915-add-reclaimable-to-page-allocations.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: Linus Torvalds -Date: Sun, 18 Jul 2010 16:44:37 +0000 (-0700) -Subject: drm/i915: add 'reclaimable' to i915 self-reclaimable page allocations -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=cd9f040df6ce46573760a507cb88192d05d27d86 - -drm/i915: add 'reclaimable' to i915 self-reclaimable page allocations - -The hibernate issues that got fixed in commit 985b823b9192 ("drm/i915: -fix hibernation since i915 self-reclaim fixes") turn out to have been -incomplete. Vefa Bicakci tested lots of hibernate cycles, and without -the __GFP_RECLAIMABLE flag the system eventually fails to resume. - -With the flag added, Vefa can apparently hibernate forever (or until he -gets bored running his automated scripts, whichever comes first). - -The reclaimable flag was there originally, and was one of the flags that -were dropped (unintentionally) by commit 4bdadb978569 ("drm/i915: -Selectively enable self-reclaim") that introduced all these problems, -but I didn't want to just blindly add back all the flags in commit -985b823b9192, and it looked like __GFP_RECLAIM wasn't necessary. It -clearly was. - -I still suspect that there is some subtle reason we're missing that -causes the problems, but __GFP_RECLAIMABLE is certainly not wrong to use -in this context, and is what the code historically used. And we have no -idea what the causes the corruption without it. - -Reported-and-tested-by: M. Vefa Bicakci -Cc: Dave Airlie -Cc: Chris Wilson -Cc: KOSAKI Motohiro -Cc: Hugh Dickins -Cc: stable@kernel.org -Signed-off-by: Linus Torvalds ---- - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 0743858..8757ecf 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -2241,6 +2241,7 @@ i915_gem_object_get_pages(struct drm_gem_object *obj, - page = read_cache_page_gfp(mapping, i, - GFP_HIGHUSER | - __GFP_COLD | -+ __GFP_RECLAIMABLE | - gfpmask); - if (IS_ERR(page)) - goto err_pages; diff --git a/drm-i915-fix-hibernate-memory-corruption.patch b/drm-i915-fix-hibernate-memory-corruption.patch deleted file mode 100644 index a9c2c18..0000000 --- a/drm-i915-fix-hibernate-memory-corruption.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Linus Torvalds -Date: Fri, 2 Jul 2010 00:04:42 +0000 (+1000) -Subject: drm/i915: fix hibernation since i915 self-reclaim fixes -X-Git-Tag: v2.6.35-rc4~13 -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=985b823b919273fe1327d56d2196b4f92e5d0fae - -drm/i915: fix hibernation since i915 self-reclaim fixes - -Since commit 4bdadb9785696439c6e2b3efe34aa76df1149c83 ("drm/i915: -Selectively enable self-reclaim"), we've been passing GFP_MOVABLE to the -i915 page allocator where we weren't before due to some over-eager -removal of the page mapping gfp_flags games the code used to play. - -This caused hibernate on Intel hardware to result in a lot of memory -corruptions on resume. See for example - - http://bugzilla.kernel.org/show_bug.cgi?id=13811 - -Reported-by: Evengi Golov (in bugzilla) -Signed-off-by: Dave Airlie -Tested-by: M. Vefa Bicakci -Cc: stable@kernel.org -Cc: Chris Wilson -Cc: KOSAKI Motohiro -Cc: Hugh Dickins -Signed-off-by: Linus Torvalds ---- - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 9ded3da..0743858 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -2239,7 +2239,7 @@ i915_gem_object_get_pages(struct drm_gem_object *obj, - mapping = inode->i_mapping; - for (i = 0; i < page_count; i++) { - page = read_cache_page_gfp(mapping, i, -- mapping_gfp_mask (mapping) | -+ GFP_HIGHUSER | - __GFP_COLD | - gfpmask); - if (IS_ERR(page)) diff --git a/drm-upgrayedd.patch b/drm-upgrayedd.patch index 752567b..08f039b 100644 --- a/drm-upgrayedd.patch +++ b/drm-upgrayedd.patch @@ -817,9 +817,9 @@ index a75ca63..766c468 100644 atomic_inc(&dev->counts[_DRM_STAT_IOCTLS]); ++file_priv->ioctl_count; @@ -471,7 +502,13 @@ int drm_ioctl(struct inode *inode, struct file *filp, - goto err_i1; - } - } + } else + memset(kdata, 0, _IOC_SIZE(cmd)); + - retcode = func(dev, kdata, file_priv); + if (ioctl->flags & DRM_UNLOCKED) + retcode = func(dev, kdata, file_priv); diff --git a/kernel.spec b/kernel.spec index 43f977f..d7bc01e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -47,7 +47,7 @@ Summary: The Linux kernel # reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec). # scripts/rebase.sh should be made to do that for you, actually. # -%global baserelease 164 +%global baserelease 165 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -59,9 +59,9 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 20 +%define stable_update 21 # Is it a -stable RC? -%define stable_rc 0 +%define stable_rc 1 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev .%{stable_update} @@ -722,8 +722,6 @@ Patch1813: drm-radeon-pm.patch Patch1818: drm-i915-resume-force-mode.patch Patch1819: drm-intel-big-hammer.patch Patch1820: drm-intel-no-tv-hotplug.patch -Patch1821: drm-i915-fix-hibernate-memory-corruption.patch -Patch1822: drm-i915-add-reclaimable-to-page-allocations.patch Patch1823: drm-intel-945gm-stability-fixes.patch # intel drm is all merged upstream Patch1824: drm-intel-next.patch @@ -1461,9 +1459,6 @@ ApplyPatch drm-intel-acpi-populate-didl.patch ApplyPatch drm-intel-make-lvds-work.patch # gm45 stability fixes ApplyPatch drm-intel-945gm-stability-fixes.patch -# hibernation memory corruption fixes -ApplyPatch drm-i915-fix-hibernate-memory-corruption.patch -ApplyPatch drm-i915-add-reclaimable-to-page-allocations.patch ApplyPatch drm-nouveau-g80-ctxprog.patch ApplyPatch drm-nouveau-tvout-disable.patch @@ -2202,6 +2197,13 @@ fi %kernel_variant_files -k vmlinux %{with_kdump} kdump %changelog +* Wed Aug 25 2010 Chuck Ebbert 2.6.32.21-165.rc1 +- Linux 2.6.32.21-rc1 +- Drop merged patches: + drm-i915-add-reclaimable-to-page-allocations.patch + drm-i915-fix-hibernate-memory-corruption.patch +- Fix up execshield and DRM upgrade patches to apply after 2.6.32.21 + * Sat Aug 21 2010 Chuck Ebbert 2.6.32.20-164 - Linux 2.6.32.20 - Drop merged patches: diff --git a/linux-2.6-execshield.patch b/linux-2.6-execshield.patch index 61e444f..8f0edb2 100644 --- a/linux-2.6-execshield.patch +++ b/linux-2.6-execshield.patch @@ -737,15 +737,16 @@ index 73f5e4b..814b95f 100644 static void unmap_region(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, unsigned long start, unsigned long end); -@@ -389,6 +402,8 @@ static inline void - __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma, - struct vm_area_struct *prev, struct rb_node *rb_parent) +@@ -389,6 +402,9 @@ static inline void { + struct vm_area_struct *next; + + if (vma->vm_flags & VM_EXEC) + arch_add_exec_range(mm, vma->vm_end); ++ + vma->vm_prev = prev; if (prev) { - vma->vm_next = prev->vm_next; - prev->vm_next = vma; + next = prev->vm_next; @@ -491,6 +506,8 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma, rb_erase(&vma->vm_rb, &mm->mm_rb); if (mm->mmap_cache == vma) diff --git a/sources b/sources index 027f2bd..e0e64a3 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ 260551284ac224c3a43c4adac7df4879 linux-2.6.32.tar.bz2 37cd37164dd7f288dc84f831fc33a598 patch-2.6.32.20.bz2 +6341e8071147c9a270f5119c4a32c850 patch-2.6.32.21-rc1.bz2