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 ]

Reply via email to