• Vegard Nossum's avatar
    kthread: fix boot hang (regression) on MIPS/OpenRISC · 0d8f2274
    Vegard Nossum authored
    commit b0f5a8f3 upstream.
    
    This fixes a regression in commit 4d6501dc where I didn't notice
    that MIPS and OpenRISC were reinitialising p->{set,clear}_child_tid to
    NULL after our initialisation in copy_process().
    
    We can simply get rid of the arch-specific initialisation here since it
    is now always done in copy_process() before hitting copy_thread{,_tls}().
    
    Review notes:
    
     - As far as I can tell, copy_process() is the only user of
       copy_thread_tls(), which is the only caller of copy_thread() for
       architectures that don't implement copy_thread_tls().
    
     - After this patch, there is no arch-specific code touching
       p->set_child_tid or p->clear_child_tid whatsoever.
    
     - It may look like MIPS/OpenRISC wanted to always have these fields be
       NULL, but that's not true, as copy_process() would unconditionally
       set them again _after_ calling copy_thread_tls() before commit
       4d6501dc.
    
    Fixes: 4d6501dc ("kthread: Fix use-after-free if kthread fork fails")
    Reported-by: 's avatarGuenter Roeck <linux@roeck-us.net>
    Tested-by: Guenter Roeck <linux@roeck-us.net> # MIPS only
    Acked-by: 's avatarStafford Horne <shorne@gmail.com>
    Acked-by: 's avatarOleg Nesterov <oleg@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Cc: openrisc@lists.librecores.org
    Cc: Jamie Iles <jamie.iles@oracle.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: 's avatarVegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: 's avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: 's avatarAmit Pundir <amit.pundir@linaro.org>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0d8f2274
Name
Last commit
Last update
..
Makefile Loading commit data...
asm-offsets.c Loading commit data...
dma.c Loading commit data...
entry.S Loading commit data...
head.S Loading commit data...
irq.c Loading commit data...
module.c Loading commit data...
or32_ksyms.c Loading commit data...
process.c Loading commit data...
prom.c Loading commit data...
ptrace.c Loading commit data...
setup.c Loading commit data...
signal.c Loading commit data...
sys_call_table.c Loading commit data...
time.c Loading commit data...
traps.c Loading commit data...
vmlinux.h Loading commit data...
vmlinux.lds.S Loading commit data...