Message ID | 1358183933-29160-1-git-send-email-dinggnu@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jan 14, 2013 at 05:18:53PM +0000, Cong Ding wrote: > the pointer cpu_pmu is used without null pointer dereference check, and is > checked after the using of it, so we move the null pointer check to before the > first use. The NULL pointer check is not necessary. cpu_pmu_init() is called after cpu_pmu has already been dereferenced by its caller: cpu_pmu = pmu; cpu_pmu->plat_device = pdev; cpu_pmu_init(cpu_pmu); So... > - /* Ensure the PMU has sane values out of reset. */ > - if (cpu_pmu && cpu_pmu->reset) Just replace this with: if (cpu_pmu->reset)
On Mon, Jan 14, 2013 at 05:23:46PM +0000, Russell King - ARM Linux wrote: > On Mon, Jan 14, 2013 at 05:18:53PM +0000, Cong Ding wrote: > > the pointer cpu_pmu is used without null pointer dereference check, and is > > checked after the using of it, so we move the null pointer check to before the > > first use. > > The NULL pointer check is not necessary. cpu_pmu_init() is called > after cpu_pmu has already been dereferenced by its caller: > > cpu_pmu = pmu; > cpu_pmu->plat_device = pdev; > cpu_pmu_init(cpu_pmu); > > So... > > > - /* Ensure the PMU has sane values out of reset. */ > > - if (cpu_pmu && cpu_pmu->reset) > > Just replace this with: > if (cpu_pmu->reset) Thanks Russell, I will send version 2. - cong
On Mon, Jan 14, 2013 at 05:38:26PM +0000, Cong Ding wrote: > On Mon, Jan 14, 2013 at 05:23:46PM +0000, Russell King - ARM Linux wrote: > > On Mon, Jan 14, 2013 at 05:18:53PM +0000, Cong Ding wrote: > > > the pointer cpu_pmu is used without null pointer dereference check, and is > > > checked after the using of it, so we move the null pointer check to before the > > > first use. > > > > The NULL pointer check is not necessary. cpu_pmu_init() is called > > after cpu_pmu has already been dereferenced by its caller: > > > > cpu_pmu = pmu; > > cpu_pmu->plat_device = pdev; > > cpu_pmu_init(cpu_pmu); > > > > So... > > > > > - /* Ensure the PMU has sane values out of reset. */ > > > - if (cpu_pmu && cpu_pmu->reset) > > > > Just replace this with: > > if (cpu_pmu->reset) > Thanks Russell, I will send version 2. No need, I've taken this into my perf/updates branch. Thanks, Will
diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index efa5295..16aa979 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c @@ -142,13 +142,15 @@ static void cpu_pmu_init(struct arm_pmu *cpu_pmu) raw_spin_lock_init(&events->pmu_lock); } - cpu_pmu->get_hw_events = cpu_pmu_get_cpu_events; - cpu_pmu->request_irq = cpu_pmu_request_irq; - cpu_pmu->free_irq = cpu_pmu_free_irq; + if (cpu_pmu) { + cpu_pmu->get_hw_events = cpu_pmu_get_cpu_events; + cpu_pmu->request_irq = cpu_pmu_request_irq; + cpu_pmu->free_irq = cpu_pmu_free_irq; - /* Ensure the PMU has sane values out of reset. */ - if (cpu_pmu && cpu_pmu->reset) - on_each_cpu(cpu_pmu->reset, cpu_pmu, 1); + /* Ensure the PMU has sane values out of reset. */ + if (cpu_pmu->reset) + on_each_cpu(cpu_pmu->reset, cpu_pmu, 1); + } } /*
the pointer cpu_pmu is used without null pointer dereference check, and is checked after the using of it, so we move the null pointer check to before the first use. Signed-off-by: Cong Ding <dinggnu@gmail.com> --- arch/arm/kernel/perf_event_cpu.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)