On Thu, 2008-05-29 at 16:20 +1000, Michael Ellerman wrote: > Currently create_branch() creates a branch instruction for you, and patches > it into the call site. In some circumstances it would be nice to be able to > create the instruction and patch it later, and also some code might want > to check for errors in the branch creation before doing the patching. A > future patch will change create_branch() to check for errors. > > For callers that don't care, replace create_branch() with patch_branch(), > which just creates the branch and patches it directly. > > Signed-off-by: Michael Ellerman > --- > arch/powerpc/kernel/crash_dump.c | 4 ++-- > arch/powerpc/lib/code-patching.c | 11 ++++++++--- > arch/powerpc/platforms/86xx/mpc86xx_smp.c | 2 +- > arch/powerpc/platforms/powermac/smp.c | 2 +- > include/asm-powerpc/code-patching.h | 5 +++-- > 5 files changed, 15 insertions(+), 9 deletions(-) > > diff --git a/arch/powerpc/kernel/crash_dump.c b/arch/powerpc/kernel/crash_dump.c > index 35b9a66..ee2dac5 100644 > --- a/arch/powerpc/kernel/crash_dump.c > +++ b/arch/powerpc/kernel/crash_dump.c > @@ -42,8 +42,8 @@ static void __init create_trampoline(unsigned long addr) > * branch to "addr" we jump to ("addr" + 32 MB). Although it requires > * two instructions it doesn't require any registers. > */ > - create_instruction(addr, 0x60000000); /* nop */ > - create_branch(addr + 4, addr + PHYSICAL_START, 0); > + patch_instruction(addr, 0x60000000); /* nop */ > + patch_branch(addr + 4, addr + PHYSICAL_START, 0); > } > > void __init setup_kdump_trampoline(void) > diff --git a/arch/powerpc/lib/code-patching.c b/arch/powerpc/lib/code-patching.c > index 7afae88..1391981 100644 > --- a/arch/powerpc/lib/code-patching.c > +++ b/arch/powerpc/lib/code-patching.c > @@ -11,7 +11,7 @@ > #include > > > -void create_instruction(unsigned long addr, unsigned int instr) > +void patch_instruction(unsigned long addr, unsigned int instr) > { > unsigned int *p; > p = (unsigned int *)addr; Reviewing my own patches again .. this should take an unsigned int * instead of an unsigned long. I'll repost sometime. cheers -- Michael Ellerman OzLabs, IBM Australia Development Lab wwweb: http://michael.ellerman.id.au phone: +61 2 6212 1183 (tie line 70 21183) We do not inherit the earth from our ancestors, we borrow it from our children. - S.M.A.R.T Person