diff options
author | Alexei Starovoitov <ast@kernel.org> | 2025-02-20 18:10:24 -0800 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2025-02-20 18:13:57 -0800 |
commit | bd4319b6c2b36aa5c6534aec1dbe16921ec960ef (patch) | |
tree | aec6748a7c59ea9a3ebb2c543b2e7f0ce2806b91 /arch/um/kernel/process.c | |
parent | 7042882abc04c720ea798198981943502f4221fe (diff) | |
parent | 319fc77f8f45a1b3dba15b0cc1a869778fd222f7 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf bpf-6.14-rc4
Cross-merge bpf fixes after downstream PR (bpf-6.14-rc4).
Minor conflict:
kernel/bpf/btf.c
Adjacent changes:
kernel/bpf/arena.c
kernel/bpf/btf.c
kernel/bpf/syscall.c
kernel/bpf/verifier.c
mm/memory.c
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
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; } |