mm: __tlb_remove_page() check the correct batch
__tlb_remove_page() switches to a new batch page, but still checks space in the old batch. This check always fails, and causes a forced tlb flush. Signed-off-by: Shaohua Li <shaohua.li@intel.com> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
215ddd6664
commit
0b43c3aab0
|
@ -305,6 +305,7 @@ int __tlb_remove_page(struct mmu_gather *tlb, struct page *page)
|
||||||
if (batch->nr == batch->max) {
|
if (batch->nr == batch->max) {
|
||||||
if (!tlb_next_batch(tlb))
|
if (!tlb_next_batch(tlb))
|
||||||
return 0;
|
return 0;
|
||||||
|
batch = tlb->active;
|
||||||
}
|
}
|
||||||
VM_BUG_ON(batch->nr > batch->max);
|
VM_BUG_ON(batch->nr > batch->max);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue