scripts/Makefile.build | 1 - scripts/link-vmlinux.sh | 2 -- tools/objtool/arch/x86/special.c | 8 ++------ tools/objtool/builtin-check.c | 4 +--- tools/objtool/check.c | 30 +++++++++++++----------------- tools/objtool/include/objtool/builtin.h | 1 - 6 files changed, 16 insertions(+), 30 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index f89d3fcff39f..4d96dea9ff31 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -236,7 +236,6 @@ objtool_args = \ $(if $(CONFIG_SLS), --sls) \ $(if $(CONFIG_STACK_VALIDATION), --stackval) \ $(if $(CONFIG_HAVE_STATIC_CALL_INLINE), --static-call) \ - --uaccess \ $(if $(linked-object), --link) \ $(if $(part-of-module), --module) \ $(if $(CONFIG_GCOV_KERNEL), --no-unreachable) diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index d7f26f02f142..add98ce9e1e5 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -152,8 +152,6 @@ objtool_link() if is_enabled CONFIG_HAVE_STATIC_CALL_INLINE; then objtoolopt="${objtoolopt} --static-call" fi - - objtoolopt="${objtoolopt} --uaccess" fi if is_enabled CONFIG_NOINSTR_VALIDATION; then diff --git a/tools/objtool/arch/x86/special.c b/tools/objtool/arch/x86/special.c index 7c97b7391279..b070edb5fd8f 100644 --- a/tools/objtool/arch/x86/special.c +++ b/tools/objtool/arch/x86/special.c @@ -12,18 +12,14 @@ void arch_handle_alternative(unsigned short feature, struct special_alt *alt) switch (feature) { case X86_FEATURE_SMAP: /* - * If UACCESS validation is enabled; force that alternative; - * otherwise force it the other way. + * Force the uaccess alternative. * * What we want to avoid is having both the original and the * alternative code flow at the same time, in that case we can * find paths that see the STAC but take the NOP instead of * CLAC and the other way around. */ - if (opts.uaccess) - alt->skip_orig = true; - else - alt->skip_alt = true; + alt->skip_orig = true; break; case X86_FEATURE_POPCNT: /* diff --git a/tools/objtool/builtin-check.c b/tools/objtool/builtin-check.c index f4c3a5091737..ae28905dc17a 100644 --- a/tools/objtool/builtin-check.c +++ b/tools/objtool/builtin-check.c @@ -71,7 +71,6 @@ const struct option check_options[] = { OPT_BOOLEAN('l', "sls", &opts.sls, "validate straight-line-speculation mitigations"), OPT_BOOLEAN('s', "stackval", &opts.stackval, "validate frame pointer rules"), OPT_BOOLEAN('t', "static-call", &opts.static_call, "annotate static calls"), - OPT_BOOLEAN('u', "uaccess", &opts.uaccess, "validate uaccess rules for SMAP"), OPT_CALLBACK_OPTARG(0, "dump", NULL, NULL, "orc", "dump metadata", parse_dump), OPT_GROUP("Options:"), @@ -125,8 +124,7 @@ static bool opts_valid(void) opts.retpoline || opts.sls || opts.stackval || - opts.static_call || - opts.uaccess) { + opts.static_call) { if (opts.dump_orc) { ERROR("--dump can't be combined with other options"); return false; diff --git a/tools/objtool/check.c b/tools/objtool/check.c index 190b2f6e360a..86f01f86cd13 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -1030,9 +1030,6 @@ static void add_uaccess_safe(struct objtool_file *file) struct symbol *func; const char **name; - if (!opts.uaccess) - return; - for (name = uaccess_safe_builtin; *name; name++) { func = find_symbol_by_name(file->elf, *name); if (!func) @@ -3919,25 +3916,24 @@ int check(struct objtool_file *file) warnings += ret; } - if (opts.stackval || opts.orc || opts.uaccess) { - ret = validate_functions(file); - if (ret < 0) - goto out; - warnings += ret; + ret = validate_functions(file); + if (ret < 0) + goto out; + warnings += ret; - ret = validate_unwind_hints(file, NULL); + ret = validate_unwind_hints(file, NULL); + if (ret < 0) + goto out; + warnings += ret; + + if (!warnings) { + ret = validate_reachable_instructions(file); if (ret < 0) goto out; warnings += ret; + } - if (!warnings) { - ret = validate_reachable_instructions(file); - if (ret < 0) - goto out; - warnings += ret; - } - - } else if (opts.noinstr) { + if (opts.noinstr) { ret = validate_noinstr_sections(file); if (ret < 0) goto out; diff --git a/tools/objtool/include/objtool/builtin.h b/tools/objtool/include/objtool/builtin.h index 280ea18b7f2b..8054f3dc7712 100644 --- a/tools/objtool/include/objtool/builtin.h +++ b/tools/objtool/include/objtool/builtin.h @@ -22,7 +22,6 @@ struct opts { bool sls; bool stackval; bool static_call; - bool uaccess; /* options: */ bool backtrace;