forked from Minki/linux
powerpc/modules: Use PPC_LI macros instead of opencoding
Use PPC_LI_MASK and PPC_LI() instead of opencoding. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/3d56d7bc3200403773d54e62659d0e01292a055d.1652074503.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
4390a58ee1
commit
e0c2ef4321
@ -256,9 +256,8 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
|
||||
value, (uint32_t)location);
|
||||
pr_debug("Location before: %08X.\n",
|
||||
*(uint32_t *)location);
|
||||
value = (*(uint32_t *)location & ~0x03fffffc)
|
||||
| ((value - (uint32_t)location)
|
||||
& 0x03fffffc);
|
||||
value = (*(uint32_t *)location & ~PPC_LI_MASK) |
|
||||
PPC_LI(value - (uint32_t)location);
|
||||
|
||||
if (patch_instruction(location, ppc_inst(value)))
|
||||
return -EFAULT;
|
||||
@ -266,10 +265,8 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
|
||||
pr_debug("Location after: %08X.\n",
|
||||
*(uint32_t *)location);
|
||||
pr_debug("ie. jump to %08X+%08X = %08X\n",
|
||||
*(uint32_t *)location & 0x03fffffc,
|
||||
(uint32_t)location,
|
||||
(*(uint32_t *)location & 0x03fffffc)
|
||||
+ (uint32_t)location);
|
||||
*(uint32_t *)PPC_LI((uint32_t)location), (uint32_t)location,
|
||||
(*(uint32_t *)PPC_LI((uint32_t)location)) + (uint32_t)location);
|
||||
break;
|
||||
|
||||
case R_PPC_REL32:
|
||||
|
@ -653,8 +653,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
|
||||
}
|
||||
|
||||
/* Only replace bits 2 through 26 */
|
||||
value = (*(uint32_t *)location & ~0x03fffffc)
|
||||
| (value & 0x03fffffc);
|
||||
value = (*(uint32_t *)location & ~PPC_LI_MASK) | PPC_LI(value);
|
||||
|
||||
if (patch_instruction((u32 *)location, ppc_inst(value)))
|
||||
return -EFAULT;
|
||||
|
Loading…
Reference in New Issue
Block a user