tracing: Do not use signed enums with unsigned long long in fgragh output
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 6 Nov 2013 19:50:06 +0000 (14:50 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 6 Nov 2013 20:26:56 +0000 (15:26 -0500)
commit6fc84ea70eae478099c866ace022ecfdef998032
tree705f3bffb3513b96de7c9563371676451318700e
parent042b10d83d05174e50ee861ee3aca55fd6204324
tracing: Do not use signed enums with unsigned long long in fgragh output

The duration field of print_graph_duration() can also be used
to do the space filling by passing an enum in it:

  DURATION_FILL_FULL
  DURATION_FILL_START
  DURATION_FILL_END

The problem is that these are enums and defined as negative,
but the duration field is unsigned long long. Most archs are
fine with this but blackfin fails to compile because of it:

kernel/built-in.o: In function `print_graph_duration':
kernel/trace/trace_functions_graph.c:782: undefined reference to `__ucmpdi2'

Overloading a unsigned long long with an signed enum is just
bad in principle. We can accomplish the same thing by using
part of the flags field instead.

Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.h
kernel/trace/trace_functions_graph.c