Commit 04fa5a56 authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds

[PATCH] UML updates

The patch below brings UML up to date with interface changes and the like
	irq.c includes profile.h to bring in a missing definition
	use the cpu_{set,clear} interface
	use the new get_signal_to_deliver interface
	define instruction_pointer
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 51461bbe
......@@ -18,6 +18,7 @@
#include "linux/proc_fs.h"
#include "linux/init.h"
#include "linux/seq_file.h"
#include "linux/profile.h"
#include "asm/irq.h"
#include "asm/hw_irq.h"
#include "asm/hardirq.h"
......
......@@ -114,10 +114,11 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
void switch_mm(struct mm_struct *prev, struct mm_struct *next,
struct task_struct *tsk)
{
unsigned cpu = smp_processor_id();
int cpu = smp_processor_id();
if (prev != next)
clear_bit(cpu, &prev->cpu_vm_mask);
set_bit(cpu, &next->cpu_vm_mask);
cpu_clear(cpu, prev->cpu_vm_mask);
cpu_set(cpu, next->cpu_vm_mask);
}
void set_current(void *t)
......
......@@ -130,21 +130,21 @@ static int handle_signal(struct pt_regs *regs, unsigned long signr,
static int kern_do_signal(struct pt_regs *regs, sigset_t *oldset, int error)
{
struct k_sigaction ka_copy;
siginfo_t info;
struct k_sigaction *ka;
int err, sig;
if (!oldset)
oldset = &current->blocked;
sig = get_signal_to_deliver(&info, regs, NULL);
sig = get_signal_to_deliver(&info, &ka_copy, regs, NULL);
if(sig == 0)
return(0);
/* Whee! Actually deliver the signal. */
ka = &current->sighand->action[sig -1 ];
err = handle_signal(regs, sig, ka, &info, oldset, error);
if(!err) return(1);
err = handle_signal(regs, sig, &ka_copy, &info, oldset, error);
if(!err)
return(1);
/* Did we come from a system call? */
if(PT_REGS_SYSCALL_NR(regs) >= 0){
......
......@@ -45,6 +45,8 @@ struct pt_regs {
#define PT_REGS_SC(r) UPT_SC(&(r)->regs)
#define instruction_pointer(regs) PT_REGS_IP(regs)
struct task_struct;
extern unsigned long getreg(struct task_struct *child, int regno);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment