summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Ebbert <cebbert@redhat.com>2010-08-25 20:14:08 -0400
committerChuck Ebbert <cebbert@redhat.com>2010-08-25 20:14:08 -0400
commit4db245b3bacdaae59775458cd6c889b8684eb78b (patch)
treea9343d813a6c41112c363867e905b02917fe51f9
parent35bc236c21a5fc4f16c986dece9689b47dde49ac (diff)
downloaddom0-kernel-4db245b3bacdaae59775458cd6c889b8684eb78b.tar.gz
dom0-kernel-4db245b3bacdaae59775458cd6c889b8684eb78b.tar.xz
dom0-kernel-4db245b3bacdaae59775458cd6c889b8684eb78b.zip
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
-rw-r--r--drm-i915-add-reclaimable-to-page-allocations.patch48
-rw-r--r--drm-i915-fix-hibernate-memory-corruption.patch41
-rw-r--r--drm-upgrayedd.patch6
-rw-r--r--kernel.spec18
-rw-r--r--linux-2.6-execshield.patch11
-rw-r--r--sources1
6 files changed, 20 insertions, 105 deletions
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 <torvalds@linux-foundation.org>
-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 <bicave@superonline.com>
-Cc: Dave Airlie <airlied@gmail.com>
-Cc: Chris Wilson <chris@chris-wilson.co.uk>
-Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
-Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
-Cc: stable@kernel.org
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
-
-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 <torvalds@linux-foundation.org>
-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 <airlied@redhat.com>
-Tested-by: M. Vefa Bicakci <bicave@superonline.com>
-Cc: stable@kernel.org
-Cc: Chris Wilson <chris@chris-wilson.co.uk>
-Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
-Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
-
-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 <cebbert@redhat.com> 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 <cebbert@redhat.com> 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