From: Greg KH <gregkh@linuxfoundation.org>
To: Miaohe Lin <linmiaohe@huawei.com>
Cc: stable@vger.kernel.org, Muchun Song <muchun.song@linux.dev>,
Oscar Salvador <osalvador@suse.de>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 6.6.y] mm/hugetlb: fix potential race in __update_and_free_hugetlb_folio()
Date: Mon, 12 Aug 2024 16:35:46 +0200 [thread overview]
Message-ID: <2024081233-narrow-oaf-05da@gregkh> (raw)
In-Reply-To: <20240807035853.1489074-1-linmiaohe@huawei.com>
On Wed, Aug 07, 2024 at 11:58:53AM +0800, Miaohe Lin wrote:
> There is a potential race between __update_and_free_hugetlb_folio() and
> try_memory_failure_hugetlb():
>
> CPU1 CPU2
> __update_and_free_hugetlb_folio try_memory_failure_hugetlb
> folio_test_hugetlb
> -- It's still hugetlb folio.
> folio_clear_hugetlb_hwpoison
> spin_lock_irq(&hugetlb_lock);
> __get_huge_page_for_hwpoison
> folio_set_hugetlb_hwpoison
> spin_unlock_irq(&hugetlb_lock);
> spin_lock_irq(&hugetlb_lock);
> __folio_clear_hugetlb(folio);
> -- Hugetlb flag is cleared but too late.
> spin_unlock_irq(&hugetlb_lock);
>
> When the above race occurs, raw error page info will be leaked. Even
> worse, raw error pages won't have hwpoisoned flag set and hit
> pcplists/buddy. Fix this issue by deferring
> folio_clear_hugetlb_hwpoison() until __folio_clear_hugetlb() is done. So
> all raw error pages will have hwpoisoned flag set.
>
> Link: https://lkml.kernel.org/r/20240708025127.107713-1-linmiaohe@huawei.com
> Fixes: 32c877191e02 ("hugetlb: do not clear hugetlb dtor until allocating vmemmap")
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> Acked-by: Muchun Song <muchun.song@linux.dev>
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> (cherry picked from commit 5596d9e8b553dacb0ac34bcf873cbbfb16c3ba3e)
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
> mm/hugetlb.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
Backports now queued up, thanks.
greg k-h
prev parent reply other threads:[~2024-08-12 14:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-15 11:36 FAILED: patch "[PATCH] mm/hugetlb: fix potential race in" failed to apply to 6.6-stable tree gregkh
2024-08-07 3:58 ` [PATCH 6.6.y] mm/hugetlb: fix potential race in __update_and_free_hugetlb_folio() Miaohe Lin
2024-08-12 14:35 ` Greg KH [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2024081233-narrow-oaf-05da@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=akpm@linux-foundation.org \
--cc=linmiaohe@huawei.com \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.