Commit 646d87b481dab4ba8301716600dfd276605b0ab0

Authored by Linus Torvalds
1 parent 287d97ac03

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

... ... @@ -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;