Re: [PATCH v4 2/2] mm: use clear_user_(high)page() for arch with special user folio handling
From: Zi Yan
Date: Mon Dec 09 2024 - 13:14:32 EST
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