summaryrefslogtreecommitdiff
path: root/include/linux/moduleloader.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-04-20 17:44:44 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-04-20 17:44:44 -0700
commit57a3170ca0edefccb0d425216be7237852c894d3 (patch)
tree74af059346181f43755ec9d35f52e0bea6f2dd6d /include/linux/moduleloader.h
parent5ae4516e3fdfce99a33f937ff5be7e9f556144b3 (diff)
[PATCH] i386 hugetlb tlb correction
From: William Lee Irwin III <wli@holomorphy.com> i386 does hardware interpretation of pagetables, so pte_clear() can't be used on present ptes, as it sets the upper half of the hugepte prior to setting the lower half (which includes the valid bit). i.e. there is a window where having a hugepage mapped at 56GB and doing pte_clear() in unmap_hugepage_range() allows other threads of the process to see a hugepage at 0 in place of the original hugepage at 56GB. This patch corrects the situation by using ptep_get_and_clear(), which clears the lower word of the pte prior to clearing the upper word. There is another nasty where huge_page_release() needs to wait for TLB flushes before returning the hugepages to the free pool, analogous to the issue tlb_remove_page() and tlb_flush_mm() repair.
Diffstat (limited to 'include/linux/moduleloader.h')
0 files changed, 0 insertions, 0 deletions