On Wed, Jun 11, 2025 at 01:28:26PM +0200, Thomas Weißschuh wrote: > Not all tasks have an ABI associated or vDSO mapped, > for example kthreads never do. > If such a task ever ends up calling stack_top(), it will derefence the > NULL ABI pointer and crash. > > This can for example happen when using kunit: > > mips_stack_top+0x28/0xc0 > arch_pick_mmap_layout+0x190/0x220 > kunit_vm_mmap_init+0xf8/0x138 > __kunit_add_resource+0x40/0xa8 > kunit_vm_mmap+0x88/0xd8 > usercopy_test_init+0xb8/0x240 > kunit_try_run_case+0x5c/0x1a8 > kunit_generic_run_threadfn_adapter+0x28/0x50 > kthread+0x118/0x240 > ret_from_kernel_thread+0x14/0x1c > > Only dereference the ABI point if it is set. > > The GIC page is also included as it is specific to the vDSO. > Also move the randomization adjustment into the same conditional. > > Signed-off-by: Thomas Weißschuh <thomas.weisssc...@linutronix.de> > Reviewed-by: David Gow <david...@google.com> > --- > arch/mips/kernel/process.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-)
applied to mips-next. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]