• Naoya Horiguchi's avatar
    mm/memory-failure: unlock_page before put_page · a09233f3
    Naoya Horiguchi authored
    Recently I addressed a few of hwpoison race problems and the patches are
    merged on v4.2-rc1.  It made progress, but unfortunately some problems
    still remain due to less coverage of my testing.  So I'm trying to fix
    or avoid them in this series.
    
    One point I'm expecting to discuss is that patch 4/5 changes the page
    flag set to be checked on free time.  In current behavior, __PG_HWPOISON
    is not supposed to be set when the page is freed.  I think that there is
    no strong reason for this behavior, and it causes a problem hard to fix
    only in error handler side (because __PG_HWPOISON could be set at
    arbitrary timing.) So I suggest to change it.
    
    With this patchset, hwpoison stress testing in official mce-test
    testsuite (which previously failed) passes.
    
    This patch (of 5):
    
    In "just unpoisoned" path, we do put_page and then unlock_page, which is
    a wrong order and causes "freeing locked page" bug.  So let's fix it.
    Signed-off-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Dean Nelson <dnelson@redhat.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Hugh Dickins <hughd@google.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a09233f3
memory-failure.c 48.1 KB