]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - 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
CommitLineData
9e1c2c07
GKH
1From 9279ddf23ce78ff2676e8e8e19fec0f022c26d04 Mon Sep 17 00:00:00 2001
2From: Dominik Brodowski <linux@dominikbrodowski.net>
3Date: Tue, 13 Feb 2018 09:15:19 +0100
4Subject: selftests/x86: Disable tests requiring 32-bit support on pure 64-bit systems
5
6From: Dominik Brodowski <linux@dominikbrodowski.net>
7
8commit 9279ddf23ce78ff2676e8e8e19fec0f022c26d04 upstream.
9
10The ldt_gdt and ptrace_syscall selftests, even in their 64-bit variant, use
11hard-coded 32-bit syscall numbers and call "int $0x80".
12
13This will fail on 64-bit systems with CONFIG_IA32_EMULATION=y disabled.
14
15Therefore, 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
18Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
19Cc: Andy Lutomirski <luto@kernel.org>
20Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
21Cc: Linus Torvalds <torvalds@linux-foundation.org>
22Cc: Peter Zijlstra <peterz@infradead.org>
23Cc: Thomas Gleixner <tglx@linutronix.de>
24Cc: linux-kselftest@vger.kernel.org
25Cc: shuah@kernel.org
26Link: http://lkml.kernel.org/r/20180211111013.16888-6-linux@dominikbrodowski.net
27Signed-off-by: Ingo Molnar <mingo@kernel.org>
28Signed-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)