mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
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: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/cdaf4bbbb64c288a077845846f04b12683f8875a.1566817807.git.christophe.leroy@c-s.fr
This commit is contained in:
parent
405efc5980
commit
63ce271b5e
@ -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__
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user