Skip to content

Commit

Permalink
powerpc/64: Fix build failure with allyesconfig in book3s_64_entry.S
Browse files Browse the repository at this point in the history
Using conditional branches between two files is hasardous,
they may get linked too far from each other.

  arch/powerpc/kvm/book3s_64_entry.o:(.text+0x3ec): relocation truncated
  to fit: R_PPC64_REL14 (stub) against symbol `system_reset_common'
  defined in .text section in arch/powerpc/kernel/head_64.o

Reorganise the code to use non conditional branches.

Fixes: 89d35b2 ("KVM: PPC: Book3S HV P9: Implement the rest of the P9 path in C")
Signed-off-by: Christophe Leroy <[email protected]>
[mpe: Avoid odd-looking bne ., use named local labels]
Signed-off-by: Michael Ellerman <[email protected]>
Link: https://lore.kernel.org/r/89cf27bf43ee07a0b2879b9e8e2f5cd6386a3645.1648366338.git.christophe.leroy@csgroup.eu
  • Loading branch information
chleroy authored and mpe committed Mar 28, 2022
1 parent 1aa940d commit af41d28
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions arch/powerpc/kvm/book3s_64_entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -414,10 +414,16 @@ END_FTR_SECTION_IFSET(CPU_FTR_DAWR1)
*/
ld r10,HSTATE_SCRATCH0(r13)
cmpwi r10,BOOK3S_INTERRUPT_MACHINE_CHECK
beq machine_check_common
beq .Lcall_machine_check_common

cmpwi r10,BOOK3S_INTERRUPT_SYSTEM_RESET
beq system_reset_common
beq .Lcall_system_reset_common

b .

.Lcall_machine_check_common:
b machine_check_common

.Lcall_system_reset_common:
b system_reset_common
#endif

0 comments on commit af41d28

Please sign in to comment.