Commit:     a8fa9ba623122a51efe6c9ef8fe7412c91582d48
Parent:     70dfa3f8756afa106a468e81649bf0c1d7dbf99e
Author:     Kevin Hilman <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 8 01:48:16 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Thu Nov 8 10:07:14 2007 +0000

    [ARM] 4644/2: fix flush_kern_tlb_range() in module space
    For kernel addresses between TASK_SIZE and PAGE_OFFSET,
    flush_tlb_kern_range() does not work as would be expected.
    The TLB invalidate works with a matching ASID, or on entries marked as
    global.  The set_pte_at() macro marks addresses >= PAGE_OFFSET as
    global, but not addresses from TASK_SIZE to PAGE_OFFSET, which are
    also kernel addresses.
    The result is that the entries in this range are not actually
    invalidated by flush_tlb_kern_range().
    This patch instead marks addresses >= TASK_SIZE as global.
    Signed-off-by: Satoru Fujii <[EMAIL PROTECTED]>
    Signed-off-by: Kevin Hilman <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
 include/asm-arm/pgtable.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h
index d2e8171..5e01824 100644
--- a/include/asm-arm/pgtable.h
+++ b/include/asm-arm/pgtable.h
@@ -249,7 +249,7 @@ extern struct page *empty_zero_page;
 #define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext)
 #define set_pte_at(mm,addr,ptep,pteval) do { \
-       set_pte_ext(ptep, pteval, (addr) >= PAGE_OFFSET ? 0 : PTE_EXT_NG); \
+       set_pte_ext(ptep, pteval, (addr) >= TASK_SIZE ? 0 : PTE_EXT_NG); \
  } while (0)
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to