Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86

* ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86:
  x86: fix global_flush_tlb() bug
This commit is contained in:
Linus Torvalds 2007-10-19 11:57:05 -07:00
commit 26790656d7
1 changed files with 7 additions and 2 deletions

View File

@ -230,9 +230,14 @@ void global_flush_tlb(void)
struct page *pg, *next;
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);
up_read(&init_mm.mmap_sem);
up_write(&init_mm.mmap_sem);
flush_map(&l);