forked from luck/tmp_suning_uos_patched
2c739ced58
Patch series "add fault injection to user memory access", v3. The goal of this series is to improve testing of fault-tolerance in usages of user memory access functions, by adding support for fault injection. syzkaller/syzbot are using the existing fault injection modes and will use this particular feature also. The first patch adds failure injection capability for usercopy functions. The second changes usercopy functions to use this new failure capability (copy_from_user, ...). The third patch adds get/put/clear_user failures to x86. This patch (of 3): Add a failure injection capability to improve testing of fault-tolerance in usages of user memory access functions. Add CONFIG_FAULT_INJECTION_USERCOPY to enable faults in usercopy functions. The should_fail_usercopy function is to be called by these functions (copy_from_user, get_user, ...) in order to fail or not. Signed-off-by: Albert van der Linde <alinde@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Akinobu Mita <akinobu.mita@gmail.com> Reviewed-by: Alexander Potapenko <glider@google.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Andrey Konovalov <andreyknvl@google.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Marco Elver <elver@google.com> Cc: Christoph Hellwig <hch@lst.de> Link: http://lkml.kernel.org/r/20200831171733.955393-1-alinde@google.com Link: http://lkml.kernel.org/r/20200831171733.955393-2-alinde@google.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
23 lines
496 B
C
23 lines
496 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __LINUX_FAULT_INJECT_USERCOPY_H__
|
|
#define __LINUX_FAULT_INJECT_USERCOPY_H__
|
|
|
|
/*
|
|
* This header provides a wrapper for injecting failures to user space memory
|
|
* access functions.
|
|
*/
|
|
|
|
#include <linux/types.h>
|
|
|
|
#ifdef CONFIG_FAULT_INJECTION_USERCOPY
|
|
|
|
bool should_fail_usercopy(void);
|
|
|
|
#else
|
|
|
|
static inline bool should_fail_usercopy(void) { return false; }
|
|
|
|
#endif /* CONFIG_FAULT_INJECTION_USERCOPY */
|
|
|
|
#endif /* __LINUX_FAULT_INJECT_USERCOPY_H__ */
|