Files
android_kernel_xiaomi_sm8450/arch/x86/kernel
Peter Oberparleiter f386c61fe1 gcov: exclude code operating in userspace from profiling
Fix for this issue on x86_64:

rostedt@goodmis.org wrote:
> On bootup of the latest kernel my init segfaults. Debugging it,
> I found  that vread_tsc (a vsyscall) increments some strange
> kernel memory:
>
> 0000000000000000 <vread_tsc>:
>    0:   55                      push   %rbp
>    1:   48 ff 05 00 00 00 00    incq   0(%rip)
>                         # 8 <vread_tsc+0x8>
>                         4: R_X86_64_PC32        .bss+0x3c
>    8:   48 89 e5                mov    %rsp,%rbp
>    b:   66 66 90                xchg   %ax,%ax
>    e:   48 ff 05 00 00 00 00    incq   0(%rip)
>                         # 15 <vread_tsc+0x15>
>                         11: R_X86_64_PC32       .bss+0x44
>   15:   66 66 90                xchg   %ax,%ax
>   18:   48 ff 05 00 00 00 00    incq   0(%rip)
>                         # 1f <vread_tsc+0x1f>
>                         1b: R_X86_64_PC32       .bss+0x4c
>   1f:   0f 31                   rdtsc
>
>
> Those "incq" is very bad to happen in vsyscall memory, since
> userspace can not modify it. You need to make something prevent
> profiling of vsyscall  memory (like I do with ftrace).

Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Reported-by: Steven Rostedt <rostedt@goodmis.org>
Tested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-07-06 13:57:03 -07:00
..
2009-06-16 10:19:16 +02:00
2009-03-15 07:03:15 +01:00
2009-06-15 15:20:40 +02:00
2009-03-13 11:57:22 +01:00
2009-04-07 13:36:36 +02:00
2009-06-18 18:40:18 -04:00
2009-06-17 21:35:10 -07:00
2009-06-17 21:35:10 -07:00
2008-12-12 11:08:42 +01:00
2009-02-10 13:13:23 +01:00
2009-02-23 00:08:11 +01:00
2009-06-16 19:47:28 -07:00
2009-03-21 16:57:04 +05:30
2009-02-09 12:16:05 +01:00
2009-06-11 23:31:52 +02:00
2009-06-11 23:31:52 +02:00
2009-03-21 16:55:45 +05:30
2009-01-02 17:46:24 +01:00
2009-02-23 00:08:11 +01:00
2009-01-20 17:14:28 +01:00
2009-06-15 12:40:03 +02:00
2009-06-07 12:22:15 +02:00
2009-03-21 16:56:37 +05:30
2009-06-11 23:31:52 +02:00
2009-06-11 23:31:52 +02:00
2008-10-22 22:55:23 -07:00
2009-02-23 00:08:11 +01:00
2009-03-21 16:55:24 +05:30
2009-02-17 17:52:44 +01:00