Andy Lutomirski 1745cbc5d0 mm: Add vm_insert_pfn_prot()
The x86 vvar vma contains pages with differing cacheability
flags.  x86 currently implements this by manually inserting all
the ptes using (io_)remap_pfn_range when the vma is set up.

x86 wants to move to using .fault with VM_FAULT_NOPAGE to set up
the mappings as needed.  The correct API to use to insert a pfn
in .fault is vm_insert_pfn(), but vm_insert_pfn() can't override the
vma's cache mode, and the HPET page in particular needs to be
uncached despite the fact that the rest of the VMA is cached.

Add vm_insert_pfn_prot() to support varying cacheability within
the same non-COW VMA in a more sane manner.

x86 could alternatively use multiple VMAs, but that's messy,
would break CRIU, and would create unnecessary VMAs that would
waste memory.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/d2938d1eb37be7a5e4f86182db646551f11e45aa.1451446564.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-01-12 11:59:34 +01:00
..
2015-12-06 12:46:31 +01:00
2015-11-05 19:34:48 -08:00
2015-11-06 17:50:42 -08:00
2015-06-24 17:49:45 -07:00
2015-11-05 19:34:48 -08:00
2015-11-06 17:50:42 -08:00
2015-09-11 16:42:39 -07:00
2016-01-12 11:59:34 +01:00
2015-09-08 15:35:28 -07:00
2015-11-05 19:34:48 -08:00
2015-02-11 17:06:02 -08:00
2015-11-05 19:34:48 -08:00
2015-12-06 12:46:31 +01:00
2015-09-10 13:29:01 -07:00
2015-09-10 13:29:01 -07:00
2015-11-05 19:34:48 -08:00
2015-11-06 17:50:42 -08:00
2015-11-05 19:34:48 -08:00