powerpc: Use a function for reading instructions
Prefixed instructions will mean there are instructions of different length. As a result dereferencing a pointer to an instruction will not necessarily give the desired result. Introduce a function for reading instructions from memory into the instruction data type. 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-13-jniethe5@gmail.com
This commit is contained in:
committed by
Michael Ellerman
parent
94afd069d9
commit
f8faaffaa7
@@ -48,7 +48,7 @@ static int patch_alt_instruction(struct ppc_inst *src, struct ppc_inst *dest,
|
||||
int err;
|
||||
struct ppc_inst instr;
|
||||
|
||||
instr = *src;
|
||||
instr = ppc_inst_read(src);
|
||||
|
||||
if (instr_is_relative_branch(*src)) {
|
||||
struct ppc_inst *target = (struct ppc_inst *)branch_target(src);
|
||||
@@ -403,7 +403,7 @@ static void do_final_fixups(void)
|
||||
length = (__end_interrupts - _stext) / sizeof(struct ppc_inst);
|
||||
|
||||
while (length--) {
|
||||
raw_patch_instruction(dest, *src);
|
||||
raw_patch_instruction(dest, ppc_inst_read(src));
|
||||
src++;
|
||||
dest++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user