powerpc: Change calling convention for create_branch() et. al.
create_branch(), create_cond_branch() and translate_branch() return the instruction that they create, or return 0 to signal an error. Separate these concerns in preparation for an instruction type that is not just an unsigned int. Fill the created instruction to a pointer passed as the first parameter to the function and use a non-zero return value to signify an error. Signed-off-by: Jordan Niethe <jniethe5@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Reviewed-by: Alistair Popple <alistair@popple.id.au> Link: https://lore.kernel.org/r/20200506034050.24806-6-jniethe5@gmail.com
This commit is contained in:

committed by
Michael Ellerman

parent
5a7fdcab54
commit
7c95d8893f
@@ -44,6 +44,7 @@ static unsigned int *calc_addr(struct fixup_entry *fcur, long offset)
|
||||
static int patch_alt_instruction(unsigned int *src, unsigned int *dest,
|
||||
unsigned int *alt_start, unsigned int *alt_end)
|
||||
{
|
||||
int err;
|
||||
unsigned int instr;
|
||||
|
||||
instr = *src;
|
||||
@@ -53,8 +54,8 @@ static int patch_alt_instruction(unsigned int *src, unsigned int *dest,
|
||||
|
||||
/* Branch within the section doesn't need translating */
|
||||
if (target < alt_start || target > alt_end) {
|
||||
instr = translate_branch(dest, src);
|
||||
if (!instr)
|
||||
err = translate_branch(&instr, dest, src);
|
||||
if (err)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user