Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 444e0c28 authored by Rabin Vincent's avatar Rabin Vincent Committed by Jesper Nilsson
Browse files

CRISv32: add support for irqflags tracing



Add support irqflags tracing, which is required for things like lockdep
and ftrace.

Signed-off-by: default avatarRabin Vincent <rabin@rab.in>
Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
parent 20ae2473
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -36,6 +36,10 @@ config FORCE_MAX_ZONEORDER
	int
	default 6

config TRACE_IRQFLAGS_SUPPORT
	depends on ETRAX_ARCH_V32
	def_bool y

config CRIS
	bool
	default y
+11 −0
Original line number Diff line number Diff line
@@ -240,6 +240,17 @@ ret_from_sys_call:

	.type	_Rexit,@function
_Rexit:
#if defined(CONFIG_TRACE_IRQFLAGS)
	addoq	+PT_ccs, $sp, $acr
	move.d	[$acr], $r0
	btstq	15, $r0		; I1
	bpl	1f
	nop
	jsr	trace_hardirqs_on
	nop
1:
#endif

	;; This epilogue MUST match the prologues in multiple_interrupt, irq.h
	;; and ptregs.h.
	addq	4, $sp		; Skip orig_r10.
+5 −1
Original line number Diff line number Diff line
@@ -45,7 +45,11 @@
asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
{
	unsigned long sp;
	struct pt_regs *old_regs = set_irq_regs(regs);
	struct pt_regs *old_regs;

	trace_hardirqs_off();

	old_regs = set_irq_regs(regs);
	irq_enter();
	sp = rdsp();
	if (unlikely((sp & (PAGE_SIZE - 1)) < (PAGE_SIZE/8))) {