• Tony Luck's avatar
    x86/mm, x86/mce: Add memcpy_mcsafe() · 92b0729c
    Tony Luck authored
    Make use of the EXTABLE_FAULT exception table entries to write
    a kernel copy routine that doesn't crash the system if it
    encounters a machine check. Prime use case for this is to copy
    from large arrays of non-volatile memory used as storage.
    
    We have to use an unrolled copy loop for now because current
    hardware implementations treat a machine check in "rep mov"
    as fatal. When that is fixed we can simplify.
    
    Return type is a "bool". True means that we copied OK, false means
    that it didn't.
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    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 <a.p.zijlstra@chello.nl>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@gmail.com>
    Link: http://lkml.kernel.org/r/a44e1055efc2d2a9473307b22c91caa437aa3f8b.1456439214.git.tony.luck@intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    92b0729c
memcpy_64.S 6.01 KB