Re: [PATCH v3] mm: fix unexpected changes to {failslab|fail_page_alloc}.attr

From: Jason Gunthorpe
Date: Fri Nov 18 2022 - 07:47:58 EST


On Fri, Nov 18, 2022 at 06:00:11PM +0800, Qi Zheng wrote:
> When we specify __GFP_NOWARN, we only expect that no warnings
> will be issued for current caller. But in the __should_failslab()
> and __should_fail_alloc_page(), the local GFP flags alter the
> global {failslab|fail_page_alloc}.attr, which is persistent and
> shared by all tasks. This is not what we expected, let's fix it.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 3f913fc5f974 ("mm: fix missing handler for __GFP_NOWARN")
> Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
> Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx>
> Reviewed-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
> ---
> v1: https://lore.kernel.org/lkml/20221107033109.59709-1-zhengqi.arch@xxxxxxxxxxxxx/
> v2: https://lore.kernel.org/lkml/20221108035232.87180-1-zhengqi.arch@xxxxxxxxxxxxx/

Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx>

Jason