x86/insn: Add a __ignore_sync_check__ marker

commit d30c7b820be5c4777fe6c3b0c21f9d0064251e51 upstream.

Add an explicit __ignore_sync_check__ marker which will be used to mark
lines which are supposed to be ignored by file synchronization check
scripts, its advantage being that it explicitly denotes such lines in
the code.

Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Link: https://lkml.kernel.org/r/20210304174237.31945-4-bp@alien8.de
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Borislav Petkov
2021-02-22 13:34:40 +01:00
committed by Greg Kroah-Hartman
parent a3d96c7439
commit 76c513c87f
10 changed files with 36 additions and 20 deletions

View File

@@ -6,7 +6,7 @@
* *
* Written by Masami Hiramatsu <mhiramat@redhat.com> * Written by Masami Hiramatsu <mhiramat@redhat.com>
*/ */
#include <asm/inat_types.h> #include <asm/inat_types.h> /* __ignore_sync_check__ */
/* /*
* Internal bits. Don't use bitmasks directly, because these bits are * Internal bits. Don't use bitmasks directly, because these bits are

View File

@@ -8,7 +8,7 @@
*/ */
/* insn_attr_t is defined in inat.h */ /* insn_attr_t is defined in inat.h */
#include <asm/inat.h> #include <asm/inat.h> /* __ignore_sync_check__ */
struct insn_field { struct insn_field {
union { union {

View File

@@ -4,7 +4,7 @@
* *
* Written by Masami Hiramatsu <mhiramat@redhat.com> * Written by Masami Hiramatsu <mhiramat@redhat.com>
*/ */
#include <asm/insn.h> #include <asm/insn.h> /* __ignore_sync_check__ */
/* Attribute tables are generated from opcode map */ /* Attribute tables are generated from opcode map */
#include "inat-tables.c" #include "inat-tables.c"

View File

@@ -10,10 +10,10 @@
#else #else
#include <string.h> #include <string.h>
#endif #endif
#include <asm/inat.h> #include <asm/inat.h> /*__ignore_sync_check__ */
#include <asm/insn.h> #include <asm/insn.h> /* __ignore_sync_check__ */
#include <asm/emulate_prefix.h> #include <asm/emulate_prefix.h> /* __ignore_sync_check__ */
/* Verify next sizeof(t) bytes can be on the same instruction */ /* Verify next sizeof(t) bytes can be on the same instruction */
#define validate_next(t, insn, n) \ #define validate_next(t, insn, n) \

View File

@@ -6,7 +6,7 @@
* *
* Written by Masami Hiramatsu <mhiramat@redhat.com> * Written by Masami Hiramatsu <mhiramat@redhat.com>
*/ */
#include "inat_types.h" #include "inat_types.h" /* __ignore_sync_check__ */
/* /*
* Internal bits. Don't use bitmasks directly, because these bits are * Internal bits. Don't use bitmasks directly, because these bits are

View File

@@ -8,7 +8,7 @@
*/ */
/* insn_attr_t is defined in inat.h */ /* insn_attr_t is defined in inat.h */
#include "inat.h" #include "inat.h" /* __ignore_sync_check__ */
struct insn_field { struct insn_field {
union { union {

View File

@@ -4,7 +4,7 @@
* *
* Written by Masami Hiramatsu <mhiramat@redhat.com> * Written by Masami Hiramatsu <mhiramat@redhat.com>
*/ */
#include "../include/asm/insn.h" #include "../include/asm/insn.h" /* __ignore_sync_check__ */
/* Attribute tables are generated from opcode map */ /* Attribute tables are generated from opcode map */
#include "inat-tables.c" #include "inat-tables.c"

View File

@@ -10,10 +10,10 @@
#else #else
#include <string.h> #include <string.h>
#endif #endif
#include "../include/asm/inat.h" #include "../include/asm/inat.h" /* __ignore_sync_check__ */
#include "../include/asm/insn.h" #include "../include/asm/insn.h" /* __ignore_sync_check__ */
#include "../include/asm/emulate_prefix.h" #include "../include/asm/emulate_prefix.h" /* __ignore_sync_check__ */
/* Verify next sizeof(t) bytes can be on the same instruction */ /* Verify next sizeof(t) bytes can be on the same instruction */
#define validate_next(t, insn, n) \ #define validate_next(t, insn, n) \

View File

@@ -16,11 +16,14 @@ arch/x86/include/asm/emulate_prefix.h
arch/x86/lib/x86-opcode-map.txt arch/x86/lib/x86-opcode-map.txt
arch/x86/tools/gen-insn-attr-x86.awk arch/x86/tools/gen-insn-attr-x86.awk
include/linux/static_call_types.h include/linux/static_call_types.h
arch/x86/include/asm/inat.h -I '^#include [\"<]\(asm/\)*inat_types.h[\">]'
arch/x86/include/asm/insn.h -I '^#include [\"<]\(asm/\)*inat.h[\">]'
arch/x86/lib/inat.c -I '^#include [\"<]\(../include/\)*asm/insn.h[\">]'
arch/x86/lib/insn.c -I '^#include [\"<]\(../include/\)*asm/in\(at\|sn\).h[\">]' -I '^#include [\"<]\(../include/\)*asm/emulate_prefix.h[\">]'
" "
SYNC_CHECK_FILES='
arch/x86/include/asm/inat.h
arch/x86/include/asm/insn.h
arch/x86/lib/inat.c
arch/x86/lib/insn.c
'
fi fi
check_2 () { check_2 () {
@@ -63,3 +66,9 @@ while read -r file_entry; do
done <<EOF done <<EOF
$FILES $FILES
EOF EOF
if [ "$SRCARCH" = "x86" ]; then
for i in $SYNC_CHECK_FILES; do
check $i '-I "^.*\/\*.*__ignore_sync_check__.*\*\/.*$"'
done
fi

View File

@@ -75,6 +75,13 @@ include/uapi/asm-generic/mman-common.h
include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h
' '
SYNC_CHECK_FILES='
arch/x86/include/asm/inat.h
arch/x86/include/asm/insn.h
arch/x86/lib/inat.c
arch/x86/lib/insn.c
'
# These copies are under tools/perf/trace/beauty/ as they are not used to in # These copies are under tools/perf/trace/beauty/ as they are not used to in
# building object files only by scripts in tools/perf/trace/beauty/ to generate # building object files only by scripts in tools/perf/trace/beauty/ to generate
# tables that then gets included in .c files for things like id->string syscall # tables that then gets included in .c files for things like id->string syscall
@@ -129,6 +136,10 @@ for i in $FILES; do
check $i -B check $i -B
done done
for i in $SYNC_CHECK_FILES; do
check $i '-I "^.*\/\*.*__ignore_sync_check__.*\*\/.*$"'
done
# diff with extra ignore lines # diff with extra ignore lines
check arch/x86/lib/memcpy_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memcpy_\(erms\|orig\))"' check arch/x86/lib/memcpy_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memcpy_\(erms\|orig\))"'
check arch/x86/lib/memset_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memset_\(erms\|orig\))"' check arch/x86/lib/memset_64.S '-I "^EXPORT_SYMBOL" -I "^#include <asm/export.h>" -I"^SYM_FUNC_START\(_LOCAL\)*(memset_\(erms\|orig\))"'
@@ -137,10 +148,6 @@ check include/uapi/linux/mman.h '-I "^#include <\(uapi/\)*asm/mman.h>"'
check include/linux/build_bug.h '-I "^#\(ifndef\|endif\)\( \/\/\)* static_assert$"' check include/linux/build_bug.h '-I "^#\(ifndef\|endif\)\( \/\/\)* static_assert$"'
check include/linux/ctype.h '-I "isdigit("' check include/linux/ctype.h '-I "isdigit("'
check lib/ctype.c '-I "^EXPORT_SYMBOL" -I "^#include <linux/export.h>" -B' check lib/ctype.c '-I "^EXPORT_SYMBOL" -I "^#include <linux/export.h>" -B'
check arch/x86/include/asm/inat.h '-I "^#include [\"<]\(asm/\)*inat_types.h[\">]"'
check arch/x86/include/asm/insn.h '-I "^#include [\"<]\(asm/\)*inat.h[\">]"'
check arch/x86/lib/inat.c '-I "^#include [\"<]\(../include/\)*asm/insn.h[\">]"'
check arch/x86/lib/insn.c '-I "^#include [\"<]\(../include/\)*asm/in\(at\|sn\).h[\">]" -I "^#include [\"<]\(../include/\)*asm/emulate_prefix.h[\">]"'
# diff non-symmetric files # diff non-symmetric files
check_2 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl check_2 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl