Revert "arm64/mm: Limit TASK_SIZE_64 ..." and add breaks on incompatible mozjs

mozjs assumed VAs would never be wider than 47 bits.  Add versioned
Breaks to force upgrades of those packages.

(luajit has the same problem but only the experimental version
supports arm64.  I assume this will be fixed before it goes into
unstable, so we don't need it in Breaks.)
This commit is contained in:
Ben Hutchings 2016-12-08 22:03:58 +00:00
parent 9287597ec2
commit a462c39f5d
3 changed files with 1 additions and 28 deletions

View File

@ -10,6 +10,7 @@ vdso: true
[image]
install-stem: vmlinuz
breaks: mozjs (<< 1.8.5-1.0.0+dfsg-5.1~), mozjs24 (<< 24.2.0-4~)
[arm64_description]
hardware: 64-bit ARMv8 machines

View File

@ -1,27 +0,0 @@
From: Ben Hutchings <ben@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@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)

View File

@ -46,7 +46,6 @@ 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