[PATCH 2/3] 2.6.8-rc4-mm1 - UML updates

From: Jeff Dike
Date: Wed Aug 11 2004 - 22:17:29 EST


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

Jeff


Index: 2.6.8-rc4-mm1/arch/um/kernel/irq.c
===================================================================
--- 2.6.8-rc4-mm1.orig/arch/um/kernel/irq.c 2004-08-11 22:44:43.000000000 -0400
+++ 2.6.8-rc4-mm1/arch/um/kernel/irq.c 2004-08-11 23:03:14.000000000 -0400
@@ -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"
Index: 2.6.8-rc4-mm1/arch/um/kernel/process_kern.c
===================================================================
--- 2.6.8-rc4-mm1.orig/arch/um/kernel/process_kern.c 2004-08-11 22:44:43.000000000 -0400
+++ 2.6.8-rc4-mm1/arch/um/kernel/process_kern.c 2004-08-11 23:03:14.000000000 -0400
@@ -114,10 +114,11 @@
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)
Index: 2.6.8-rc4-mm1/arch/um/kernel/signal_kern.c
===================================================================
--- 2.6.8-rc4-mm1.orig/arch/um/kernel/signal_kern.c 2004-08-11 22:44:43.000000000 -0400
+++ 2.6.8-rc4-mm1/arch/um/kernel/signal_kern.c 2004-08-11 23:03:14.000000000 -0400
@@ -130,21 +130,21 @@

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){
Index: 2.6.8-rc4-mm1/include/asm-um/ptrace-generic.h
===================================================================
--- 2.6.8-rc4-mm1.orig/include/asm-um/ptrace-generic.h 2004-08-11 22:44:43.000000000 -0400
+++ 2.6.8-rc4-mm1/include/asm-um/ptrace-generic.h 2004-08-11 23:03:14.000000000 -0400
@@ -45,6 +45,8 @@

#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);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/