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
/
alpha
/
mm
/
fault.c
diff --git
a/arch/alpha/mm/fault.c
b/arch/alpha/mm/fault.c
index
242317d
..
e5a0c5c
100644
(file)
--- a/
arch/alpha/mm/fault.c
+++ b/
arch/alpha/mm/fault.c
@@
-4,7
+4,6
@@
* Copyright (C) 1995 Linus Torvalds
*/
* Copyright (C) 1995 Linus Torvalds
*/
-#include <linux/config.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
@@
-98,7
+97,7
@@
do_page_fault(unsigned long address, unsigned long mmcsr,
by ignoring such an instruction. */
if (cause == 0) {
unsigned int insn;
by ignoring such an instruction. */
if (cause == 0) {
unsigned int insn;
- __get_user(insn, (unsigned int *)regs->pc);
+ __get_user(insn, (unsigned int
__user
*)regs->pc);
if ((insn >> 21 & 0x1f) == 0x1f &&
/* ldq ldl ldt lds ldg ldf ldwu ldbu */
(1ul << (insn >> 26) & 0x30f00001400ul)) {
if ((insn >> 21 & 0x1f) == 0x1f &&
/* ldq ldl ldt lds ldg ldf ldwu ldbu */
(1ul << (insn >> 26) & 0x30f00001400ul)) {
@@
-109,7
+108,7
@@
do_page_fault(unsigned long address, unsigned long mmcsr,
/* If we're in an interrupt context, or have no user context,
we must not take the fault. */
/* If we're in an interrupt context, or have no user context,
we must not take the fault. */
- if (!mm || in_
interrupt
())
+ if (!mm || in_
atomic
())
goto no_context;
#ifdef CONFIG_ALPHA_LARGE_VMALLOC
goto no_context;
#ifdef CONFIG_ALPHA_LARGE_VMALLOC
@@
-194,13
+193,13
@@
do_page_fault(unsigned long address, unsigned long mmcsr,
/* We ran out of memory, or some other thing happened to us that
made us unable to handle the page fault gracefully. */
out_of_memory:
/* We ran out of memory, or some other thing happened to us that
made us unable to handle the page fault gracefully. */
out_of_memory:
- if (
current->pid == 1
) {
+ if (
is_init(current)
) {
yield();
down_read(&mm->mmap_sem);
goto survive;
}
yield();
down_read(&mm->mmap_sem);
goto survive;
}
- printk(KERN_ALERT "VM: killing process %s(%d)\n",
- current->comm, current->pid);
+ printk(KERN_ALERT "VM: killing process %s(%d
:#%u
)\n",
+ current->comm, current->pid
, current->xid
);
if (!user_mode(regs))
goto no_context;
do_exit(SIGKILL);
if (!user_mode(regs))
goto no_context;
do_exit(SIGKILL);
@@
-211,7
+210,7
@@
do_page_fault(unsigned long address, unsigned long mmcsr,
info.si_signo = SIGBUS;
info.si_errno = 0;
info.si_code = BUS_ADRERR;
info.si_signo = SIGBUS;
info.si_errno = 0;
info.si_code = BUS_ADRERR;
- info.si_addr = (void *) address;
+ info.si_addr = (void
__user
*) address;
force_sig_info(SIGBUS, &info, current);
if (!user_mode(regs))
goto no_context;
force_sig_info(SIGBUS, &info, current);
if (!user_mode(regs))
goto no_context;
@@
-221,7
+220,7
@@
do_page_fault(unsigned long address, unsigned long mmcsr,
info.si_signo = SIGSEGV;
info.si_errno = 0;
info.si_code = si_code;
info.si_signo = SIGSEGV;
info.si_errno = 0;
info.si_code = si_code;
- info.si_addr = (void *) address;
+ info.si_addr = (void
__user
*) address;
force_sig_info(SIGSEGV, &info, current);
return;
force_sig_info(SIGSEGV, &info, current);
return;