Commit 646d87b481dab4ba8301716600dfd276605b0ab0
1 parent
287d97ac03
Exists in
master
and in
20 other branches
anon_vma: clone the anon_vma chain in the right order
We want to walk the chain in reverse order when cloning it, so that the order of the result chain will be the same as the order in the source chain. When we add entries to the chain, they go at the head of the chain, so we want to add the source head last. Reviewed-by: Rik van Riel <riel@redhat.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Tested-by: Borislav Petkov <bp@alien8.de> [ "No, it still oopses" ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff
mm/rmap.c
... | ... | @@ -182,7 +182,7 @@ |
182 | 182 | { |
183 | 183 | struct anon_vma_chain *avc, *pavc; |
184 | 184 | |
185 | - list_for_each_entry(pavc, &src->anon_vma_chain, same_vma) { | |
185 | + list_for_each_entry_reverse(pavc, &src->anon_vma_chain, same_vma) { | |
186 | 186 | avc = anon_vma_chain_alloc(); |
187 | 187 | if (!avc) |
188 | 188 | goto enomem_failure; |