diff options
Diffstat (limited to 'include/asm-x86/elf.h')
-rw-r--r-- | include/asm-x86/elf.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/include/asm-x86/elf.h b/include/asm-x86/elf.h index 7be4733c793e..26bc15f01e78 100644 --- a/include/asm-x86/elf.h +++ b/include/asm-x86/elf.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef _ASM_X86_ELF_H | 1 | #ifndef ASM_X86__ELF_H |
2 | #define _ASM_X86_ELF_H | 2 | #define ASM_X86__ELF_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * ELF register definitions.. | 5 | * ELF register definitions.. |
@@ -148,8 +148,9 @@ do { \ | |||
148 | 148 | ||
149 | static inline void start_ia32_thread(struct pt_regs *regs, u32 ip, u32 sp) | 149 | static inline void start_ia32_thread(struct pt_regs *regs, u32 ip, u32 sp) |
150 | { | 150 | { |
151 | asm volatile("movl %0,%%fs" :: "r" (0)); | 151 | loadsegment(fs, 0); |
152 | asm volatile("movl %0,%%es; movl %0,%%ds" : : "r" (__USER32_DS)); | 152 | loadsegment(ds, __USER32_DS); |
153 | loadsegment(es, __USER32_DS); | ||
153 | load_gs_index(0); | 154 | load_gs_index(0); |
154 | regs->ip = ip; | 155 | regs->ip = ip; |
155 | regs->sp = sp; | 156 | regs->sp = sp; |
@@ -185,7 +186,7 @@ do { \ | |||
185 | set_fs(USER_DS); \ | 186 | set_fs(USER_DS); \ |
186 | } while (0) | 187 | } while (0) |
187 | 188 | ||
188 | #define COMPAT_SET_PERSONALITY(ex, ibcs2) \ | 189 | #define COMPAT_SET_PERSONALITY(ex) \ |
189 | do { \ | 190 | do { \ |
190 | if (test_thread_flag(TIF_IA32)) \ | 191 | if (test_thread_flag(TIF_IA32)) \ |
191 | clear_thread_flag(TIF_ABI_PENDING); \ | 192 | clear_thread_flag(TIF_ABI_PENDING); \ |
@@ -266,7 +267,7 @@ extern int force_personality32; | |||
266 | For the moment, we have only optimizations for the Intel generations, | 267 | For the moment, we have only optimizations for the Intel generations, |
267 | but that could change... */ | 268 | but that could change... */ |
268 | 269 | ||
269 | #define SET_PERSONALITY(ex, ibcs2) set_personality_64bit() | 270 | #define SET_PERSONALITY(ex) set_personality_64bit() |
270 | 271 | ||
271 | /* | 272 | /* |
272 | * An executable for which elf_read_implies_exec() returns TRUE will | 273 | * An executable for which elf_read_implies_exec() returns TRUE will |
@@ -332,4 +333,4 @@ extern int syscall32_setup_pages(struct linux_binprm *, int exstack); | |||
332 | extern unsigned long arch_randomize_brk(struct mm_struct *mm); | 333 | extern unsigned long arch_randomize_brk(struct mm_struct *mm); |
333 | #define arch_randomize_brk arch_randomize_brk | 334 | #define arch_randomize_brk arch_randomize_brk |
334 | 335 | ||
335 | #endif | 336 | #endif /* ASM_X86__ELF_H */ |