/* * Similar to copy_user_handle_tail, probe for the write fault point, or * source exception point.
*/
__visible notrace unsignedlong
copy_mc_fragile_handle_tail(char *to, char *from, unsigned len)
{ for (; len; --len, to++, from++) if (copy_mc_fragile(to, from, 1)) break; return len;
} #else /* * No point in doing careful copying, or consulting a static key when * there is no #MC handler in the CONFIG_X86_MCE=n case.
*/ void enable_copy_mc_fragile(void)
{
} #define copy_mc_fragile_enabled (0) #endif
/** * copy_mc_to_kernel - memory copy that handles source exceptions * * @dst: destination address * @src: source address * @len: number of bytes to copy * * Call into the 'fragile' version on systems that benefit from avoiding * corner case poison consumption scenarios, For example, accessing * poison across 2 cachelines with a single instruction. Almost all * other uses case can use copy_mc_enhanced_fast_string() for a fast * recoverable copy, or fallback to plain memcpy. * * Return 0 for success, or number of bytes not copied if there was an * exception.
*/ unsignedlong __must_check copy_mc_to_kernel(void *dst, constvoid *src, unsigned len)
{ unsignedlong ret;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.