Skip to contentSkip to conversation

Patch "mm: khugepaged: fix radix tree node leak in shmem collapse error path" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Jan 9, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

mm: khugepaged: fix radix tree node leak in shmem collapse error path

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
mm-khugepaged-fix-radix-tree-node-leak-in-shmem-collapse-error-path.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 59749e6ce53735d8b696763742225f126e94603f Mon Sep 17 00:00:00 2001

From: Johannes Weiner <[email protected]>
Date: Mon, 12 Dec 2016 16:43:35 -0800
Subject: mm: khugepaged: fix radix tree node leak in shmem collapse error path

From: Johannes Weiner <[email protected]>

commit 59749e6ce53735d8b696763742225f126e94603f upstream.

The radix tree counts valid entries in each tree node. Entries stored in the tree cannot be removed by simpling storing NULL in the slot or the internal counters will be off and the node never gets freed again.

When collapsing a shmem page fails, restore the holes that were filled with radix_tree_insert() with a proper radix tree deletion.

---
 mm/khugepaged.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
mm/khugepaged.c +4 -2
@@ -1525,9 +1525,11 @@ tree_unlocked:
 			if (!page || iter.index < page->index) {
 				if (!nr_none)
 					break;
-				/* Put holes back where they were */
-				radix_tree_replace_slot(slot, NULL);
 				nr_none--;
+				/* Put holes back where they were */
+				radix_tree_delete(&mapping->page_tree,
+						  iter.index);
+				slot = radix_tree_iter_next(&iter);
 				continue;
 			}
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/mm-khugepaged-fix-radix-tree-node-leak-in-shmem-collapse-error-path.patch queue-4.9/mm-khugepaged-close-use-after-free-race-during-shmem-collapsing.patch