mirror of https://gitee.com/openkylin/linux.git
perf trace scripting: Fix extern struct definitions
Both python_scripting_ops and perl_scripting_ops have two global definitions. One in trace-event-scripting.c and one in their respective scripting-engine modules. The issue is that depending on the linker order one definition or the other is chosen. One is uninitialized (bss), while the other is initialized. If the uninitialized version is chosen, then perf does not function properly. This patch fixes this by adding the extern prefix to the definitions in trace-event-scripting.c. Cc: David S. Miller <davem@davemloft.net> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Robert Richter <robert.richter@amd.com> LKML-Reference: <4c97e41a.078fd80a.7a8b.3cc9@mx.google.com> Signed-off-by: Stephane Eranian <eranian@google.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c569d3326b
commit
0f940cb7d9
|
@ -97,7 +97,7 @@ void setup_python_scripting(void)
|
||||||
register_python_scripting(&python_scripting_unsupported_ops);
|
register_python_scripting(&python_scripting_unsupported_ops);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
struct scripting_ops python_scripting_ops;
|
extern struct scripting_ops python_scripting_ops;
|
||||||
|
|
||||||
void setup_python_scripting(void)
|
void setup_python_scripting(void)
|
||||||
{
|
{
|
||||||
|
@ -158,7 +158,7 @@ void setup_perl_scripting(void)
|
||||||
register_perl_scripting(&perl_scripting_unsupported_ops);
|
register_perl_scripting(&perl_scripting_unsupported_ops);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
struct scripting_ops perl_scripting_ops;
|
extern struct scripting_ops perl_scripting_ops;
|
||||||
|
|
||||||
void setup_perl_scripting(void)
|
void setup_perl_scripting(void)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue