diff options
author | Robin Holt <holt@sgi.com> | 2005-12-05 21:02:31 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-12-06 12:12:34 -0500 |
commit | bd1d6e2451f2bb0132416fda4d129c4f57a827bc (patch) | |
tree | 64fc1ba7d4734ea5ecec8942795b32a32e4623a4 /include/asm-ia64 | |
parent | acb7f67280128a9ddaa756ff10212391d28caec4 (diff) |
[IA64] Change SET_PERSONALITY to comply with comment in binfmt_elf.c.
We have a customer application which trips a bug. The problem arises
when a driver attempts to call do_munmap on an area which is mapped, but
because current->thread.task_size has been set to 0xC0000000, the call
to do_munmap fails thinking it is an unmap beyond the user's address
space.
The comment in fs/binfmt_elf.c in load_elf_library() before the call
to SET_PERSONALITY() indicates that task_size must not be changed for
the running application until flush_thread, but is for ia64 executing
ia32 binaries.
This patch moves the setting of task_size from SET_PERSONALITY() to
flush_thread() as indicated. The customer application no longer is able
to trip the bug.
Signed-off-by: Robin Holt <holt@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'include/asm-ia64')
-rw-r--r-- | include/asm-ia64/ia32.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/asm-ia64/ia32.h b/include/asm-ia64/ia32.h index 8e746b2413a6..f8044a1169cd 100644 --- a/include/asm-ia64/ia32.h +++ b/include/asm-ia64/ia32.h | |||
@@ -13,6 +13,8 @@ | |||
13 | 13 | ||
14 | # ifdef CONFIG_IA32_SUPPORT | 14 | # ifdef CONFIG_IA32_SUPPORT |
15 | 15 | ||
16 | #define IA32_PAGE_OFFSET 0xc0000000 | ||
17 | |||
16 | extern void ia32_cpu_init (void); | 18 | extern void ia32_cpu_init (void); |
17 | extern void ia32_mem_init (void); | 19 | extern void ia32_mem_init (void); |
18 | extern void ia32_gdt_init (void); | 20 | extern void ia32_gdt_init (void); |