]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - mm/memory-failure.c
KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler
[mirror_ubuntu-zesty-kernel.git] / mm / memory-failure.c
index 19e796d36a629147dd36217ecab34934300dc660..8c66042f0393bb782bdbb40a6354851b610aac40 100644 (file)
@@ -764,12 +764,11 @@ static int me_huge_page(struct page *p, unsigned long pfn)
  */
 
 #define dirty          (1UL << PG_dirty)
-#define sc             (1UL << PG_swapcache)
+#define sc             ((1UL << PG_swapcache) | (1UL << PG_swapbacked))
 #define unevict                (1UL << PG_unevictable)
 #define mlock          (1UL << PG_mlocked)
 #define writeback      (1UL << PG_writeback)
 #define lru            (1UL << PG_lru)
-#define swapbacked     (1UL << PG_swapbacked)
 #define head           (1UL << PG_head)
 #define slab           (1UL << PG_slab)
 #define reserved       (1UL << PG_reserved)
@@ -819,7 +818,6 @@ static struct page_state {
 #undef mlock
 #undef writeback
 #undef lru
-#undef swapbacked
 #undef head
 #undef slab
 #undef reserved
@@ -1587,12 +1585,8 @@ static int soft_offline_huge_page(struct page *page, int flags)
        if (ret) {
                pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
                        pfn, ret, page->flags);
-               /*
-                * We know that soft_offline_huge_page() tries to migrate
-                * only one hugepage pointed to by hpage, so we need not
-                * run through the pagelist here.
-                */
-               putback_active_hugepage(hpage);
+               if (!list_empty(&pagelist))
+                       putback_movable_pages(&pagelist);
                if (ret > 0)
                        ret = -EIO;
        } else {