]> git.baikalelectronics.ru Git - kernel.git/commit
x86/asm/memcpy_mcsafe: Add write-protection-fault handling
authorDan Williams <dan.j.williams@intel.com>
Fri, 4 May 2018 00:06:26 +0000 (17:06 -0700)
committerIngo Molnar <mingo@kernel.org>
Tue, 15 May 2018 06:32:42 +0000 (08:32 +0200)
commit64d85587d9e10f0c8398b7ae7c084b0a80d105ce
treeb3ec091a965a9a0674c005e6d5b0df429c5c70a3
parent6bab7188a8a5dda3e5c3e909dbf7d4171ec9c0d0
x86/asm/memcpy_mcsafe: Add write-protection-fault handling

In preparation for using memcpy_mcsafe() to handle user copies it needs
to be to handle write-protection faults while writing user pages. Add
MMU-fault handlers alongside the machine-check exception handlers.

Note that the machine check fault exception handling makes assumptions
about source buffer alignment and poison alignment. In the write fault
case, given the destination buffer is arbitrarily aligned, it needs a
separate / additional fault handling approach. The mcsafe_handle_tail()
helper is reused. The @limit argument is set to @len since there is no
safety concern about retriggering an MMU fault, and this simplifies the
assembly.

Co-developed-by: Tony Luck <tony.luck@intel.com>
Reported-by: Mika Penttilä <mika.penttila@nextfour.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: hch@lst.de
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-nvdimm@lists.01.org
Link: http://lkml.kernel.org/r/152539238635.31796.14056325365122961778.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/include/asm/uaccess_64.h
arch/x86/lib/memcpy_64.S
arch/x86/lib/usercopy_64.c