Commit 26790656 authored by Linus Torvalds's avatar Linus Torvalds
parents f768f9d3 9a24d04a
...@@ -230,9 +230,14 @@ void global_flush_tlb(void) ...@@ -230,9 +230,14 @@ void global_flush_tlb(void)
struct page *pg, *next; struct page *pg, *next;
struct list_head l; struct list_head l;
down_read(&init_mm.mmap_sem); /*
* Write-protect the semaphore, to exclude two contexts
* doing a list_replace_init() call in parallel and to
* exclude new additions to the deferred_pages list:
*/
down_write(&init_mm.mmap_sem);
list_replace_init(&deferred_pages, &l); list_replace_init(&deferred_pages, &l);
up_read(&init_mm.mmap_sem); up_write(&init_mm.mmap_sem);
flush_map(&l); flush_map(&l);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment