Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5137682a1ad48bc5306070935c277e262f119ef
Commit:     e5137682a1ad48bc5306070935c277e262f119ef
Parent:     023ef184fff6ac2e7cba345708f35536a2a419cb
Author:     Paul Mundt <[EMAIL PROTECTED]>
AuthorDate: Fri Sep 28 15:21:51 2007 +0900
Committer:  Paul Mundt <[EMAIL PROTECTED]>
CommitDate: Fri Sep 28 15:21:51 2007 +0900

    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 <[EMAIL PROTECTED]>
---
 arch/sh/kernel/signal.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/arch/sh/kernel/signal.c b/arch/sh/kernel/signal.c
index 706d81c..0f657d3 100644
--- a/arch/sh/kernel/signal.c
+++ b/arch/sh/kernel/signal.c
@@ -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 */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to