Skip to content

Commit

Permalink
perf: Fix hlist related build error
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Frederic Weisbecker authored and Ingo Molnar committed Apr 14, 2010
1 parent df8290b commit 95476b6
Showing 1 changed file with 30 additions and 30 deletions.
60 changes: 30 additions & 30 deletions kernel/perf_event.c
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit 95476b6

Please sign in to comment.