diff options
| author | Frederic Weisbecker <fweisbec@gmail.com> | 2010-04-14 23:42:18 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-04-15 01:34:46 +0200 | 
| commit | 95476b64ab11d528de2557366ec584977c215b9e (patch) | |
| tree | a01e04ca53b5ffd93f3149f6e9d18ab049268cd8 | |
| parent | df8290bf7ea6b3051e2f315579a6e829309ec1ed (diff) | |
| download | olio-linux-3.10-95476b64ab11d528de2557366ec584977c215b9e.tar.xz olio-linux-3.10-95476b64ab11d528de2557366ec584977c215b9e.zip  | |
perf: Fix hlist related build error
hlist helpers need to be available for all software events, not
only trace events.
Pull them out outside the ifdef CONFIG_EVENT_TRACING section.
Fixes:
	kernel/perf_event.c:4573: error: implicit declaration of function 'swevent_hlist_put'
	kernel/perf_event.c:4614: error: implicit declaration of function 'swevent_hlist_get'
	kernel/perf_event.c:5534: error: implicit declaration of function 'swevent_hlist_release
Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1271281338-23491-1-git-send-regression-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | kernel/perf_event.c | 60 | 
1 files changed, 30 insertions, 30 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 095101d685b..07b7a435bf0 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c @@ -4313,36 +4313,6 @@ static const struct pmu perf_ops_task_clock = {  	.read		= task_clock_perf_event_read,  }; -#ifdef CONFIG_EVENT_TRACING - -void perf_tp_event(int event_id, u64 addr, u64 count, void *record, -		   int entry_size, struct pt_regs *regs) -{ -	struct perf_sample_data data; -	struct perf_raw_record raw = { -		.size = entry_size, -		.data = record, -	}; - -	perf_sample_data_init(&data, addr); -	data.raw = &raw; - -	/* Trace events already protected against recursion */ -	do_perf_sw_event(PERF_TYPE_TRACEPOINT, event_id, count, 1, -			 &data, regs); -} -EXPORT_SYMBOL_GPL(perf_tp_event); - -static int perf_tp_event_match(struct perf_event *event, -				struct perf_sample_data *data) -{ -	void *record = data->raw->data; - -	if (likely(!event->filter) || filter_match_preds(event->filter, record)) -		return 1; -	return 0; -} -  static void swevent_hlist_release_rcu(struct rcu_head *rcu_head)  {  	struct swevent_hlist *hlist; @@ -4442,6 +4412,36 @@ static int swevent_hlist_get(struct perf_event *event)  	return err;  } +#ifdef CONFIG_EVENT_TRACING + +void perf_tp_event(int event_id, u64 addr, u64 count, void *record, +		   int entry_size, struct pt_regs *regs) +{ +	struct perf_sample_data data; +	struct perf_raw_record raw = { +		.size = entry_size, +		.data = record, +	}; + +	perf_sample_data_init(&data, addr); +	data.raw = &raw; + +	/* Trace events already protected against recursion */ +	do_perf_sw_event(PERF_TYPE_TRACEPOINT, event_id, count, 1, +			 &data, regs); +} +EXPORT_SYMBOL_GPL(perf_tp_event); + +static int perf_tp_event_match(struct perf_event *event, +				struct perf_sample_data *data) +{ +	void *record = data->raw->data; + +	if (likely(!event->filter) || filter_match_preds(event->filter, record)) +		return 1; +	return 0; +} +  static void tp_perf_event_destroy(struct perf_event *event)  {  	perf_trace_disable(event->attr.config);  |