Re: [PATCH v3 17/26] objtool: Re-arrange validate_functions()

From: Josh Poimboeuf
Date: Tue Mar 24 2020 - 17:10:17 EST


On Tue, Mar 24, 2020 at 04:31:30PM +0100, Peter Zijlstra wrote:
> In preparation to adding a vmlinux.o specific pass, rearrange some
> code. No functional changes intended.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
> tools/objtool/check.c | 60 ++++++++++++++++++++++++++++----------------------
> 1 file changed, 34 insertions(+), 26 deletions(-)
>
> --- a/tools/objtool/check.c
> +++ b/tools/objtool/check.c
> @@ -2413,9 +2413,8 @@ static bool ignore_unreachable_insn(stru
> return false;
> }
>
> -static int validate_functions(struct objtool_file *file)
> +static int validate_section(struct objtool_file *file, struct section *sec)
> {
> - struct section *sec;
> struct symbol *func;
> struct instruction *insn;
> struct insn_state state;
> @@ -2428,35 +2427,44 @@ static int validate_functions(struct obj
> CFI_NUM_REGS * sizeof(struct cfi_reg));
> state.stack_size = initial_func_cfi.cfa.offset;
>
> - for_each_sec(file, sec) {
> - list_for_each_entry(func, &sec->symbol_list, list) {
> - if (func->type != STT_FUNC)
> - continue;
> -
> - if (!func->len) {
> - WARN("%s() is missing an ELF size annotation",
> - func->name);
> - warnings++;
> - }
> -
> - if (func->pfunc != func || func->alias != func)
> - continue;
> -
> - insn = find_insn(file, sec, func->offset);
> - if (!insn || insn->ignore || insn->visited)
> - continue;
> -
> - state.uaccess = func->uaccess_safe;
> -
> - ret = validate_branch(file, func, insn, state);
> - if (ret && backtrace)
> - BT_FUNC("<=== (func)", insn);
> - warnings += ret;
> + list_for_each_entry(func, &sec->symbol_list, list) {
> + if (func->type != STT_FUNC)
> + continue;
> +
> + if (!func->len) {
> + WARN("%s() is missing an ELF size annotation",
> + func->name);

wonky indentation

Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>

--
Josh