git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git]
/
kernel
/
perf_event.c
diff --git
a/kernel/perf_event.c
b/kernel/perf_event.c
index
a962b19
..
84522c7
100644
(file)
--- a/
kernel/perf_event.c
+++ b/
kernel/perf_event.c
@@
-2233,9
+2233,6
@@
find_get_context(struct pmu *pmu, struct task_struct *task, int cpu)
if (perf_paranoid_cpu() && !capable(CAP_SYS_ADMIN))
return ERR_PTR(-EACCES);
if (perf_paranoid_cpu() && !capable(CAP_SYS_ADMIN))
return ERR_PTR(-EACCES);
- if (cpu < 0 || cpu >= nr_cpumask_bits)
- return ERR_PTR(-EINVAL);
-
/*
* We could be clever and allow to attach a event to an
* offline CPU and activate it when the CPU comes up, but
/*
* We could be clever and allow to attach a event to an
* offline CPU and activate it when the CPU comes up, but
@@
-4664,7
+4661,7
@@
int perf_swevent_get_recursion_context(void)
}
EXPORT_SYMBOL_GPL(perf_swevent_get_recursion_context);
}
EXPORT_SYMBOL_GPL(perf_swevent_get_recursion_context);
-
void inline
perf_swevent_put_recursion_context(int rctx)
+
inline void
perf_swevent_put_recursion_context(int rctx)
{
struct swevent_htable *swhash = &__get_cpu_var(swevent_htable);
{
struct swevent_htable *swhash = &__get_cpu_var(swevent_htable);
@@
-5541,6
+5538,11
@@
perf_event_alloc(struct perf_event_attr *attr, int cpu,
struct hw_perf_event *hwc;
long err;
struct hw_perf_event *hwc;
long err;
+ if ((unsigned)cpu >= nr_cpu_ids) {
+ if (!task || cpu != -1)
+ return ERR_PTR(-EINVAL);
+ }
+
event = kzalloc(sizeof(*event), GFP_KERNEL);
if (!event)
return ERR_PTR(-ENOMEM);
event = kzalloc(sizeof(*event), GFP_KERNEL);
if (!event)
return ERR_PTR(-ENOMEM);
@@
-5589,7
+5591,7
@@
perf_event_alloc(struct perf_event_attr *attr, int cpu,
if (!overflow_handler && parent_event)
overflow_handler = parent_event->overflow_handler;
if (!overflow_handler && parent_event)
overflow_handler = parent_event->overflow_handler;
-
+
event->overflow_handler = overflow_handler;
if (attr->disabled)
event->overflow_handler = overflow_handler;
if (attr->disabled)