Commit 63ce271b authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/prom: convert PROM_BUG() to standard trap



Prior to commit 1bd98d7fbaf5 ("ppc64: Update BUG handling based on
ppc32"), BUG() family was using BUG_ILLEGAL_INSTRUCTION which
was an invalid instruction opcode to trap into program check
exception.

That commit converted them to using standard trap instructions,
but prom/prom_init and their PROM_BUG() macro were left over.
head_64.S and exception-64s.S were left aside as well.

Convert them to using the standard BUG infrastructure.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/cdaf4bbbb64c288a077845846f04b12683f8875a.1566817807.git.christophe.leroy@c-s.fr
parent 405efc59
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -5,14 +5,6 @@

#include <asm/asm-compat.h>

/*
 * Define an illegal instr to trap on the bug.
 * We don't use 0 because that marks the end of a function
 * in the ELF ABI.  That's "Boo Boo" in case you wonder...
 */
#define BUG_OPCODE .long 0x00b00b00  /* For asm */
#define BUG_ILLEGAL_INSTR "0x00b00b00" /* For BUG macro */

#ifdef CONFIG_BUG

#ifdef __ASSEMBLY__
+2 −1
Original line number Diff line number Diff line
@@ -1467,7 +1467,8 @@ EXC_COMMON_BEGIN(fp_unavailable_common)
	RECONCILE_IRQ_STATE(r10, r11)
	addi	r3,r1,STACK_FRAME_OVERHEAD
	bl	kernel_fp_unavailable_exception
	BUG_OPCODE
0:	trap
	EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0
1:
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
BEGIN_FTR_SECTION
+4 −2
Original line number Diff line number Diff line
@@ -182,7 +182,8 @@ __secondary_hold:
	isync
	bctr
#else
	BUG_OPCODE
0:	trap
	EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0
#endif
CLOSE_FIXED_SECTION(first_256B)

@@ -998,7 +999,8 @@ start_here_common:
	bl	start_kernel

	/* Not reached */
	BUG_OPCODE
	trap
	EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0

/*
 * We put a few things here that have to be page-aligned.
+1 −1
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ static int of_workarounds __prombss;
#define PROM_BUG() do {						\
        prom_printf("kernel BUG at %s line 0x%x!\n",		\
		    __FILE__, __LINE__);			\
        __asm__ __volatile__(".long " BUG_ILLEGAL_INSTR);	\
	__builtin_trap();					\
} while (0)

#ifdef DEBUG_PROM