Skip to content

Commit

Permalink
uml: tidy IRQ code
Browse files Browse the repository at this point in the history
Some tidying of the irq code before introducing irq stacks.  Mostly
style fixes, but the timer handler calls the timer code directly
rather than going through the generic sig_handler_common_skas.

Signed-off-by: Jeff Dike <[email protected]>
Cc: Paolo 'Blaisorblade' Giarrusso <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
cfd-36 authored and Linus Torvalds committed May 11, 2007
1 parent e1a79c4 commit 2ea5bc5
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 18 deletions.
11 changes: 0 additions & 11 deletions arch/um/kernel/init_task.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,3 @@ void unprotect_stack(unsigned long stack)
{
os_protect_memory((void *) stack, THREAD_SIZE, 1, 1, 0);
}

/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
4 changes: 2 additions & 2 deletions arch/um/kernel/irq.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*
/*
* Copyright (C) 2000 Jeff Dike ([email protected])
* Licensed under the GPL
* Derived (i.e. mostly copied) from arch/i386/kernel/irq.c:
Expand Down Expand Up @@ -53,7 +53,7 @@ int show_interrupts(struct seq_file *p, void *v)
if (i < NR_IRQS) {
spin_lock_irqsave(&irq_desc[i].lock, flags);
action = irq_desc[i].action;
if (!action)
if (!action)
goto skip;
seq_printf(p, "%3d: ",i);
#ifndef CONFIG_SMP
Expand Down
10 changes: 7 additions & 3 deletions arch/um/os-Linux/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,19 @@ void sig_handler(int sig, struct sigcontext *sc)

static void real_alarm_handler(int sig, struct sigcontext *sc)
{
union uml_pt_regs regs;

if(sig == SIGALRM)
switch_timers(0);

CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas,
sig, sc);
if(sc != NULL)
copy_sc(&regs, sc);
regs.skas.is_user = 0;
unblock_signals();
timer_handler(sig, &regs);

if(sig == SIGALRM)
switch_timers(1);

}

void alarm_handler(int sig, struct sigcontext *sc)
Expand Down
6 changes: 4 additions & 2 deletions arch/um/os-Linux/skas/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,15 +288,17 @@ int start_userspace(unsigned long stub_stack)
void userspace(union uml_pt_regs *regs)
{
int err, status, op, pid = userspace_pid[0];
int local_using_sysemu; /*To prevent races if using_sysemu changes under us.*/
/* To prevent races if using_sysemu changes under us.*/
int local_using_sysemu;

while(1){
restore_registers(pid, regs);

/* Now we set local_using_sysemu to be used for one loop */
local_using_sysemu = get_using_sysemu();

op = SELECT_PTRACE_OPERATION(local_using_sysemu, singlestepping(NULL));
op = SELECT_PTRACE_OPERATION(local_using_sysemu,
singlestepping(NULL));

err = ptrace(op, pid, 0, 0);
if(err)
Expand Down

0 comments on commit 2ea5bc5

Please sign in to comment.