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

mozjs assumed VAs would never be wider than 47 bits.  Add Breaks to
force upgrades of those packages.  For mozjs 1.8.5 the fix requires an
ABI change so this is unversioned; for mozjs 24 there was no ABI
change so this is versioned.

(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 b6e260f0b4
commit 9e92fc9bab
4 changed files with 3 additions and 28 deletions

2
debian/changelog vendored
View File

@ -18,6 +18,8 @@ linux (4.9-1~exp1) UNRELEASED; urgency=medium
* [armhf] gpio: Enable GPIO_MCP23S08 as module (Closes: #845064)
* aufs: Update support patchset to aufs4.9-20161219
* Use debhelper compatibility level 9
* [arm64] Revert "arm64/mm: Limit TASK_SIZE_64 ..." and add breaks on
incompatible mozjs
[ Uwe Kleine-König ]
* enable `perf data' support; patch by Sebastian Andrzej Siewior

View File

@ -10,6 +10,7 @@ vdso: true
[image]
install-stem: vmlinuz
breaks: libmozjs185-1.0, libmozjs-24-0 (<< 24.2.0-5.1~)
[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
bugfix/powerpc/powerpc-boot-request-no-dynamic-linker-for-boot-wrap.patch
# Arch features