arm64: dts: rockchip: rk3368-p9: add ramp-delay for syr82x dcdc
[firefly-linux-kernel-4.4.55.git] / mm / balloon_compaction.c
index d3116be5a00fa51646b5a0b45683a138a4ed3f7c..300117f1a08f35c27c531d55ed0a08a1a9b81e50 100644 (file)
@@ -61,6 +61,7 @@ struct page *balloon_page_dequeue(struct balloon_dev_info *b_dev_info)
        bool dequeued_page;
 
        dequeued_page = false;
+       spin_lock_irqsave(&b_dev_info->pages_lock, flags);
        list_for_each_entry_safe(page, tmp, &b_dev_info->pages, lru) {
                /*
                 * Block others from accessing the 'page' while we get around
@@ -75,15 +76,14 @@ struct page *balloon_page_dequeue(struct balloon_dev_info *b_dev_info)
                                continue;
                        }
 #endif
-                       spin_lock_irqsave(&b_dev_info->pages_lock, flags);
                        balloon_page_delete(page);
                        __count_vm_event(BALLOON_DEFLATE);
-                       spin_unlock_irqrestore(&b_dev_info->pages_lock, flags);
                        unlock_page(page);
                        dequeued_page = true;
                        break;
                }
        }
+       spin_unlock_irqrestore(&b_dev_info->pages_lock, flags);
 
        if (!dequeued_page) {
                /*