diff options
Diffstat (limited to 'arch/um')
| -rw-r--r-- | arch/um/kernel/init_task.c | 11 | ||||
| -rw-r--r-- | arch/um/kernel/irq.c | 4 | ||||
| -rw-r--r-- | arch/um/os-Linux/signal.c | 10 | ||||
| -rw-r--r-- | arch/um/os-Linux/skas/process.c | 6 |
4 files changed, 13 insertions, 18 deletions
diff --git a/arch/um/kernel/init_task.c b/arch/um/kernel/init_task.c index 4506c7f32ba..f5385a3799b 100644 --- a/arch/um/kernel/init_task.c +++ b/arch/um/kernel/init_task.c | |||
| @@ -46,14 +46,3 @@ void unprotect_stack(unsigned long stack) | |||
| 46 | { | 46 | { |
| 47 | os_protect_memory((void *) stack, THREAD_SIZE, 1, 1, 0); | 47 | os_protect_memory((void *) stack, THREAD_SIZE, 1, 1, 0); |
| 48 | } | 48 | } |
| 49 | |||
| 50 | /* | ||
| 51 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
| 52 | * Emacs will notice this stuff at the end of the file and automatically | ||
| 53 | * adjust the settings for this buffer only. This must remain at the end | ||
| 54 | * of the file. | ||
| 55 | * --------------------------------------------------------------------------- | ||
| 56 | * Local variables: | ||
| 57 | * c-file-style: "linux" | ||
| 58 | * End: | ||
| 59 | */ | ||
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index 8f2ed369031..a9651a175eb 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (C) 2000 Jeff Dike (jdike@karaya.com) | 2 | * Copyright (C) 2000 Jeff Dike (jdike@karaya.com) |
| 3 | * Licensed under the GPL | 3 | * Licensed under the GPL |
| 4 | * Derived (i.e. mostly copied) from arch/i386/kernel/irq.c: | 4 | * Derived (i.e. mostly copied) from arch/i386/kernel/irq.c: |
| @@ -53,7 +53,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
| 53 | if (i < NR_IRQS) { | 53 | if (i < NR_IRQS) { |
| 54 | spin_lock_irqsave(&irq_desc[i].lock, flags); | 54 | spin_lock_irqsave(&irq_desc[i].lock, flags); |
| 55 | action = irq_desc[i].action; | 55 | action = irq_desc[i].action; |
| 56 | if (!action) | 56 | if (!action) |
| 57 | goto skip; | 57 | goto skip; |
| 58 | seq_printf(p, "%3d: ",i); | 58 | seq_printf(p, "%3d: ",i); |
| 59 | #ifndef CONFIG_SMP | 59 | #ifndef CONFIG_SMP |
diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c index 48d49341530..420ee86d0d1 100644 --- a/arch/um/os-Linux/signal.c +++ b/arch/um/os-Linux/signal.c | |||
| @@ -61,15 +61,19 @@ void sig_handler(int sig, struct sigcontext *sc) | |||
| 61 | 61 | ||
| 62 | static void real_alarm_handler(int sig, struct sigcontext *sc) | 62 | static void real_alarm_handler(int sig, struct sigcontext *sc) |
| 63 | { | 63 | { |
| 64 | union uml_pt_regs regs; | ||
| 65 | |||
| 64 | if(sig == SIGALRM) | 66 | if(sig == SIGALRM) |
| 65 | switch_timers(0); | 67 | switch_timers(0); |
| 66 | 68 | ||
| 67 | CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas, | 69 | if(sc != NULL) |
| 68 | sig, sc); | 70 | copy_sc(®s, sc); |
| 71 | regs.skas.is_user = 0; | ||
| 72 | unblock_signals(); | ||
| 73 | timer_handler(sig, ®s); | ||
| 69 | 74 | ||
| 70 | if(sig == SIGALRM) | 75 | if(sig == SIGALRM) |
| 71 | switch_timers(1); | 76 | switch_timers(1); |
| 72 | |||
| 73 | } | 77 | } |
| 74 | 78 | ||
| 75 | void alarm_handler(int sig, struct sigcontext *sc) | 79 | void alarm_handler(int sig, struct sigcontext *sc) |
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index 3492886223e..f9d2f8545af 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c | |||
| @@ -288,7 +288,8 @@ int start_userspace(unsigned long stub_stack) | |||
| 288 | void userspace(union uml_pt_regs *regs) | 288 | void userspace(union uml_pt_regs *regs) |
| 289 | { | 289 | { |
| 290 | int err, status, op, pid = userspace_pid[0]; | 290 | int err, status, op, pid = userspace_pid[0]; |
| 291 | int local_using_sysemu; /*To prevent races if using_sysemu changes under us.*/ | 291 | /* To prevent races if using_sysemu changes under us.*/ |
| 292 | int local_using_sysemu; | ||
| 292 | 293 | ||
| 293 | while(1){ | 294 | while(1){ |
| 294 | restore_registers(pid, regs); | 295 | restore_registers(pid, regs); |
| @@ -296,7 +297,8 @@ void userspace(union uml_pt_regs *regs) | |||
| 296 | /* Now we set local_using_sysemu to be used for one loop */ | 297 | /* Now we set local_using_sysemu to be used for one loop */ |
| 297 | local_using_sysemu = get_using_sysemu(); | 298 | local_using_sysemu = get_using_sysemu(); |
| 298 | 299 | ||
| 299 | op = SELECT_PTRACE_OPERATION(local_using_sysemu, singlestepping(NULL)); | 300 | op = SELECT_PTRACE_OPERATION(local_using_sysemu, |
| 301 | singlestepping(NULL)); | ||
| 300 | 302 | ||
| 301 | err = ptrace(op, pid, 0, 0); | 303 | err = ptrace(op, pid, 0, 0); |
| 302 | if(err) | 304 | if(err) |
