Messages in this thread | | | From | Vineet Gupta <> | Subject | Re: arc_pmu not initialized in the arc/kernel/perf_event.c? | Date | Mon, 15 Jun 2015 05:50:59 +0000 |
| |
-CC Mischa (left Synopsys a while back) +CC Alexey (does most fo perf work these days)
Hi Max,
On Sunday 14 June 2015 04:39 AM, Max Filippov wrote: > Mischa, Vineet, > > Looking at ARC PMU driver I've got an impression that its static arc_pmu > is left uninitialized, which possibly leads to Oops once registered > callbacks are invoked. I don't have neither ARC toolchain nor hardware to > test it, so I may be missing something. Below is the fix for it. > > Thanks. > -- Max > > ---8<--- > From: Max Filippov <jcmvbkbc@gmail.com> > Subject: [PATCH] arc: fix use of uninitialized arc_pmu > > static arc_pmu in the arch/arc/kernel/perf_event.c is not initialized as > it's shadowed by a local variable of the same name in the > arc_pmu_device_probe. > > Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Thx for the fix. Indeed looks like a big SNAFU on my side. The reason we didn't run into this despite pretty regular use of perf is that we have been using a bunch of out of tree patches (recently floated for upstream) which removed the offending code for other reasons. Neverthless I will add this to for-next and CC stable as well.
Thx, -Vineet
> --- > arch/arc/kernel/perf_event.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arc/kernel/perf_event.c b/arch/arc/kernel/perf_event.c > index fd2ec50..57b58f5 100644 > --- a/arch/arc/kernel/perf_event.c > +++ b/arch/arc/kernel/perf_event.c > @@ -266,7 +266,6 @@ static int arc_pmu_add(struct perf_event *event, int flags) > > static int arc_pmu_device_probe(struct platform_device *pdev) > { > - struct arc_pmu *arc_pmu; > struct arc_reg_pct_build pct_bcr; > struct arc_reg_cc_build cc_bcr; > int i, j, ret;
| |