Re: [PATCH v4 1/2] MIPS: Don't crash in stack_top() for tasks without ABI or vDSO

From: Thomas Bogendoerfer
Date: Wed Jul 02 2025 - 09:29:12 EST


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.weissschuh@xxxxxxxxxxxxx>
> Reviewed-by: David Gow <davidgow@xxxxxxxxxx>
> ---
> 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 ]