[kernel] r22245 - in dists/wheezy-security/linux/debian: . patches patches/bugfix/x86
Ben Hutchings
benh at moszumanska.debian.org
Sun Jan 11 22:16:58 UTC 2015
Author: benh
Date: Sun Jan 11 22:16:58 2015
New Revision: 22245
Log:
[amd64] Revert NX changes that caused a regresion in 3.2.65 (Closes: #774436)
Added:
dists/wheezy-security/linux/debian/patches/bugfix/x86/revert-x86-64bit-mm-mark-data-bss-brk-to-nx.patch
dists/wheezy-security/linux/debian/patches/bugfix/x86/revert-x86-mm-set-nx-across-entire-pmd-at-boot.patch
Modified:
dists/wheezy-security/linux/debian/changelog
dists/wheezy-security/linux/debian/patches/series
Modified: dists/wheezy-security/linux/debian/changelog
==============================================================================
--- dists/wheezy-security/linux/debian/changelog Sun Jan 11 00:28:32 2015 (r22244)
+++ dists/wheezy-security/linux/debian/changelog Sun Jan 11 22:16:58 2015 (r22245)
@@ -1,3 +1,12 @@
+linux (3.2.65-1+deb7u1~test) UNRELEASED; urgency=medium
+
+ * [amd64] Revert NX changes that caused a regresion in 3.2.65
+ (Closes: #774436)
+ - Revert "x86, mm: Set NX across entire PMD at boot"
+ - Revert "x86, 64bit, mm: Mark data/bss/brk to nx"
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sun, 11 Jan 2015 00:33:09 +0000
+
linux (3.2.65-1) wheezy; urgency=medium
* New upstream stable update:
Added: dists/wheezy-security/linux/debian/patches/bugfix/x86/revert-x86-64bit-mm-mark-data-bss-brk-to-nx.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-security/linux/debian/patches/bugfix/x86/revert-x86-64bit-mm-mark-data-bss-brk-to-nx.patch Sun Jan 11 22:16:58 2015 (r22245)
@@ -0,0 +1,39 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sun, 11 Jan 2015 20:32:41 +0000
+Subject: Revert "x86, 64bit, mm: Mark data/bss/brk to nx"
+Bug-Debian: https://bugs.debian.org/774436
+Bug-Debian: https://bugs.debian.org/774461
+Bug-Debian: https://bugs.debian.org/774526
+Bug-Debian: https://bugs.debian.org/775059
+
+This reverts commit e105c8187b7101e8a8a54ac0218c9d9c9463c636 which
+was commit 72212675d1c96f5db8ec6fb35701879911193158 upstream.
+
+This caused suspend/resume to stop working on at least some systems -
+specifically, the system would reboot when woken.
+
+---
+--- a/arch/x86/mm/init_64.c
++++ b/arch/x86/mm/init_64.c
+@@ -778,7 +778,6 @@ void mark_rodata_ro(void)
+ unsigned long text_end = PAGE_ALIGN((unsigned long) &__stop___ex_table);
+ unsigned long rodata_end = PAGE_ALIGN((unsigned long) &__end_rodata);
+ unsigned long data_start = (unsigned long) &_sdata;
+- unsigned long all_end = PFN_ALIGN(&_end);
+
+ printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n",
+ (end - start) >> 10);
+@@ -787,10 +786,10 @@ void mark_rodata_ro(void)
+ kernel_set_to_readonly = 1;
+
+ /*
+- * The rodata/data/bss/brk section (but not the kernel text!)
+- * should also be not-executable.
++ * The rodata section (but not the kernel text!) should also be
++ * not-executable.
+ */
+- set_memory_nx(rodata_start, (all_end - rodata_start) >> PAGE_SHIFT);
++ set_memory_nx(rodata_start, (end - rodata_start) >> PAGE_SHIFT);
+
+ rodata_test();
+
Added: dists/wheezy-security/linux/debian/patches/bugfix/x86/revert-x86-mm-set-nx-across-entire-pmd-at-boot.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-security/linux/debian/patches/bugfix/x86/revert-x86-mm-set-nx-across-entire-pmd-at-boot.patch Sun Jan 11 22:16:58 2015 (r22245)
@@ -0,0 +1,43 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sun, 11 Jan 2015 00:30:55 +0000
+Subject: Revert "x86, mm: Set NX across entire PMD at boot"
+Bug-Debian: https://bugs.debian.org/774436
+Bug-Debian: https://bugs.debian.org/774461
+Bug-Debian: https://bugs.debian.org/774526
+Bug-Debian: https://bugs.debian.org/775059
+
+This reverts commit a5c187d92d2ce30315f333b9dff33af832e8b443 which
+was commit 45e2a9d4701d8c624d4a4bcdd1084eae31e92f58 upstream.
+
+The previous commit caused suspend/resume to stop working on at least
+some systems - specifically, the system would reboot when woken.
+
+---
+--- a/arch/x86/mm/init_64.c
++++ b/arch/x86/mm/init_64.c
+@@ -778,7 +778,7 @@ void mark_rodata_ro(void)
+ unsigned long text_end = PAGE_ALIGN((unsigned long) &__stop___ex_table);
+ unsigned long rodata_end = PAGE_ALIGN((unsigned long) &__end_rodata);
+ unsigned long data_start = (unsigned long) &_sdata;
+- unsigned long all_end;
++ unsigned long all_end = PFN_ALIGN(&_end);
+
+ printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n",
+ (end - start) >> 10);
+@@ -789,16 +789,7 @@ void mark_rodata_ro(void)
+ /*
+ * The rodata/data/bss/brk section (but not the kernel text!)
+ * should also be not-executable.
+- *
+- * We align all_end to PMD_SIZE because the existing mapping
+- * is a full PMD. If we would align _brk_end to PAGE_SIZE we
+- * split the PMD and the reminder between _brk_end and the end
+- * of the PMD will remain mapped executable.
+- *
+- * Any PMD which was setup after the one which covers _brk_end
+- * has been zapped already via cleanup_highmem().
+ */
+- all_end = roundup((unsigned long)_brk_end, PMD_SIZE);
+ set_memory_nx(rodata_start, (all_end - rodata_start) >> PAGE_SHIFT);
+
+ rodata_test();
Modified: dists/wheezy-security/linux/debian/patches/series
==============================================================================
--- dists/wheezy-security/linux/debian/patches/series Sun Jan 11 00:28:32 2015 (r22244)
+++ dists/wheezy-security/linux/debian/patches/series Sun Jan 11 22:16:58 2015 (r22245)
@@ -1146,3 +1146,5 @@
bugfix/x86/kvm-x86-don-t-report-guest-userspace-emulation-error-to-userspace.patch
bugfix/x86/x86-kvm-clear-paravirt_enabled-on-kvm-guests-for-espfix32-s-benefit.patch
bugfix/all/isofs-fix-infinite-looping-over-ce-entries.patch
+bugfix/x86/revert-x86-mm-set-nx-across-entire-pmd-at-boot.patch
+bugfix/x86/revert-x86-64bit-mm-mark-data-bss-brk-to-nx.patch
More information about the Kernel-svn-changes
mailing list