diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-12-08 05:36:23 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 11:28:39 -0500 |
commit | e182c965b6ce0dffed0967a1be2173825a2ede2f (patch) | |
tree | 287d3801dc660b4bc39da08400a68b6ea536e30e /arch/um/sys-x86_64 | |
parent | c31a0bf3e1bc581676618db7492f18798fd0a73f (diff) |
[PATCH] UML: add generic BUG support
The BUG changes in -mm3 need some arch support. This patch adds the UML
support needed. For the most part, it was stolen from the underlying
architecture. The exception is the kernel eip < PAGE_OFFSET test, which is
wrong for skas mode UMLs.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/sys-x86_64')
-rw-r--r-- | arch/um/sys-x86_64/Makefile | 2 | ||||
-rw-r--r-- | arch/um/sys-x86_64/bug.c | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile index f41768b8e25e..4d9e5efa6fb9 100644 --- a/arch/um/sys-x86_64/Makefile +++ b/arch/um/sys-x86_64/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | # Licensed under the GPL | 4 | # Licensed under the GPL |
5 | # | 5 | # |
6 | 6 | ||
7 | obj-y = bugs.o delay.o fault.o ldt.o mem.o ptrace.o ptrace_user.o \ | 7 | obj-y = bug.o bugs.o delay.o fault.o ldt.o mem.o ptrace.o ptrace_user.o \ |
8 | setjmp.o sigcontext.o signal.o syscalls.o syscall_table.o sysrq.o \ | 8 | setjmp.o sigcontext.o signal.o syscalls.o syscall_table.o sysrq.o \ |
9 | ksyms.o tls.o | 9 | ksyms.o tls.o |
10 | 10 | ||
diff --git a/arch/um/sys-x86_64/bug.c b/arch/um/sys-x86_64/bug.c new file mode 100644 index 000000000000..200c8ba2879b --- /dev/null +++ b/arch/um/sys-x86_64/bug.c | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Jeff Dike (jdike@addtoit.com) | ||
3 | * Licensed under the GPL V2 | ||
4 | */ | ||
5 | |||
6 | #include <linux/uaccess.h> | ||
7 | |||
8 | /* Mostly copied from i386/x86_86 - eliminated the eip < PAGE_OFFSET because | ||
9 | * that's not relevent in skas mode. | ||
10 | */ | ||
11 | |||
12 | int is_valid_bugaddr(unsigned long eip) | ||
13 | { | ||
14 | unsigned short ud2; | ||
15 | |||
16 | if (probe_kernel_address((unsigned short __user *)eip, ud2)) | ||
17 | return 0; | ||
18 | |||
19 | return ud2 == 0x0b0f; | ||
20 | } | ||