x86: fix tsc unification buglet with ftrace and stackprotector
authorIngo Molnar <mingo@elte.hu>
Fri, 11 Jul 2008 13:09:15 +0000 (15:09 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 11 Jul 2008 13:09:15 +0000 (15:09 +0200)
commit3d0decc4f49e8645cd6369b02ed076bebd3d61ad
treee5777e66ce903f19a06fb429516b2960f261b2a1
parentf361a450bf1ad14e2b003217dbf3958638631265
x86: fix tsc unification buglet with ftrace and stackprotector

Yinghai Lu reported crashes on 64-bit x86:

 BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
 IP: [<ffffffff80253b17>] hrtick_start_fair+0x89/0x173
 [...]

And with a long session of debugging and a lot of difficulty, tracked it down
to this commit:

 --------------->
 8fbbc4b45ce3e4c0eeb15004c79c72b6896a79c2 is first bad commit
 commit 8fbbc4b45ce3e4c0eeb15004c79c72b6896a79c2
 Author: Alok Kataria <akataria@vmware.com>
 Date:   Tue Jul 1 11:43:34 2008 -0700

     x86: merge tsc_init and clocksource code
 <--------------

The problem is that the TSC unification missed these Makefile rules
in arch/x86/kernel/Makefile:

  # Do not profile debug and lowlevel utilities
  CFLAGS_REMOVE_tsc_64.o = -pg
  CFLAGS_REMOVE_tsc_32.o = -pg
  ...
  CFLAGS_tsc_64.o         := $(nostackp)
  ...

which rules make sure that various instrumentation and debugging
facilities are disabled for code that might end up in a VDSO - such as
the TSC code.

Reported-and-bisected-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Conflicts:

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/Makefile