]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - mm/memory-failure.c
hwpoison: fix hugetlbfs/thp precheck in hwpoison_user_mappings()
[karo-tx-linux.git] / mm / memory-failure.c
index 7211a73ba14d16155c1514c078b1e3c9d25e0b22..3db261fdee4c56a0f582e658389c8f23a8a65ea4 100644 (file)
@@ -895,7 +895,13 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn,
        struct page *hpage = *hpagep;
        struct page *ppage;
 
-       if (PageReserved(p) || PageSlab(p) || !PageLRU(p))
+       /*
+        * Here we are interested only in user-mapped pages, so skip any
+        * other types of pages.
+        */
+       if (PageReserved(p) || PageSlab(p))
+               return SWAP_SUCCESS;
+       if (!(PageLRU(hpage) || PageHuge(p)))
                return SWAP_SUCCESS;
 
        /*