提交 26790656 编写于 作者: L Linus Torvalds
...@@ -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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册