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

Commit 9ea7770f authored by Philippe Gerum's avatar Philippe Gerum Committed by Mike Frysinger
Browse files

Blackfin: sanitize manual control of IPEND[4]



Cleanup is performed in two ways:

- remove extraneous updates of IPEND[4] w/ CONFIG_IPIPE,
  and document remaining use.

- substitute pop-reg-from-stack instructions with plain SP fixups in
  all save-RETI-then-discard patterns.

Signed-off-by: default avatarPhilippe Gerum <rpm@xenomai.org>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 7a7967dc
Loading
Loading
Loading
Loading
+11 −14
Original line number Diff line number Diff line
@@ -708,8 +708,14 @@ ENTRY(_system_call)
#ifdef CONFIG_IPIPE
	cc = BITTST(r7, TIF_IRQ_SYNC);
	if !cc jump .Lsyscall_no_irqsync;
	/*
	 * Clear IPEND[4] manually to undo what resume_userspace_1 just did;
	 * we need this so that high priority domain interrupts may still
	 * preempt the current domain while the pipeline log is being played
	 * back.
	 */
	[--sp] = reti;
	r0 = [sp++];
	SP += 4; /* don't merge with next insn to keep the pattern obvious */
	SP += -12;
	call ___ipipe_sync_root;
	SP += 12;
@@ -721,7 +727,7 @@ ENTRY(_system_call)

	/* Reenable interrupts.  */
	[--sp] = reti;
	r0 = [sp++];
	sp += 4;

	SP += -12;
	call _schedule;
@@ -737,7 +743,7 @@ ENTRY(_system_call)
.Lsyscall_do_signals:
	/* Reenable interrupts.  */
	[--sp] = reti;
	r0 = [sp++];
	sp += 4;

	r0 = sp;
	SP += -12;
@@ -747,10 +753,6 @@ ENTRY(_system_call)
.Lsyscall_really_exit:
	r5 = [sp + PT_RESERVED];
	rets = r5;
#ifdef CONFIG_IPIPE
	[--sp] = reti;
	r5 = [sp++];
#endif /* CONFIG_IPIPE */
	rts;
ENDPROC(_system_call)

@@ -904,14 +906,9 @@ ENDPROC(_ret_from_exception)

#ifdef CONFIG_IPIPE

_sync_root_irqs:
	[--sp] = reti;		/* Reenable interrupts */
	r0 = [sp++];
	jump.l ___ipipe_sync_root

_resume_kernel_from_int:
	r0.l = _sync_root_irqs
	r0.h = _sync_root_irqs
	r0.l = ___ipipe_sync_root;
	r0.h = ___ipipe_sync_root;
	[--sp] = rets;
	[--sp] = ( r7:4, p5:3 );
	SP += -12;