]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.14.21/selftests-x86-disable-tests-requiring-32-bit-support-on-pure-64-bit-systems.patch
fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 4.14.21 / selftests-x86-disable-tests-requiring-32-bit-support-on-pure-64-bit-systems.patch
1 From 9279ddf23ce78ff2676e8e8e19fec0f022c26d04 Mon Sep 17 00:00:00 2001
2 From: Dominik Brodowski <linux@dominikbrodowski.net>
3 Date: Tue, 13 Feb 2018 09:15:19 +0100
4 Subject: selftests/x86: Disable tests requiring 32-bit support on pure 64-bit systems
5
6 From: Dominik Brodowski <linux@dominikbrodowski.net>
7
8 commit 9279ddf23ce78ff2676e8e8e19fec0f022c26d04 upstream.
9
10 The ldt_gdt and ptrace_syscall selftests, even in their 64-bit variant, use
11 hard-coded 32-bit syscall numbers and call "int $0x80".
12
13 This will fail on 64-bit systems with CONFIG_IA32_EMULATION=y disabled.
14
15 Therefore, do not build these tests if we cannot build 32-bit binaries
16 (which should be a good approximation for CONFIG_IA32_EMULATION=y being enabled).
17
18 Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
19 Cc: Andy Lutomirski <luto@kernel.org>
20 Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
21 Cc: Linus Torvalds <torvalds@linux-foundation.org>
22 Cc: Peter Zijlstra <peterz@infradead.org>
23 Cc: Thomas Gleixner <tglx@linutronix.de>
24 Cc: linux-kselftest@vger.kernel.org
25 Cc: shuah@kernel.org
26 Link: http://lkml.kernel.org/r/20180211111013.16888-6-linux@dominikbrodowski.net
27 Signed-off-by: Ingo Molnar <mingo@kernel.org>
28 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
29
30 ---
31 tools/testing/selftests/x86/Makefile | 20 +++++++++++++-------
32 1 file changed, 13 insertions(+), 7 deletions(-)
33
34 --- a/tools/testing/selftests/x86/Makefile
35 +++ b/tools/testing/selftests/x86/Makefile
36 @@ -5,16 +5,26 @@ include ../lib.mk
37
38 .PHONY: all all_32 all_64 warn_32bit_failure clean
39
40 -TARGETS_C_BOTHBITS := single_step_syscall sysret_ss_attrs syscall_nt ptrace_syscall test_mremap_vdso \
41 - check_initial_reg_state sigreturn ldt_gdt iopl mpx-mini-test ioperm \
42 +UNAME_M := $(shell uname -m)
43 +CAN_BUILD_I386 := $(shell ./check_cc.sh $(CC) trivial_32bit_program.c -m32)
44 +CAN_BUILD_X86_64 := $(shell ./check_cc.sh $(CC) trivial_64bit_program.c)
45 +
46 +TARGETS_C_BOTHBITS := single_step_syscall sysret_ss_attrs syscall_nt test_mremap_vdso \
47 + check_initial_reg_state sigreturn iopl mpx-mini-test ioperm \
48 protection_keys test_vdso test_vsyscall
49 TARGETS_C_32BIT_ONLY := entry_from_vm86 syscall_arg_fault test_syscall_vdso unwind_vdso \
50 test_FCMOV test_FCOMI test_FISTTP \
51 vdso_restorer
52 TARGETS_C_64BIT_ONLY := fsgsbase sysret_rip
53 +# Some selftests require 32bit support enabled also on 64bit systems
54 +TARGETS_C_32BIT_NEEDED := ldt_gdt ptrace_syscall
55
56 -TARGETS_C_32BIT_ALL := $(TARGETS_C_BOTHBITS) $(TARGETS_C_32BIT_ONLY)
57 +TARGETS_C_32BIT_ALL := $(TARGETS_C_BOTHBITS) $(TARGETS_C_32BIT_ONLY) $(TARGETS_C_32BIT_NEEDED)
58 TARGETS_C_64BIT_ALL := $(TARGETS_C_BOTHBITS) $(TARGETS_C_64BIT_ONLY)
59 +ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),11)
60 +TARGETS_C_64BIT_ALL += $(TARGETS_C_32BIT_NEEDED)
61 +endif
62 +
63 BINARIES_32 := $(TARGETS_C_32BIT_ALL:%=%_32)
64 BINARIES_64 := $(TARGETS_C_64BIT_ALL:%=%_64)
65
66 @@ -23,10 +33,6 @@ BINARIES_64 := $(patsubst %,$(OUTPUT)/%,
67
68 CFLAGS := -O2 -g -std=gnu99 -pthread -Wall -no-pie
69
70 -UNAME_M := $(shell uname -m)
71 -CAN_BUILD_I386 := $(shell ./check_cc.sh $(CC) trivial_32bit_program.c -m32)
72 -CAN_BUILD_X86_64 := $(shell ./check_cc.sh $(CC) trivial_64bit_program.c)
73 -
74 ifeq ($(CAN_BUILD_I386),1)
75 all: all_32
76 TEST_PROGS += $(BINARIES_32)