Patch "mm: don't dereference struct page fields of invalid pages" has been added to the 3.18-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mm: don't dereference struct page fields of invalid pages
to the 3.18-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-don-t-dereference-struct-page-fields-of-invalid-pages.patch
and it can be found in the queue-3.18 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 foo@baz Wed Aug 9 12:42:27 PDT 2017
From: Ard Biesheuvel <[email protected]>
Date: Tue, 10 Jan 2017 16:58:00 -0800
Subject: mm: don't dereference struct page fields of invalid pages
From: Ard Biesheuvel <[email protected]>
[ Upstream commit f073bdc51771f5a5c7a8d1191bfc3ae371d44de7 ]
The VM_BUG_ON() check in move_freepages() checks whether the node id of a page matches the node id of its zone. However, it does this before having checked whether the struct page pointer refers to a valid struct page to begin with. This is guaranteed in most cases, but may not be the case if CONFIG_HOLES_IN_ZONE=y.
So reorder the VM_BUG_ON() with the pfn_valid_within() check.
--- mm/page_alloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
mm/page_alloc.c +3 -3
@@ -1029,14 +1029,14 @@ int move_freepages(struct zone *zone,#endif for (page = start_page; page <= end_page;) { -/* Make sure we are not inadvertently changing nodes */ -VM_BUG_ON_PAGE (page_to_nid (page) !=zone_to_nid (zone), page); -if (!pfn_valid_within (page_to_pfn (page))) { page++;continue ; } +/* Make sure we are not inadvertently changing nodes */ +VM_BUG_ON_PAGE (page_to_nid (page) !=zone_to_nid (zone), page); +if (!PageBuddy (page)) { page++;continue ;
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/mm-don-t-dereference-struct-page-fields-of-invalid-pages.patch