[linux] 06/06: [arm64] mm: Limit TASK_SIZE_64 for compatibility

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Fri Sep 16 15:41:12 UTC 2016


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch master
in repository linux.

commit 2d327101d18359f2c9b0e01a5c8aa62e0c8b44a5
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Fri Sep 16 16:39:12 2016 +0100

    [arm64] mm: Limit TASK_SIZE_64 for compatibility
---
 debian/changelog                                   |  1 +
 ...4-mm-limit-task_size_64-for-compatibility.patch | 27 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 29 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 8aca946..af97475 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ linux (4.8~rc5-1~exp2) UNRELEASED; urgency=medium
     - Set -fdebug-prefix-map=... in compiler options for kernel and userland
     - linux-headers: Stop including unused arch/*/kernel/asm-offsets.s files
   * linux-doc: Exclude Sphinx support code and Makefiles
+  * [arm64] mm: Limit TASK_SIZE_64 for compatibility
 
  -- Ben Hutchings <ben at decadent.org.uk>  Fri, 16 Sep 2016 16:39:53 +0100
 
diff --git a/debian/patches/bugfix/arm64/arm64-mm-limit-task_size_64-for-compatibility.patch b/debian/patches/bugfix/arm64/arm64-mm-limit-task_size_64-for-compatibility.patch
new file mode 100644
index 0000000..bc8423b
--- /dev/null
+++ b/debian/patches/bugfix/arm64/arm64-mm-limit-task_size_64-for-compatibility.patch
@@ -0,0 +1,27 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Fri, 16 Sep 2016 16:32:23 +0100
+Subject: arm64/mm: Limit TASK_SIZE_64 for compatibility
+
+Some programs assume they can use 17 tag bits in a 64-bit pointer,
+which works on most other 64-bit architectures but not on arm64 with
+CONFIG_ARM64_VA_BITS_48.  To maintain compatibility with these
+programs, limit TASK_SIZE_64 to a maximum of 1 << 47.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+---
+
+--- a/arch/arm64/include/asm/memory.h
++++ b/arch/arm64/include/asm/memory.h
+@@ -74,7 +74,12 @@
+ #define PCI_IO_END		(VMEMMAP_START - SZ_2M)
+ #define PCI_IO_START		(PCI_IO_END - PCI_IO_SIZE)
+ #define FIXADDR_TOP		(PCI_IO_START - SZ_2M)
++#if VA_BITS <= 47
+ #define TASK_SIZE_64		(UL(1) << VA_BITS)
++#else
++/* User-space might use up to 17 tag bits in 64-bit pointers */
++#define TASK_SIZE_64		(UL(1) << 47)
++#endif
+ 
+ #ifdef CONFIG_COMPAT
+ #define TASK_SIZE_32		UL(0x100000000)
diff --git a/debian/patches/series b/debian/patches/series
index 51137e0..e797296 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -45,6 +45,7 @@ bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
 debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch
 
 # Arch bug fixes
+bugfix/arm64/arm64-mm-limit-task_size_64-for-compatibility.patch
 
 # Arch features
 features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list