On 9 Dec 2024, at 13:12, Vlastimil Babka wrote: > 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? Sounds good. Let me send v5. > >> Fixes: 5708d96da20b ("mm: avoid zeroing user movable page twice with init_on_alloc=1") >> Reported-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> >> Closes: https://lore.kernel.org/linux-mm/CAMuHMdV1hRp_NtR5YnJo=HsfgKQeH91J537Gh4gKk3PFZhSkbA@xxxxxxxxxxxxxx/ >> Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> >> Signed-off-by: Zi Yan <ziy@xxxxxxxxxx> > > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> Thanks. Best Regards, Yan, Zi