Commit a91b446e authored by Huacai Chen's avatar Huacai Chen
Browse files

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: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent 3c250aec
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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