Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 123043
b: refs/heads/master
c: df3b861
h: refs/heads/master
i:
  123041: 9e83c53
  123039: 0d184fe
v: v3
  • Loading branch information
Kumar Gala authored and Paul Mackerras committed Dec 3, 2008
1 parent 553569f commit a197e31
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f4f3a1261ad70988ad45614ebc87e553143a332b
refs/heads/master: df3b8611554e389e703fa753540289874fa5126c
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/include/asm/highmem.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ static inline void *kmap_atomic_prot(struct page *page, enum km_type type, pgpro
BUG_ON(!pte_none(*(kmap_pte-idx)));
#endif
__set_pte_at(&init_mm, vaddr, kmap_pte-idx, mk_pte(page, prot));
flush_tlb_page(NULL, vaddr);
local_flush_tlb_page(vaddr);

return (void*) vaddr;
}
Expand Down Expand Up @@ -113,7 +113,7 @@ static inline void kunmap_atomic(void *kvaddr, enum km_type type)
* this pte without first remap it
*/
pte_clear(&init_mm, vaddr, kmap_pte-idx);
flush_tlb_page(NULL, vaddr);
local_flush_tlb_page(vaddr);
#endif
pagefault_enable();
}
Expand Down
14 changes: 14 additions & 0 deletions trunk/arch/powerpc/include/asm/tlbflush.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*
* - flush_tlb_mm(mm) flushes the specified mm context TLB's
* - flush_tlb_page(vma, vmaddr) flushes one page
* - local_flush_tlb_page(vmaddr) flushes one page on the local processor
* - flush_tlb_page_nohash(vma, vmaddr) flushes one page if SW loaded TLB
* - flush_tlb_range(vma, start, end) flushes a range of pages
* - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
Expand Down Expand Up @@ -44,6 +45,11 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
_tlbil_pid(mm->context.id);
}

static inline void local_flush_tlb_page(unsigned long vmaddr)
{
_tlbil_va(vmaddr, 0);
}

static inline void flush_tlb_page(struct vm_area_struct *vma,
unsigned long vmaddr)
{
Expand Down Expand Up @@ -81,6 +87,10 @@ extern void flush_tlb_page_nohash(struct vm_area_struct *vma, unsigned long addr
extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end);
extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
static inline void local_flush_tlb_page(unsigned long vmaddr)
{
flush_tlb_page(NULL, vmaddr);
}

#else
/*
Expand Down Expand Up @@ -138,6 +148,10 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
{
}

static inline void local_flush_tlb_page(unsigned long vmaddr)
{
}

static inline void flush_tlb_page(struct vm_area_struct *vma,
unsigned long vmaddr)
{
Expand Down

0 comments on commit a197e31

Please sign in to comment.