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:
commit
26790656d7
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user