u32 *prev_insn = instruction - 1;
 
        if (is_mprofile_ftrace_call(name))
-               return 1;
+               return 0;
 
        /*
         * Make sure the branch isn't a sibling call.  Sibling calls aren't
         * restore afterwards.
         */
        if (!instr_is_relative_link_branch(ppc_inst(*prev_insn)))
-               return 1;
+               return 0;
 
        if (*instruction != PPC_RAW_NOP()) {
                pr_err("%s: Expected nop after call, got %08x at %pS\n",
                        me->name, *instruction, instruction);
-               return 0;
+               return -ENOEXEC;
        }
 
        /* ld r2,R2_STACK_OFFSET(r1) */
-       if (patch_instruction(instruction, ppc_inst(PPC_INST_LD_TOC)))
-               return 0;
-
-       return 1;
+       return patch_instruction(instruction, ppc_inst(PPC_INST_LD_TOC));
 }
 
 int apply_relocate_add(Elf64_Shdr *sechdrs,
                                                strtab + sym->st_name);
                                if (!value)
                                        return -ENOENT;
-                               if (!restore_r2(strtab + sym->st_name,
-                                                       (u32 *)location + 1, me))
+                               if (restore_r2(strtab + sym->st_name,
+                                              (u32 *)location + 1, me))
                                        return -ENOEXEC;
                        } else
                                value += local_entry_offset(sym);