LoongArch: Fix arch_dup_task_struct() for CONFIG_RANDSTRUCT

Now the optimized version of arch_dup_task_struct() for LoongArch
assumes 'thread' is the last member of 'task_struct'. But this is
not true if CONFIG_RANDSTRUCT is enabled after Linux-6.16.

So fix the arch_dup_task_struct() function for CONFIG_RANDSTRUCT by
copying the whole 'task_struct'.

Cc: stable@vger.kernel.org   # 6.16+
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: maoxiaochuan <maoxiaochuan@loongson.cn>
This commit is contained in:
Huacai Chen
2026-02-04 16:38:20 +08:00
committed by maoxiaochuan
parent da5a1c3d57
commit 2d50f3b912
+5
View File
@@ -130,6 +130,11 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
preempt_enable();
if (IS_ENABLED(CONFIG_RANDSTRUCT)) {
memcpy(dst, src, sizeof(struct task_struct));
return 0;
}
if (!used_math())
memcpy(dst, src, offsetof(struct task_struct, thread.fpu.fpr));
else