diff options
author | Thomas Zimmermann <tzimmermann@suse.de> | 2025-02-25 11:43:10 +0100 |
---|---|---|
committer | Thomas Zimmermann <tzimmermann@suse.de> | 2025-02-25 11:43:10 +0100 |
commit | 130377304ed09e54ff35a8974372498aad7059f3 (patch) | |
tree | deac7244baf40d11bd3976416d6e1c656fad3ac7 /arch/um/kernel/process.c | |
parent | 40115947b59f2ca361a47615304dff0a2b69a2b4 (diff) | |
parent | fb51bf02551958265b7116f6ba92752295c83c26 (diff) |
Merge drm/drm-next into drm-misc-next
Backmerging to get fixes from v6.14-rc4.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r-- | arch/um/kernel/process.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index e5a2d4d897e0..0cd6fad3d908 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c @@ -191,7 +191,15 @@ void initial_thread_cb(void (*proc)(void *), void *arg) int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) { - memcpy(dst, src, arch_task_struct_size); + /* init_task is not dynamically sized (missing FPU state) */ + if (unlikely(src == &init_task)) { + memcpy(dst, src, sizeof(init_task)); + memset((void *)dst + sizeof(init_task), 0, + arch_task_struct_size - sizeof(init_task)); + } else { + memcpy(dst, src, arch_task_struct_size); + } + return 0; } |