mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
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: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
023ef184ff
commit
e5137682a1
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user