[PATCH v4 2/2] mm: use clear_user_(high)page() for arch with special user folio handling

Vlastimil Babka vbabka at suse.cz
Mon Dec 9 10:12:30 PST 2024


On 12/7/24 18:16, Zi Yan wrote:
> Some architectures have special handling after clearing user folios:
> architectures, which set cpu_dcache_is_aliasing() to true, require
> flushing dcache; arc, which sets cpu_icache_is_aliasing() to true, changes
> folio->flags to make icache coherent to dcache. So __GFP_ZERO using only
> clear_page() is not enough to zero user folios and clear_user_(high)page()
> must be used. Otherwise, user data will be corrupted.
> 
> Fix it by always clearing user folios with clear_user_(high)page() when
> cpu_dcache_is_aliasing() is true or cpu_icache_is_aliasing() is true.
> Rename alloc_zeroed() to alloc_need_zeroing() and invert the logic to
> clarify its intend.

user_alloc_needs_zeroing() would be perhaps more descriptive?

> Fixes: 5708d96da20b ("mm: avoid zeroing user movable page twice with init_on_alloc=1")
> Reported-by: Geert Uytterhoeven <geert+renesas at glider.be>
> Closes: https://lore.kernel.org/linux-mm/CAMuHMdV1hRp_NtR5YnJo=HsfgKQeH91J537Gh4gKk3PFZhSkbA@mail.gmail.com/
> Tested-by: Geert Uytterhoeven <geert+renesas at glider.be>
> Signed-off-by: Zi Yan <ziy at nvidia.com>

Acked-by: Vlastimil Babka <vbabka at suse.cz>





More information about the linux-snps-arc mailing list