> @@ -55,8 +56,9 @@ static unsigned char *ftrace_call_replace(unsigned > long ip, unsigned long addr) > */ > addr = GET_ADDR(addr); > > - /* Set to "bl addr" */ > - op = 0x48000001 | (ftrace_calc_offset(ip, addr) & 0x03fffffc); > + /* if (link) set op to 'bl' else 'b' */ > + op = 0x48000000 | (link ? 1 : 0); > + op |= (ftrace_calc_offset(ip, addr) & 0x03fffffc);
Any reason why you aren't using the code in arch/powerpc/lib/code-patching.c here ? > new = ftrace_call_replace(ip, stub, 0); > + memcpy(old, new, MCOUNT_INSN_SIZE); > + new = ftrace_call_replace(ip, addr, 0); > + > + return ftrace_modify_code(ip, old, new); > +} Heh, memcpy of 4 bytes :-) I hope gcc is smart enough to turn that into a simple load/store .. Cheers, Ben. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev