linux-hardened/arch/xtensa
Max Filippov 87962c4db7 xtensa: flush TLB entries for pages of non-current mm correctly
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 <jcmvbkbc@gmail.com>
Signed-off-by: Chris Zankel <chris@zankel.net>
2013-06-05 10:14:19 -07:00
..
boot xtensa: fix redboot load address 2013-05-09 01:07:12 -07:00
configs xtensa: remove explicit selection of GENERIC_GPIO 2013-03-20 22:48:15 +09:00
include xtensa: fix TLB multihit exceptions 2013-05-20 11:09:13 -07:00
kernel xtensa: fix fast_store_prohibited _PAGE_WRITABLE_BIT test 2013-05-20 11:48:23 -07:00
lib xtensa: clean up files to make them code-style compliant 2012-12-18 21:10:25 -08:00
mm xtensa: flush TLB entries for pages of non-current mm correctly 2013-06-05 10:14:19 -07:00
oprofile xtensa: fix oprofile building as module 2013-05-09 01:07:09 -07:00
platforms Xtensa patchset for v3.10-rc1 2013-05-09 14:38:16 -07:00
variants xtensa: Add config files for Diamond 233L - Rev C processor variant 2013-02-23 19:12:52 -08:00
Kconfig Xtensa patchset for v3.10-rc1 2013-05-09 14:38:16 -07:00
Kconfig.debug xtensa: add s32c1i sanity check 2012-12-18 21:10:22 -08:00
Makefile xtensa: add support for oprofile 2013-02-23 19:22:54 -08:00