References: https://bugs.freedesktop.org/show_bug.cgi?id=104009

Suggest-Cc: Kirill A. Shutemov <[email protected]>
Suggest-Cc: Vlastimil Babka <[email protected]>
Suggest-Cc: Jerome Marchand <[email protected]>
Suggest-Cc: Andrea Arcangeli <[email protected]>
Suggest-Cc: Hugh Dickins <[email protected]>
Suggest-Cc: Dave Hansen <[email protected]>
Suggest-Cc: Mel Gorman <[email protected]>
Suggest-Cc: Rik van Riel <[email protected]>
Suggest-Cc: Johannes Weiner <[email protected]>
Suggest-Cc: Michal Hocko <[email protected]>
Suggest-Cc: Christoph Lameter <[email protected]>
Suggest-Cc: David Rientjes <[email protected]>
Suggest-Cc: Andrew Morton <[email protected]>
---
 mm/huge_memory.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 2f2f5e774902..e555a90ad079 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2791,10 +2791,13 @@ static unsigned long deferred_split_scan(struct 
shrinker *shrink,
 
        list_for_each_safe(pos, next, &list) {
                page = list_entry((void *)pos, struct page, mapping);
-               lock_page(page);
+               if (!trylock_page(page))
+                       continue;
+
                /* split_huge_page() removes page from list on success */
                if (!split_huge_page(page))
                        split++;
+
                unlock_page(page);
                put_page(page);
        }
-- 
2.15.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to