Commit 18722ecf authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc: do_break get registers from regs



Similar to the previous patch this makes interrupt handler function
types more regular so they can be wrapped with the next patch.

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210130130852.2952424-9-npiggin@gmail.com
parent b4ced803
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -52,8 +52,7 @@ extern void do_send_trap(struct pt_regs *regs, unsigned long address,
			 unsigned long error_code, int brkpt);
#else

extern void do_break(struct pt_regs *regs, unsigned long address,
		     unsigned long error_code);
void do_break(struct pt_regs *regs);
#endif

#endif /* _ASM_POWERPC_DEBUG_H */
+2 −3
Original line number Diff line number Diff line
@@ -364,10 +364,9 @@ do_databreakpoint:
	addi	r3,r1,STACK_FRAME_OVERHEAD
	mfspr	r4,SPRN_BAR
	stw	r4,_DAR(r11)
#ifdef CONFIG_VMAP_STACK
	lwz	r5,_DSISR(r11)
#else
#ifndef CONFIG_VMAP_STACK
	mfspr	r5,SPRN_DSISR
	stw	r5,_DSISR(r11)
#endif
	EXC_XFER_STD(0x1c00, do_break)

+3 −4
Original line number Diff line number Diff line
@@ -659,11 +659,10 @@ static void do_break_handler(struct pt_regs *regs)
	}
}

void do_break (struct pt_regs *regs, unsigned long address,
		    unsigned long error_code)
void do_break(struct pt_regs *regs)
{
	current->thread.trap_nr = TRAP_HWBKPT;
	if (notify_die(DIE_DABR_MATCH, "dabr_match", regs, error_code,
	if (notify_die(DIE_DABR_MATCH, "dabr_match", regs, regs->dsisr,
			11, SIGSEGV) == NOTIFY_STOP)
		return;

@@ -681,7 +680,7 @@ void do_break (struct pt_regs *regs, unsigned long address,
		do_break_handler(regs);

	/* Deliver the signal to userspace */
	force_sig_fault(SIGTRAP, TRAP_HWBKPT, (void __user *)address);
	force_sig_fault(SIGTRAP, TRAP_HWBKPT, (void __user *)regs->dar);
}
#endif	/* CONFIG_PPC_ADV_DEBUG_REGS */