a0f7ab8a6a
cherry-pick from upstream 4.14
245 lines
10 KiB
Diff
245 lines
10 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Josh Poimboeuf <jpoimboe@redhat.com>
|
|
Date: Mon, 6 Nov 2017 07:21:50 -0600
|
|
Subject: [PATCH] objtool: Move synced files to their original relative
|
|
locations
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
CVE-2017-5754
|
|
|
|
This will enable more straightforward comparisons, and it also makes the
|
|
files 100% identical.
|
|
|
|
Suggested-by: Ingo Molnar <mingo@kernel.org>
|
|
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
|
|
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
|
Cc: Peter Zijlstra <peterz@infradead.org>
|
|
Cc: Thomas Gleixner <tglx@linutronix.de>
|
|
Link: http://lkml.kernel.org/r/407b2aaa317741f48fcf821592c0e96ab3be1890.1509974346.git.jpoimboe@redhat.com
|
|
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
|
(backported from commit b90671a530137f42325b89c0848ca58d865c1710)
|
|
Signed-off-by: Andy Whitcroft <apw@canonical.com>
|
|
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
|
|
(cherry picked from commit 3673cdbc4be1671fad71a4968a9f55357d9d356c)
|
|
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
|
---
|
|
.../arch/x86/{insn => lib}/x86-opcode-map.txt | 0
|
|
tools/objtool/Makefile | 22 ++++++++++++----------
|
|
.../objtool/arch/x86/{insn => include/asm}/inat.h | 2 +-
|
|
.../arch/x86/{insn => include/asm}/inat_types.h | 0
|
|
.../objtool/arch/x86/{insn => include/asm}/insn.h | 2 +-
|
|
.../objtool/{ => arch/x86/include/asm}/orc_types.h | 0
|
|
tools/objtool/orc.h | 2 +-
|
|
tools/objtool/arch/x86/decode.c | 6 +++---
|
|
tools/objtool/arch/x86/{insn => lib}/inat.c | 2 +-
|
|
tools/objtool/arch/x86/{insn => lib}/insn.c | 4 ++--
|
|
tools/objtool/.gitignore | 2 +-
|
|
tools/objtool/arch/x86/Build | 10 +++++-----
|
|
.../arch/x86/{insn => tools}/gen-insn-attr-x86.awk | 0
|
|
13 files changed, 27 insertions(+), 25 deletions(-)
|
|
rename tools/objtool/arch/x86/{insn => lib}/x86-opcode-map.txt (100%)
|
|
rename tools/objtool/arch/x86/{insn => include/asm}/inat.h (99%)
|
|
rename tools/objtool/arch/x86/{insn => include/asm}/inat_types.h (100%)
|
|
rename tools/objtool/arch/x86/{insn => include/asm}/insn.h (99%)
|
|
rename tools/objtool/{ => arch/x86/include/asm}/orc_types.h (100%)
|
|
rename tools/objtool/arch/x86/{insn => lib}/inat.c (99%)
|
|
rename tools/objtool/arch/x86/{insn => lib}/insn.c (99%)
|
|
rename tools/objtool/arch/x86/{insn => tools}/gen-insn-attr-x86.awk (100%)
|
|
|
|
diff --git a/tools/objtool/arch/x86/insn/x86-opcode-map.txt b/tools/objtool/arch/x86/lib/x86-opcode-map.txt
|
|
similarity index 100%
|
|
rename from tools/objtool/arch/x86/insn/x86-opcode-map.txt
|
|
rename to tools/objtool/arch/x86/lib/x86-opcode-map.txt
|
|
diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
|
|
index 3a6425fefc43..f95f48e445c3 100644
|
|
--- a/tools/objtool/Makefile
|
|
+++ b/tools/objtool/Makefile
|
|
@@ -24,7 +24,9 @@ OBJTOOL_IN := $(OBJTOOL)-in.o
|
|
|
|
all: $(OBJTOOL)
|
|
|
|
-INCLUDES := -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi
|
|
+INCLUDES := -I$(srctree)/tools/include \
|
|
+ -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \
|
|
+ -I$(srctree)/tools/objtool/arch/$(HOSTARCH)/include
|
|
CFLAGS += -Wall -Werror $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -fomit-frame-pointer -O2 -g $(INCLUDES)
|
|
LDFLAGS += -lelf $(LIBSUBCMD)
|
|
|
|
@@ -44,16 +46,16 @@ $(OBJTOOL_IN): fixdep FORCE
|
|
$(OBJTOOL): $(LIBSUBCMD) $(OBJTOOL_IN)
|
|
@(diff -I 2>&1 | grep -q 'option requires an argument' && \
|
|
test -d ../../kernel -a -d ../../tools -a -d ../objtool && (( \
|
|
- diff -I'^#include' arch/x86/insn/insn.c ../../arch/x86/lib/insn.c >/dev/null && \
|
|
- diff -I'^#include' arch/x86/insn/inat.c ../../arch/x86/lib/inat.c >/dev/null && \
|
|
- diff arch/x86/insn/x86-opcode-map.txt ../../arch/x86/lib/x86-opcode-map.txt >/dev/null && \
|
|
- diff arch/x86/insn/gen-insn-attr-x86.awk ../../arch/x86/tools/gen-insn-attr-x86.awk >/dev/null && \
|
|
- diff -I'^#include' arch/x86/insn/insn.h ../../arch/x86/include/asm/insn.h >/dev/null && \
|
|
- diff -I'^#include' arch/x86/insn/inat.h ../../arch/x86/include/asm/inat.h >/dev/null && \
|
|
- diff -I'^#include' arch/x86/insn/inat_types.h ../../arch/x86/include/asm/inat_types.h >/dev/null) \
|
|
+ diff arch/x86/lib/insn.c ../../arch/x86/lib/insn.c >/dev/null && \
|
|
+ diff arch/x86/lib/inat.c ../../arch/x86/lib/inat.c >/dev/null && \
|
|
+ diff arch/x86/lib/x86-opcode-map.txt ../../arch/x86/lib/x86-opcode-map.txt >/dev/null && \
|
|
+ diff arch/x86/tools/gen-insn-attr-x86.awk ../../arch/x86/tools/gen-insn-attr-x86.awk >/dev/null && \
|
|
+ diff arch/x86/include/asm/insn.h ../../arch/x86/include/asm/insn.h >/dev/null && \
|
|
+ diff arch/x86/include/asm/inat.h ../../arch/x86/include/asm/inat.h >/dev/null && \
|
|
+ diff arch/x86/include/asm/inat_types.h ../../arch/x86/include/asm/inat_types.h >/dev/null) \
|
|
|| echo "warning: objtool: x86 instruction decoder differs from kernel" >&2 )) || true
|
|
@(test -d ../../kernel -a -d ../../tools -a -d ../objtool && (( \
|
|
- diff ../../arch/x86/include/asm/orc_types.h orc_types.h >/dev/null) \
|
|
+ diff ../../arch/x86/include/asm/orc_types.h arch/x86/include/asm/orc_types.h >/dev/null) \
|
|
|| echo "warning: objtool: orc_types.h differs from kernel" >&2 )) || true
|
|
$(QUIET_LINK)$(CC) $(OBJTOOL_IN) $(LDFLAGS) -o $@
|
|
|
|
@@ -64,7 +66,7 @@ $(LIBSUBCMD): fixdep FORCE
|
|
clean:
|
|
$(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL)
|
|
$(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
|
|
- $(Q)$(RM) $(OUTPUT)arch/x86/insn/inat-tables.c $(OUTPUT)fixdep
|
|
+ $(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep
|
|
|
|
FORCE:
|
|
|
|
diff --git a/tools/objtool/arch/x86/insn/inat.h b/tools/objtool/arch/x86/include/asm/inat.h
|
|
similarity index 99%
|
|
rename from tools/objtool/arch/x86/insn/inat.h
|
|
rename to tools/objtool/arch/x86/include/asm/inat.h
|
|
index 125ecd2a300d..02aff0867211 100644
|
|
--- a/tools/objtool/arch/x86/insn/inat.h
|
|
+++ b/tools/objtool/arch/x86/include/asm/inat.h
|
|
@@ -20,7 +20,7 @@
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
*/
|
|
-#include "inat_types.h"
|
|
+#include <asm/inat_types.h>
|
|
|
|
/*
|
|
* Internal bits. Don't use bitmasks directly, because these bits are
|
|
diff --git a/tools/objtool/arch/x86/insn/inat_types.h b/tools/objtool/arch/x86/include/asm/inat_types.h
|
|
similarity index 100%
|
|
rename from tools/objtool/arch/x86/insn/inat_types.h
|
|
rename to tools/objtool/arch/x86/include/asm/inat_types.h
|
|
diff --git a/tools/objtool/arch/x86/insn/insn.h b/tools/objtool/arch/x86/include/asm/insn.h
|
|
similarity index 99%
|
|
rename from tools/objtool/arch/x86/insn/insn.h
|
|
rename to tools/objtool/arch/x86/include/asm/insn.h
|
|
index e23578c7b1be..b3e32b010ab1 100644
|
|
--- a/tools/objtool/arch/x86/insn/insn.h
|
|
+++ b/tools/objtool/arch/x86/include/asm/insn.h
|
|
@@ -21,7 +21,7 @@
|
|
*/
|
|
|
|
/* insn_attr_t is defined in inat.h */
|
|
-#include "inat.h"
|
|
+#include <asm/inat.h>
|
|
|
|
struct insn_field {
|
|
union {
|
|
diff --git a/tools/objtool/orc_types.h b/tools/objtool/arch/x86/include/asm/orc_types.h
|
|
similarity index 100%
|
|
rename from tools/objtool/orc_types.h
|
|
rename to tools/objtool/arch/x86/include/asm/orc_types.h
|
|
diff --git a/tools/objtool/orc.h b/tools/objtool/orc.h
|
|
index a4139e386ef3..b0e92a6d0903 100644
|
|
--- a/tools/objtool/orc.h
|
|
+++ b/tools/objtool/orc.h
|
|
@@ -18,7 +18,7 @@
|
|
#ifndef _ORC_H
|
|
#define _ORC_H
|
|
|
|
-#include "orc_types.h"
|
|
+#include <asm/orc_types.h>
|
|
|
|
struct objtool_file;
|
|
|
|
diff --git a/tools/objtool/arch/x86/decode.c b/tools/objtool/arch/x86/decode.c
|
|
index 4559a21a8de2..92f57996d66c 100644
|
|
--- a/tools/objtool/arch/x86/decode.c
|
|
+++ b/tools/objtool/arch/x86/decode.c
|
|
@@ -19,9 +19,9 @@
|
|
#include <stdlib.h>
|
|
|
|
#define unlikely(cond) (cond)
|
|
-#include "insn/insn.h"
|
|
-#include "insn/inat.c"
|
|
-#include "insn/insn.c"
|
|
+#include <asm/insn.h>
|
|
+#include "lib/inat.c"
|
|
+#include "lib/insn.c"
|
|
|
|
#include "../../elf.h"
|
|
#include "../../arch.h"
|
|
diff --git a/tools/objtool/arch/x86/insn/inat.c b/tools/objtool/arch/x86/lib/inat.c
|
|
similarity index 99%
|
|
rename from tools/objtool/arch/x86/insn/inat.c
|
|
rename to tools/objtool/arch/x86/lib/inat.c
|
|
index e4bf28e6f4c7..c1f01a8e9f65 100644
|
|
--- a/tools/objtool/arch/x86/insn/inat.c
|
|
+++ b/tools/objtool/arch/x86/lib/inat.c
|
|
@@ -18,7 +18,7 @@
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
*/
|
|
-#include "insn.h"
|
|
+#include <asm/insn.h>
|
|
|
|
/* Attribute tables are generated from opcode map */
|
|
#include "inat-tables.c"
|
|
diff --git a/tools/objtool/arch/x86/insn/insn.c b/tools/objtool/arch/x86/lib/insn.c
|
|
similarity index 99%
|
|
rename from tools/objtool/arch/x86/insn/insn.c
|
|
rename to tools/objtool/arch/x86/lib/insn.c
|
|
index ca983e2bea8b..1088eb8f3a5f 100644
|
|
--- a/tools/objtool/arch/x86/insn/insn.c
|
|
+++ b/tools/objtool/arch/x86/lib/insn.c
|
|
@@ -23,8 +23,8 @@
|
|
#else
|
|
#include <string.h>
|
|
#endif
|
|
-#include "inat.h"
|
|
-#include "insn.h"
|
|
+#include <asm/inat.h>
|
|
+#include <asm/insn.h>
|
|
|
|
/* Verify next sizeof(t) bytes can be on the same instruction */
|
|
#define validate_next(t, insn, n) \
|
|
diff --git a/tools/objtool/.gitignore b/tools/objtool/.gitignore
|
|
index d3102c865a95..914cff12899b 100644
|
|
--- a/tools/objtool/.gitignore
|
|
+++ b/tools/objtool/.gitignore
|
|
@@ -1,3 +1,3 @@
|
|
-arch/x86/insn/inat-tables.c
|
|
+arch/x86/lib/inat-tables.c
|
|
objtool
|
|
fixdep
|
|
diff --git a/tools/objtool/arch/x86/Build b/tools/objtool/arch/x86/Build
|
|
index debbdb0b5c43..b998412c017d 100644
|
|
--- a/tools/objtool/arch/x86/Build
|
|
+++ b/tools/objtool/arch/x86/Build
|
|
@@ -1,12 +1,12 @@
|
|
objtool-y += decode.o
|
|
|
|
-inat_tables_script = arch/x86/insn/gen-insn-attr-x86.awk
|
|
-inat_tables_maps = arch/x86/insn/x86-opcode-map.txt
|
|
+inat_tables_script = arch/x86/tools/gen-insn-attr-x86.awk
|
|
+inat_tables_maps = arch/x86/lib/x86-opcode-map.txt
|
|
|
|
-$(OUTPUT)arch/x86/insn/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
|
|
+$(OUTPUT)arch/x86/lib/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
|
|
$(call rule_mkdir)
|
|
$(Q)$(call echo-cmd,gen)$(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@
|
|
|
|
-$(OUTPUT)arch/x86/decode.o: $(OUTPUT)arch/x86/insn/inat-tables.c
|
|
+$(OUTPUT)arch/x86/decode.o: $(OUTPUT)arch/x86/lib/inat-tables.c
|
|
|
|
-CFLAGS_decode.o += -I$(OUTPUT)arch/x86/insn
|
|
+CFLAGS_decode.o += -I$(OUTPUT)arch/x86/lib
|
|
diff --git a/tools/objtool/arch/x86/insn/gen-insn-attr-x86.awk b/tools/objtool/arch/x86/tools/gen-insn-attr-x86.awk
|
|
similarity index 100%
|
|
rename from tools/objtool/arch/x86/insn/gen-insn-attr-x86.awk
|
|
rename to tools/objtool/arch/x86/tools/gen-insn-attr-x86.awk
|
|
--
|
|
2.14.2
|
|
|