git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
arm26
/
kernel
/
traps.c
diff --git
a/arch/arm26/kernel/traps.c
b/arch/arm26/kernel/traps.c
index
f64f590
..
7a297db
100644
(file)
--- a/
arch/arm26/kernel/traps.c
+++ b/
arch/arm26/kernel/traps.c
@@
-15,7
+15,6
@@
*/
#include <linux/module.h>
*/
#include <linux/module.h>
-#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/signal.h>
@@
-34,7
+33,7
@@
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
-#include <
asm/semaphore
.h>
+#include <
linux/mutex
.h>
#include "ptrace.h"
#include "ptrace.h"
@@
-132,7
+131,7
@@
static void dump_instr(struct pt_regs *regs)
/*static*/ void __dump_stack(struct task_struct *tsk, unsigned long sp)
{
/*static*/ void __dump_stack(struct task_struct *tsk, unsigned long sp)
{
- dump_mem("Stack: ", sp, 8192+(unsigned long)t
sk->thread_info
);
+ dump_mem("Stack: ", sp, 8192+(unsigned long)t
ask_stack_page(tsk)
);
}
void dump_stack(void)
}
void dump_stack(void)
@@
-158,7
+157,7
@@
void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
} else if (verify_stack(fp)) {
printk("invalid frame pointer 0x%08x", fp);
ok = 0;
} else if (verify_stack(fp)) {
printk("invalid frame pointer 0x%08x", fp);
ok = 0;
- } else if (fp < (unsigned long)
(tsk->thread_info + 1
))
+ } else if (fp < (unsigned long)
end_of_stack(tsk
))
printk("frame pointer underflow");
printk("\n");
printk("frame pointer underflow");
printk("\n");
@@
-168,7
+167,7
@@
void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
/* FIXME - this is probably wrong.. */
void show_stack(struct task_struct *task, unsigned long *sp) {
/* FIXME - this is probably wrong.. */
void show_stack(struct task_struct *task, unsigned long *sp) {
- dump_mem("Stack: ", (unsigned long)sp, 8192+(unsigned long)task
->thread_info
);
+ dump_mem("Stack: ", (unsigned long)sp, 8192+(unsigned long)task
_stack_page(task)
);
}
DEFINE_SPINLOCK(die_lock);
}
DEFINE_SPINLOCK(die_lock);
@@
-186,8
+185,9
@@
NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
printk("Internal error: %s: %x\n", str, err);
printk("CPU: %d\n", smp_processor_id());
show_regs(regs);
printk("Internal error: %s: %x\n", str, err);
printk("CPU: %d\n", smp_processor_id());
show_regs(regs);
- printk("Process %s (pid: %d, stack limit = 0x%p)\n",
- current->comm, current->pid, tsk->thread_info + 1);
+ printk("Process %s (pid: %d[#%u], stack limit = 0x%p)\n",
+ current->comm, current->pid,
+ current->xid, end_of_stack(tsk));
if (!user_mode(regs) || in_interrupt()) {
__dump_stack(tsk, (unsigned long)(regs + 1));
if (!user_mode(regs) || in_interrupt()) {
__dump_stack(tsk, (unsigned long)(regs + 1));
@@
-207,19
+207,19
@@
void die_if_kernel(const char *str, struct pt_regs *regs, int err)
die(str, regs, err);
}
die(str, regs, err);
}
-static DE
CLARE_MUTEX(undef_sem
);
+static DE
FINE_MUTEX(undef_mutex
);
static int (*undef_hook)(struct pt_regs *);
int request_undef_hook(int (*fn)(struct pt_regs *))
{
int ret = -EBUSY;
static int (*undef_hook)(struct pt_regs *);
int request_undef_hook(int (*fn)(struct pt_regs *))
{
int ret = -EBUSY;
-
down(&undef_sem
);
+
mutex_lock(&undef_mutex
);
if (undef_hook == NULL) {
undef_hook = fn;
ret = 0;
}
if (undef_hook == NULL) {
undef_hook = fn;
ret = 0;
}
-
up(&undef_sem
);
+
mutex_unlock(&undef_mutex
);
return ret;
}
return ret;
}
@@
-228,12
+228,12
@@
int release_undef_hook(int (*fn)(struct pt_regs *))
{
int ret = -EINVAL;
{
int ret = -EINVAL;
-
down(&undef_sem
);
+
mutex_lock(&undef_mutex
);
if (undef_hook == fn) {
undef_hook = NULL;
ret = 0;
}
if (undef_hook == fn) {
undef_hook = NULL;
ret = 0;
}
-
up(&undef_sem
);
+
mutex_unlock(&undef_mutex
);
return ret;
}
return ret;
}