diff options
author | Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> | 2005-05-05 19:15:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-05 19:36:32 -0400 |
commit | f7fe8781749bf2de2ca03147a1691244a7d93ec7 (patch) | |
tree | ed4288c71b5208f9207fe852dd3351446261adb6 | |
parent | 1f8d419e291f7f7f7f3ffd4f0ba00834621690c8 (diff) |
[PATCH] uml: obvious compile fixes for x86-64 Subarch and x86 regression fixes
This patch does some totally trivial compilation fixes. It also restores the
debugregs manipulation, which was commented out simply because it doesn't
compile on x86_64 (we haven't yet implemented there debugregs handling).
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/um/kernel/ptrace.c | 4 | ||||
-rw-r--r-- | arch/um/sys-x86_64/syscalls.c | 2 | ||||
-rw-r--r-- | include/asm-um/ipc.h | 7 | ||||
-rw-r--r-- | include/asm-um/page.h | 3 | ||||
-rw-r--r-- | include/asm-um/pgtable-3level.h | 2 |
5 files changed, 10 insertions, 8 deletions
diff --git a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c index 959b2d2490df..ffc599bd85c3 100644 --- a/arch/um/kernel/ptrace.c +++ b/arch/um/kernel/ptrace.c | |||
@@ -98,12 +98,14 @@ long sys_ptrace(long request, long pid, long addr, long data) | |||
98 | if(addr < MAX_REG_OFFSET){ | 98 | if(addr < MAX_REG_OFFSET){ |
99 | tmp = getreg(child, addr); | 99 | tmp = getreg(child, addr); |
100 | } | 100 | } |
101 | #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT) | ||
101 | else if((addr >= offsetof(struct user, u_debugreg[0])) && | 102 | else if((addr >= offsetof(struct user, u_debugreg[0])) && |
102 | (addr <= offsetof(struct user, u_debugreg[7]))){ | 103 | (addr <= offsetof(struct user, u_debugreg[7]))){ |
103 | addr -= offsetof(struct user, u_debugreg[0]); | 104 | addr -= offsetof(struct user, u_debugreg[0]); |
104 | addr = addr >> 2; | 105 | addr = addr >> 2; |
105 | tmp = child->thread.arch.debugregs[addr]; | 106 | tmp = child->thread.arch.debugregs[addr]; |
106 | } | 107 | } |
108 | #endif | ||
107 | ret = put_user(tmp, (unsigned long __user *) data); | 109 | ret = put_user(tmp, (unsigned long __user *) data); |
108 | break; | 110 | break; |
109 | } | 111 | } |
@@ -127,7 +129,7 @@ long sys_ptrace(long request, long pid, long addr, long data) | |||
127 | ret = putreg(child, addr, data); | 129 | ret = putreg(child, addr, data); |
128 | break; | 130 | break; |
129 | } | 131 | } |
130 | #if 0 /* XXX x86_64 */ | 132 | #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT) |
131 | else if((addr >= offsetof(struct user, u_debugreg[0])) && | 133 | else if((addr >= offsetof(struct user, u_debugreg[0])) && |
132 | (addr <= offsetof(struct user, u_debugreg[7]))){ | 134 | (addr <= offsetof(struct user, u_debugreg[7]))){ |
133 | addr -= offsetof(struct user, u_debugreg[0]); | 135 | addr -= offsetof(struct user, u_debugreg[0]); |
diff --git a/arch/um/sys-x86_64/syscalls.c b/arch/um/sys-x86_64/syscalls.c index ab4b0abf8af3..2a575ef52bba 100644 --- a/arch/um/sys-x86_64/syscalls.c +++ b/arch/um/sys-x86_64/syscalls.c | |||
@@ -7,6 +7,8 @@ | |||
7 | #include "linux/linkage.h" | 7 | #include "linux/linkage.h" |
8 | #include "linux/slab.h" | 8 | #include "linux/slab.h" |
9 | #include "linux/shm.h" | 9 | #include "linux/shm.h" |
10 | #include "linux/utsname.h" | ||
11 | #include "linux/personality.h" | ||
10 | #include "asm/uaccess.h" | 12 | #include "asm/uaccess.h" |
11 | #define __FRAME_OFFSETS | 13 | #define __FRAME_OFFSETS |
12 | #include "asm/ptrace.h" | 14 | #include "asm/ptrace.h" |
diff --git a/include/asm-um/ipc.h b/include/asm-um/ipc.h index e2ddc47f3e52..a46e3d9c2a3f 100644 --- a/include/asm-um/ipc.h +++ b/include/asm-um/ipc.h | |||
@@ -1,6 +1 @@ | |||
1 | #ifndef __UM_IPC_H | #include <asm-generic/ipc.h> | |
2 | #define __UM_IPC_H | ||
3 | |||
4 | #include "asm/arch/ipc.h" | ||
5 | |||
6 | #endif | ||
diff --git a/include/asm-um/page.h b/include/asm-um/page.h index 102eb3df1aaf..504ea8e486b0 100644 --- a/include/asm-um/page.h +++ b/include/asm-um/page.h | |||
@@ -45,6 +45,9 @@ typedef struct { unsigned long pgd; } pgd_t; | |||
45 | ({ (pte).pte_high = (phys) >> 32; \ | 45 | ({ (pte).pte_high = (phys) >> 32; \ |
46 | (pte).pte_low = (phys) | pgprot_val(prot); }) | 46 | (pte).pte_low = (phys) | pgprot_val(prot); }) |
47 | 47 | ||
48 | #define pmd_val(x) ((x).pmd) | ||
49 | #define __pmd(x) ((pmd_t) { (x) } ) | ||
50 | |||
48 | typedef unsigned long long pfn_t; | 51 | typedef unsigned long long pfn_t; |
49 | typedef unsigned long long phys_t; | 52 | typedef unsigned long long phys_t; |
50 | 53 | ||
diff --git a/include/asm-um/pgtable-3level.h b/include/asm-um/pgtable-3level.h index d309f3a9e6f6..65e8bfc55fc4 100644 --- a/include/asm-um/pgtable-3level.h +++ b/include/asm-um/pgtable-3level.h | |||
@@ -149,7 +149,7 @@ static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot) | |||
149 | 149 | ||
150 | #define pte_to_pgoff(p) ((p).pte >> 32) | 150 | #define pte_to_pgoff(p) ((p).pte >> 32) |
151 | 151 | ||
152 | #define pgoff_to_pte(off) ((pte_t) { ((off) < 32) | _PAGE_FILE }) | 152 | #define pgoff_to_pte(off) ((pte_t) { ((off) << 32) | _PAGE_FILE }) |
153 | 153 | ||
154 | #else | 154 | #else |
155 | 155 | ||