diff options
Diffstat (limited to 'fs/binfmt_elf.c')
-rw-r--r-- | fs/binfmt_elf.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 0f55b71ed983..6e2f3b8dde7f 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -151,6 +151,14 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
151 | struct vm_area_struct *vma; | 151 | struct vm_area_struct *vma; |
152 | 152 | ||
153 | /* | 153 | /* |
154 | * In some cases (e.g. Hyper-Threading), we want to avoid L1 | ||
155 | * evictions by the processes running on the same package. One | ||
156 | * thing we can do is to shuffle the initial stack for them. | ||
157 | */ | ||
158 | |||
159 | p = arch_align_stack(p); | ||
160 | |||
161 | /* | ||
154 | * If this architecture has a platform capability string, copy it | 162 | * If this architecture has a platform capability string, copy it |
155 | * to userspace. In some cases (Sparc), this info is impossible | 163 | * to userspace. In some cases (Sparc), this info is impossible |
156 | * for userspace to get any other way, in others (i386) it is | 164 | * for userspace to get any other way, in others (i386) it is |
@@ -160,14 +168,6 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
160 | if (k_platform) { | 168 | if (k_platform) { |
161 | size_t len = strlen(k_platform) + 1; | 169 | size_t len = strlen(k_platform) + 1; |
162 | 170 | ||
163 | /* | ||
164 | * In some cases (e.g. Hyper-Threading), we want to avoid L1 | ||
165 | * evictions by the processes running on the same package. One | ||
166 | * thing we can do is to shuffle the initial stack for them. | ||
167 | */ | ||
168 | |||
169 | p = arch_align_stack(p); | ||
170 | |||
171 | u_platform = (elf_addr_t __user *)STACK_ALLOC(p, len); | 171 | u_platform = (elf_addr_t __user *)STACK_ALLOC(p, len); |
172 | if (__copy_to_user(u_platform, k_platform, len)) | 172 | if (__copy_to_user(u_platform, k_platform, len)) |
173 | return -EFAULT; | 173 | return -EFAULT; |