kernel_samsung_a53x/arch/m68k/kernel
Finn Thain 1ed7b9f02f m68k: Fix kernel_clone_args.flags in m68k_clone()
[ Upstream commit 09b3d870faa7bc3e96c0978ab3cf4e96e4b15571 ]

Stan Johnson recently reported a failure from the 'dump' command:

  DUMP: Date of this level 0 dump: Fri Aug  9 23:37:15 2024
  DUMP: Dumping /dev/sda (an unlisted file system) to /dev/null
  DUMP: Label: none
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 3595695 blocks.
  DUMP: Context save fork fails in parent 671

The dump program uses the clone syscall with the CLONE_IO flag, that is,
flags == 0x80000000. When that value is promoted from long int to u64 by
m68k_clone(), it undergoes sign-extension. The new value includes
CLONE_INTO_CGROUP so the validation in cgroup_css_set_fork() fails and
the syscall returns -EBADF. Avoid sign-extension by casting to u32.

Reported-by: Stan Johnson <userm57@yahoo.com>
Closes: https://lists.debian.org/debian-68k/2024/08/msg00000.html
Fixes: 6aabc1facdb2 ("m68k: Implement copy_thread_tls()")
Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/3463f1e5d4e95468dc9f3368f2b78ffa7b72199b.1723335149.git.fthain@linux-m68k.org
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:20 +01:00
..
syscalls Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
asm-offsets.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bootinfo_proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dma.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
early_printk.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
entry.S m68k: Fix spinlock race in kernel thread creation 2024-11-19 12:26:56 +01:00
head.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ints.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
irq.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
machine_kexec.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pcibios.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
process.c m68k: Fix kernel_clone_args.flags in m68k_clone() 2024-11-23 23:21:20 +01:00
ptrace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
relocate_kernel.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setup_mm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setup_no.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
signal.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sun3-head.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sys_m68k.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
syscalltable.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
time.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
traps.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uboot.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vectors.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmlinux-nommu.lds Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmlinux-std.lds Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmlinux-sun3.lds Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmlinux.lds.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00