| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| Date: Mon, 22 May 2017 12:04:18 +0300 |
| Subject: perf/core: Fix error handling in perf_event_alloc() |
| |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| |
| |
| [ Upstream commit 36cc2b9222b5106de34085c4dd8635ac67ef5cba ] |
| |
| We don't set an error code here which means that perf_event_alloc() |
| returns ERR_PTR(0) (in other words NULL). The callers are not expecting |
| that and would Oops. |
| |
| Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> |
| Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> |
| Cc: Arnaldo Carvalho de Melo <acme@kernel.org> |
| Cc: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Stephane Eranian <eranian@google.com> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Vince Weaver <vincent.weaver@maine.edu> |
| Fixes: 375637bc5249 ("perf/core: Introduce address range filtering") |
| Link: http://lkml.kernel.org/r/20170522090418.hvs6icgpdo53wkn5@mwanda |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| kernel/events/core.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/kernel/events/core.c |
| +++ b/kernel/events/core.c |
| @@ -9289,8 +9289,10 @@ perf_event_alloc(struct perf_event_attr |
| event->addr_filters_offs = kcalloc(pmu->nr_addr_filters, |
| sizeof(unsigned long), |
| GFP_KERNEL); |
| - if (!event->addr_filters_offs) |
| + if (!event->addr_filters_offs) { |
| + err = -ENOMEM; |
| goto err_per_task; |
| + } |
| |
| /* force hw sync on the address filters */ |
| event->addr_filters_gen = 1; |