Re: Regression with v5.18-rc1 tag on STM32F7 and STM32H7 based boards

From: Hugh Dickins
Date: Tue Apr 05 2022 - 22:19:58 EST


On Tue, 5 Apr 2022, Patrice CHOTARD wrote:
>
> We found an issue with last kernel tag v5.18-rc1 on stm32f746-disco and
> stm32h743-disco boards (ARMV7-M SoCs).
>
> Kernel hangs when executing SetPageUptodate(ZERO_PAGE(0)); in mm/filemap.c.
>
> By reverting commit 56a8c8eb1eaf ("tmpfs: do not allocate pages on read"),
> kernel boots without any issue.

Sorry about that, thanks a lot for finding.

I see that arch/arm/configs/stm32_defconfig says CONFIG_MMU is not set:
please confirm that is the case here.

Yes, it looks as if NOMMU platforms are liable to have a bogus (that's my
reading, but it may be unfair) definition for ZERO_PAGE(vaddr), and I was
walking on ice to touch it without regard for !CONFIG_MMU.

CONFIG_SHMEM depends on CONFIG_MMU, so that PageUptodate is only needed
when CONFIG_MMU.

Easily fixed by an #ifdef CONFIG_MMU there in mm/filemap.c, but I'll hunt
around (again) for a better place to do it - though I won't want to touch
all the architectures for it. I'll post later today.

Hugh