objtool: Reflow handle_jump_alt()
authorPeter Zijlstra <peterz@infradead.org>
Thu, 13 May 2021 14:15:50 +0000 (16:15 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 14 May 2021 07:00:10 +0000 (09:00 +0200)
Miroslav figured the code flow in handle_jump_alt() was sub-optimal
with that goto. Reflow the code to make it clearer.

Reported-by: Miroslav Benes <mbenes@suse.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/YJ00lgslY+IpA/rL@hirez.programming.kicks-ass.net
tools/objtool/check.c

index 2c6a93edf27ece3878aba73844af2eea8e8c87df..e5947fbb9e7a6d602686af947c5caf1f2158157f 100644 (file)
@@ -1225,17 +1225,9 @@ static int handle_jump_alt(struct objtool_file *file,
                           struct instruction *orig_insn,
                           struct instruction **new_insn)
 {
-       if (orig_insn->type == INSN_NOP) {
-do_nop:
-               if (orig_insn->len == 2)
-                       file->jl_nop_short++;
-               else
-                       file->jl_nop_long++;
+       if (orig_insn->type != INSN_JUMP_UNCONDITIONAL &&
+           orig_insn->type != INSN_NOP) {
 
-               return 0;
-       }
-
-       if (orig_insn->type != INSN_JUMP_UNCONDITIONAL) {
                WARN_FUNC("unsupported instruction at jump label",
                          orig_insn->sec, orig_insn->offset);
                return -1;
@@ -1252,7 +1244,15 @@ do_nop:
                               orig_insn->offset, orig_insn->len,
                               arch_nop_insn(orig_insn->len));
                orig_insn->type = INSN_NOP;
-               goto do_nop;
+       }
+
+       if (orig_insn->type == INSN_NOP) {
+               if (orig_insn->len == 2)
+                       file->jl_nop_short++;
+               else
+                       file->jl_nop_long++;
+
+               return 0;
        }
 
        if (orig_insn->len == 2)