Files
msm-5.15/include/linux
Thomas Gleixner 0372007f5a context_tracking: Ensure that the critical path cannot be instrumented
context tracking lacks a few protection mechanisms against instrumentation:

 - While the core functions are marked NOKPROBE they lack protection
   against function tracing which is required as the function entry/exit
   points can be utilized by BPF.

 - static functions invoked from the protected functions need to be marked
   as well as they can be instrumented otherwise.

 - using plain inline allows the compiler to emit traceable and probable
   functions.

Fix this by marking the functions noinstr and converting the plain inlines
to __always_inline.

The NOKPROBE_SYMBOL() annotations are removed as the .noinstr.text section
is already excluded from being probed.

Cures the following objtool warnings:

 vmlinux.o: warning: objtool: enter_from_user_mode()+0x34: call to __context_tracking_exit() leaves .noinstr.text section
 vmlinux.o: warning: objtool: prepare_exit_to_usermode()+0x29: call to __context_tracking_enter() leaves .noinstr.text section
 vmlinux.o: warning: objtool: syscall_return_slowpath()+0x29: call to __context_tracking_enter() leaves .noinstr.text section
 vmlinux.o: warning: objtool: do_syscall_64()+0x7f: call to __context_tracking_enter() leaves .noinstr.text section
 vmlinux.o: warning: objtool: do_int80_syscall_32()+0x3d: call to __context_tracking_enter() leaves .noinstr.text section
 vmlinux.o: warning: objtool: do_fast_syscall_32()+0x9c: call to __context_tracking_enter() leaves .noinstr.text section

and generates new ones...

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200505134340.811520478@linutronix.de
2020-06-11 15:14:36 +02:00
..
2020-05-17 21:10:28 -07:00
2020-05-09 16:15:13 -06:00
2020-05-24 20:48:11 +02:00
2020-05-19 09:40:29 -06:00
2020-04-10 15:36:21 -07:00
2020-01-23 00:35:50 +01:00
2020-05-13 08:44:35 -07:00
2020-03-09 11:12:19 +01:00
2020-02-17 13:37:00 +01:00
2020-05-04 11:19:58 -07:00
2020-01-18 09:19:18 -05:00
2020-03-06 11:06:15 +01:00
2020-06-09 09:39:13 -07:00
2020-05-28 07:59:45 -07:00
2020-04-30 12:54:01 -07:00
2020-05-18 10:30:21 +01:00
2020-06-02 15:15:46 +01:00
2020-05-08 18:18:11 +01:00
2020-05-08 00:12:42 +02:00
2020-05-28 10:31:09 +02:00
2020-03-06 11:56:59 +01:00
2020-04-07 10:43:38 -07:00
2020-03-21 16:00:24 +01:00
2020-05-09 13:57:12 +02:00
2020-04-02 09:35:27 -07:00
2020-05-15 13:51:28 -07:00
2020-05-09 13:57:12 +02:00
2020-03-21 16:00:24 +01:00
2020-06-04 19:06:20 -07:00
2020-02-21 10:31:18 +01:00
2020-03-21 16:00:24 +01:00
2020-05-17 14:10:07 -06:00
2020-05-14 16:44:24 +02:00
2020-05-14 16:44:25 +02:00
2020-04-28 11:05:44 +02:00
2020-05-28 11:11:45 -07:00
2020-05-04 09:16:37 -07:00
2020-02-21 11:22:15 -08:00
2020-05-29 14:52:53 +02:00
2020-03-23 17:01:47 +01:00
2020-04-01 12:06:26 -04:00
2020-04-17 06:05:30 -04:00