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

Commit e5137682 authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Tidy up gUSA preempt handling.



Currently gUSA toggles hardirqs to disable preemption in the signal
handler. Make the preemption toggling explicit, and kill off some
CONFIG_PREEMPT ifdefs in the process.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 023ef184
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -509,11 +509,8 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
		}
	} else {
		/* gUSA handling */
#ifdef CONFIG_PREEMPT
		unsigned long flags;
		preempt_disable();

		local_irq_save(flags);
#endif
		if (regs->regs[15] >= 0xc0000000) {
			int offset = (int)regs->regs[15];

@@ -524,9 +521,8 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
				regs->pc = regs->regs[0] + offset -
					instruction_size(ctrl_inw(regs->pc-4));
		}
#ifdef CONFIG_PREEMPT
		local_irq_restore(flags);
#endif

		preempt_enable_no_resched();
	}

	/* Set up the stack frame */