]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sparc64: fix hugetlb for sun4u
authorAnthony Yznaga <anthony.yznaga@oracle.com>
Wed, 16 Jul 2025 01:24:46 +0000 (18:24 -0700)
committerAndreas Larsson <andreas@gaisler.com>
Fri, 19 Sep 2025 18:25:37 +0000 (20:25 +0200)
commit6fd44a481b3c6111e4801cec964627791d0f3ec5
tree0c46e8848194a314ca7b9213e115760fee07f913
parentdee099fd9d9af800ef28a3f930d32974104cf36a
sparc64: fix hugetlb for sun4u

An attempt to exercise sparc hugetlb code in a sun4u-based guest
running under qemu results in the guest hanging due to being stuck
in a trap loop. This is due to invalid hugetlb TTEs being installed
that do not have the expected _PAGE_PMD_HUGE and page size bits set.
Although the breakage has gone apparently unnoticed for several years,
fix it now so there is the option to exercise sparc hugetlb code under
qemu. This can be useful because sun4v support in qemu does not support
linux guests currently and sun4v-based hardware resources may not be
readily available.

Fix tested with a 6.15.2 and 6.16-rc6 kernels by running libhugetlbfs
tests on a qemu guest running Debian 13.

Fixes: c7d9f77d33a7 ("sparc64: Multi-page size support")
Cc: stable@vger.kernel.org
Signed-off-by: Anthony Yznaga <anthony.yznaga@oracle.com>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
Link: https://lore.kernel.org/r/20250716012446.10357-1-anthony.yznaga@oracle.com
Signed-off-by: Andreas Larsson <andreas@gaisler.com>
arch/sparc/mm/hugetlbpage.c