Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=78a26e25ce4837a03ac3b6c32cdae1958e547639
Commit:     78a26e25ce4837a03ac3b6c32cdae1958e547639
Parent:     a2f018bf389422a55f1455ab8b9b5eedc5ea1803
Author:     Jeff Dike <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 16 01:27:23 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 09:43:08 2007 -0700

    uml: separate timer initialization
    
    Move timer signal initialization from init_irq_signals to a new function,
    timer_init.
    
    Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
    Cc: Thomas Gleixner <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/um/include/os.h      |    1 +
 arch/um/kernel/time.c     |    2 ++
 arch/um/os-Linux/irq.c    |    4 ----
 arch/um/os-Linux/signal.c |   10 ++++++++++
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/arch/um/include/os.h b/arch/um/include/os.h
index 1897785..a6d8072 100644
--- a/arch/um/include/os.h
+++ b/arch/um/include/os.h
@@ -227,6 +227,7 @@ extern int set_umid(char *name);
 extern char *get_umid(void);
 
 /* signal.c */
+extern void timer_init(void);
 extern void set_sigstack(void *sig_stack, int size);
 extern void remove_sigstack(void);
 extern void set_handler(int sig, void (*handler)(int), int flags, ...);
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
index 2bda07d..758d4f9 100644
--- a/arch/um/kernel/time.c
+++ b/arch/um/kernel/time.c
@@ -97,6 +97,8 @@ static void register_timer(void)
 {
        int err;
 
+       timer_init();
+
        err = request_irq(TIMER_IRQ, um_timer, IRQF_DISABLED, "timer", NULL);
        if (err != 0)
                printk(KERN_ERR "register_timer : request_irq failed - "
diff --git a/arch/um/os-Linux/irq.c b/arch/um/os-Linux/irq.c
index a633fa8..2fe4822 100644
--- a/arch/um/os-Linux/irq.c
+++ b/arch/um/os-Linux/irq.c
@@ -145,10 +145,6 @@ void init_irq_signals(int on_sigstack)
 
        flags = on_sigstack ? SA_ONSTACK : 0;
 
-       set_handler(SIGVTALRM, (__sighandler_t) alarm_handler,
-                   flags | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, -1);
-       set_handler(SIGALRM, (__sighandler_t) alarm_handler,
-                   flags | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, -1);
        set_handler(SIGIO, (__sighandler_t) sig_handler, flags | SA_RESTART,
                    SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
        signal(SIGWINCH, SIG_IGN);
diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c
index 1c5267e..53593c8 100644
--- a/arch/um/os-Linux/signal.c
+++ b/arch/um/os-Linux/signal.c
@@ -85,6 +85,16 @@ void alarm_handler(int sig, struct sigcontext *sc)
        set_signals(enabled);
 }
 
+void timer_init(void)
+{
+       set_handler(SIGVTALRM, (__sighandler_t) alarm_handler,
+                   SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH,
+                   SIGALRM, -1);
+       set_handler(SIGALRM, (__sighandler_t) alarm_handler,
+                   SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH,
+                   SIGALRM, -1);
+}
+
 void set_sigstack(void *sig_stack, int size)
 {
        stack_t stack = ((stack_t) { .ss_flags  = 0,
-
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