path: root/arch/xtensa/mm/tlb.c
AgeCommit message (Collapse)AuthorFilesLines
2016-01-15mm: differentiate page_mapped() from page_mapcount() for compound pagesKirill A. Shutemov1-1/+1
Let's define page_mapped() to be true for compound pages if any sub-pages of the compound page is mapped (with PMD or PTE). On other hand page_mapcount() return mapcount for this particular small page. This will make cases like page_get_anon_vma() behave correctly once we allow huge pages to be mapped with PTE. Most users outside core-mm should use page_mapcount() instead of page_mapped(). Signed-off-by: Kirill A. Shutemov <> Tested-by: Sasha Levin <> Tested-by: Aneesh Kumar K.V <> Acked-by: Jerome Marchand <> Cc: Vlastimil Babka <> Cc: Andrea Arcangeli <> Cc: Hugh Dickins <> Cc: Dave Hansen <> Cc: Mel Gorman <> Cc: Rik van Riel <> Cc: Naoya Horiguchi <> Cc: Steve Capper <> Cc: Johannes Weiner <> Cc: Michal Hocko <> Cc: Christoph Lameter <> Cc: David Rientjes <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2014-04-06xtensa: optimize local_flush_tlb_kernel_rangeMax Filippov1-0/+15
Don't flush whole TLB if only a small kernel range is requested. Signed-off-by: Max Filippov <>
2014-01-14xtensa: add SMP supportMax Filippov1-15/+22
This is largely based on SMP code from the xtensa-2.6.29-smp tree by Piet Delaney, Marc Gauthier, Joe Taylor, Christian Zankel (and possibly other Tensilica folks). Signed-off-by: Max Filippov <> Signed-off-by: Chris Zankel <>
2013-07-08xtensa: check TLB sanity on return to userspaceMax Filippov1-0/+113
- check that user TLB mappings correspond to the current page table; - check that TLB mapping VPN is in the kernel/user address range in accordance with its ASID. Signed-off-by: Max Filippov <> Signed-off-by: Chris Zankel <>
2013-06-05xtensa: flush TLB entries for pages of non-current mm correctlyMax Filippov1-3/+4
Sometimes under high memory pressure one process gets a page of another process, which manifests itself with an invalid instruction exception. This happens because flush_tlb_page fails to clear TLB entries when called with vma that does not belong to current mm, because it does not set RASID appropriately. When page reclaiming mechanism swaps physical pages out replacing their PTEs with none or swap PTEs, it calls flush_tlb_page. Later physical page may be reused elsewhere, but the stale TLB mapping still refers to it, allowing process that owned the mapping to see the new state of that physical page. Put ASID of the mm that owns vma to the RASID to fix that issue. Also replace otherwise meaningless local_save_flags with local_irq_save. Signed-off-by: Max Filippov <> Signed-off-by: Chris Zankel <>
2012-12-18xtensa: clean up files to make them code-style compliantChris Zankel1-4/+3
Remove heading and trailing spaces, trim trailing lines, and wrap lines that are longer than 80 characters. Signed-off-by: Chris Zankel <>
2012-12-18xtensa: fix build warning for arch/xtensa/mm/tlb.cMax Filippov1-1/+1
Signed-off-by: Max Filippov <> Signed-off-by: Chris Zankel <>
2012-03-28Disintegrate asm/system.h for XtensaDavid Howells1-1/+0
Disintegrate asm/system.h for Xtensa. Signed-off-by: David Howells <> cc: Chris Zankel <>
2006-12-10[PATCH] xtensa: remove extra header filesChris Zankel1-423/+22
The Xtensa port contained many header files that were never needed. This rather lengthy patch removes all those files. Unfortunately, there were many dependencies that needed to be updated, so this patch touches quite a few source files. Signed-off-by: Chris Zankel <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2006-10-03fix file specification in commentsUwe Zeisberger1-1/+1
Many files include the filename at the beginning, serveral used a wrong one. Signed-off-by: Uwe Zeisberger <> Signed-off-by: Adrian Bunk <>
2005-06-24[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 5Chris Zankel1-0/+545
The attached patches provides part 5 of an architecture implementation for the Tensilica Xtensa CPU series. Signed-off-by: Chris Zankel <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>