diff options
Diffstat (limited to 'arch/powerpc/lib/code-patching.c')
| -rw-r--r-- | arch/powerpc/lib/code-patching.c | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/arch/powerpc/lib/code-patching.c b/arch/powerpc/lib/code-patching.c index e0d881ab304e..850f3b8f4da5 100644 --- a/arch/powerpc/lib/code-patching.c +++ b/arch/powerpc/lib/code-patching.c @@ -195,6 +195,22 @@ int patch_branch(unsigned int *addr, unsigned long target, int flags)  	return patch_instruction(addr, create_branch(addr, target, flags));  } +int patch_branch_site(s32 *site, unsigned long target, int flags) +{ +	unsigned int *addr; + +	addr = (unsigned int *)((unsigned long)site + *site); +	return patch_instruction(addr, create_branch(addr, target, flags)); +} + +int patch_instruction_site(s32 *site, unsigned int instr) +{ +	unsigned int *addr; + +	addr = (unsigned int *)((unsigned long)site + *site); +	return patch_instruction(addr, instr); +} +  bool is_offset_in_branch_range(long offset)  {  	/* |