linux/arch/alpha/kernel
Eric W. Biederman 3b477a0296 alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
[ Upstream commit b029628be2 ]

Richard Henderson <richard.henderson@linaro.org> writes[1]:

> There was a Spec benchmark (I forget which) which was memory bound and ran
> twice as fast with 32-bit pointers.
>
> I copied the idea from DEC to the ELF abi, but never did all the other work
> to allow the toolchain to take advantage.
>
> Amusingly, a later Spec changed the benchmark data sets to not fit into a
> 32-bit address space, specifically because of this.
>
> I expect one could delete the ELF bit and personality and no one would
> notice. Not even the 10 remaining Alpha users.

In [2] it was pointed out that parts of setarch weren't working
properly on alpha because it has it's own SET_PERSONALITY
implementation.  In the discussion that followed Richard Henderson
pointed out that the 32bit pointer support for alpha was never
completed.

Fix this by removing alpha's 32bit pointer support.

As a bit of paranoia refuse to execute any alpha binaries that have
the EF_ALPHA_32BIT flag set.  Just in case someone somewhere has
binaries that try to use alpha's 32bit pointer support.

Link: https://lkml.kernel.org/r/CAFXwXrkgu=4Qn-v1PjnOR4SG0oUb9LSa0g6QXpBq4ttm52pJOQ@mail.gmail.com [1]
Link: https://lkml.kernel.org/r/20250103140148.370368-1-glaubitz@physik.fu-berlin.de [2]
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Link: https://lore.kernel.org/r/87y0zfs26i.fsf_-_@email.froward.int.ebiederm.org
Signed-off-by: Kees Cook <kees@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-03-22 12:54:15 -07:00
..
syscalls mseal: wire up mseal syscall 2024-05-23 19:40:26 -07:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
asm-offsets.c alpha: replace hardcoded stack offsets with autogenerated ones 2025-02-21 14:01:35 +01:00
audit.c audit: add support for the openat2 syscall 2021-10-01 16:52:48 -04:00
bugs.c alpha: missing includes 2024-05-03 22:09:30 +02:00
console.c alpha: missing includes 2024-05-03 22:09:30 +02:00
core_cia.c alpha: don't make functions public without a reason 2024-05-03 22:09:21 +02:00
core_irongate.c alpha: missing includes 2024-05-03 22:09:30 +02:00
core_marvel.c alpha: don't make functions public without a reason 2024-05-03 22:09:21 +02:00
core_mcpcia.c memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
core_polaris.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
core_t2.c alpha: jensen, t2 - make __EXTERN_INLINE same as for the rest 2024-05-03 22:09:37 +02:00
core_titan.c mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
core_tsunami.c memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
core_wildfire.c alpha: don't make functions public without a reason 2024-05-03 22:09:21 +02:00
entry.S alpha: align stack for page fault and user unaligned trap handlers 2025-02-21 14:01:35 +01:00
err_common.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
err_ev6.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
err_ev7.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
err_impl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
err_marvel.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
err_titan.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
es1888.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
gct.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io.c alpha: sort scr_mem{cpy,move}w() out 2024-05-03 22:08:50 +02:00
irq.c alpha: missing includes 2024-05-03 22:09:30 +02:00
irq_alpha.c alpha: Replace setup_irq() by request_irq() 2020-03-29 21:03:41 +02:00
irq_i8259.c alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
irq_impl.h alpha: Replace setup_irq() by request_irq() 2020-03-29 21:03:41 +02:00
irq_pyxis.c alpha: Replace setup_irq() by request_irq() 2020-03-29 21:03:41 +02:00
irq_srm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
machvec_impl.h alpha: drop pre-EV56 support 2024-05-06 12:05:00 +02:00
Makefile alpha: cabriolet: remove EV5 CPU support 2024-05-03 22:10:03 +02:00
module.c alpha: fix R_ALPHA_LITERAL reloc for large modules 2023-02-14 12:37:18 -05:00
osf_sys.c alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support 2025-03-22 12:54:15 -07:00
pc873xx.c alpha: eliminate old-style function definitions 2021-05-06 19:24:11 -07:00
pc873xx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci-sysfs.c alpha: pci-sysfs: fix all kernel-doc warnings 2021-09-08 11:50:25 -07:00
pci.c PCI: Introduce pci_dev_for_each_resource() 2023-04-04 10:43:52 -05:00
pci_impl.h alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
pci_iommu.c change alloc_pages name in dma_map_ops to avoid name conflicts 2024-04-25 20:55:53 -07:00
perf_event.c alpha: don't make functions public without a reason 2024-05-03 22:09:21 +02:00
process.c sched/idle: Mark arch_cpu_idle_dead() __noreturn 2023-03-08 08:44:28 -08:00
proto.h alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
ptrace.c alpha: lazy FPU switching 2023-02-24 23:14:22 -05:00
rtc.c rtc: Add support for configuring the UIP timeout for RTC reads 2023-12-17 22:33:55 +01:00
setup.c alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
signal.c alpha: lazy FPU switching 2023-02-24 23:14:22 -05:00
smc37c93x.c alpha: missing includes 2024-05-03 22:09:30 +02:00
smc37c669.c alpha: missing includes 2024-05-03 22:09:30 +02:00
smp.c alpha: missing includes 2024-05-03 22:09:30 +02:00
srm_env.c proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
srmcons.c alpha: missing includes 2024-05-03 22:09:30 +02:00
sys_alcor.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_cabriolet.c alpha: cabriolet: remove EV5 CPU support 2024-05-03 22:10:03 +02:00
sys_dp264.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_eiger.c alpha: remove unneeded semicolon in sys_eiger.c 2020-06-12 17:43:17 -07:00
sys_marvel.c alpha: remove DISCONTIGMEM and NUMA 2021-06-29 10:53:55 -07:00
sys_miata.c alpha: Streamline convoluted PCI error handling 2023-10-10 16:26:56 -05:00
sys_mikasa.c alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
sys_nautilus.c alpha: missing includes 2024-05-03 22:09:30 +02:00
sys_noritake.c alpha: remove LCA and APECS based machines 2024-05-03 22:09:59 +02:00
sys_rawhide.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_ruffian.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_rx164.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_sable.c alpha: sable: remove early machine support 2024-05-03 22:09:55 +02:00
sys_sx164.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_takara.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_titan.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sys_wildfire.c alpha: remove DISCONTIGMEM and NUMA 2021-06-29 10:53:55 -07:00
systbls.S alpha: syscalls: switch to generic syscalltbl.sh 2021-04-25 05:25:22 +09:00
termios.c termios: start unifying non-UAPI parts of asm/termios.h 2022-09-09 10:44:34 +02:00
time.c alpha: Replace setup_irq() by request_irq() 2020-03-29 21:03:41 +02:00
traps.c alpha: align stack for page fault and user unaligned trap handlers 2025-02-21 14:01:35 +01:00
vmlinux.lds.S objtool/idle: Validate __cpuidle code as noinstr 2023-01-13 11:48:15 +01:00