|
@@ -150,6 +150,14 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
|
|
|
struct task_struct *tsk = current;
|
|
|
struct vm_area_struct *vma;
|
|
|
|
|
|
+ /*
|
|
|
+ * In some cases (e.g. Hyper-Threading), we want to avoid L1
|
|
|
+ * evictions by the processes running on the same package. One
|
|
|
+ * thing we can do is to shuffle the initial stack for them.
|
|
|
+ */
|
|
|
+
|
|
|
+ p = arch_align_stack(p);
|
|
|
+
|
|
|
/*
|
|
|
* If this architecture has a platform capability string, copy it
|
|
|
* to userspace. In some cases (Sparc), this info is impossible
|
|
@@ -160,14 +168,6 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
|
|
|
if (k_platform) {
|
|
|
size_t len = strlen(k_platform) + 1;
|
|
|
|
|
|
- /*
|
|
|
- * In some cases (e.g. Hyper-Threading), we want to avoid L1
|
|
|
- * evictions by the processes running on the same package. One
|
|
|
- * thing we can do is to shuffle the initial stack for them.
|
|
|
- */
|
|
|
-
|
|
|
- p = arch_align_stack(p);
|
|
|
-
|
|
|
u_platform = (elf_addr_t __user *)STACK_ALLOC(p, len);
|
|
|
if (__copy_to_user(u_platform, k_platform, len))
|
|
|
return -EFAULT;
|