The __patch_text() function already applies __opcode_to_mem_*(), so
when __opcode_to_mem_*() is not the identity (BE*), it is applied
twice, wrecking the instruction.
Fixes: 42e51f187f86 ("arm/ftrace: Use __patch_text()")
Reported-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Dmitry Osipenko <digetx@gmail.com>
 {
        unsigned long replaced;
 
-       if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) {
+       if (IS_ENABLED(CONFIG_THUMB2_KERNEL))
                old = __opcode_to_mem_thumb32(old);
-               new = __opcode_to_mem_thumb32(new);
-       } else {
+       else
                old = __opcode_to_mem_arm(old);
-               new = __opcode_to_mem_arm(new);
-       }
 
        if (validate) {
                if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE))