lkml.org 
[lkml]   [2022]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6/6] mm, hwpoison: avoid trying to unpoison reserved page
    Date
    For reserved pages, HWPoison flag will be set without increasing the page
    refcnt. So we shouldn't even try to unpoison these pages and thus decrease
    the page refcnt unexpectly. Add a PageReserved() check to filter this case
    out and remove the below unneeded zero page (zero page is reserved) check.

    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    ---
    mm/memory-failure.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/mm/memory-failure.c b/mm/memory-failure.c
    index 5f9615a86296..c831c41bb092 100644
    --- a/mm/memory-failure.c
    +++ b/mm/memory-failure.c
    @@ -2355,7 +2355,7 @@ int unpoison_memory(unsigned long pfn)
    goto unlock_mutex;
    }

    - if (PageSlab(page) || PageTable(page))
    + if (PageSlab(page) || PageTable(page) || PageReserved(page))
    goto unlock_mutex;

    ret = get_hwpoison_page(p, MF_UNPOISON);
    @@ -2386,7 +2386,7 @@ int unpoison_memory(unsigned long pfn)
    freeit = !!TestClearPageHWPoison(p);

    put_page(page);
    - if (freeit && !(pfn == my_zero_pfn(0) && page_count(p) == 1)) {
    + if (freeit) {
    put_page(page);
    ret = 0;
    }
    --
    2.23.0
    \
     
     \ /
      Last update: 2022-08-18 15:02    [W:4.457 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site