Re: [PATCH 0/3] stop OProfile calling arch_exit when arch_initfails

From: Robert Richter
Date: Tue Aug 31 2010 - 07:03:37 EST


On 29.08.10 14:51:58, Will Deacon wrote:
> These patches remove the oprofile_arch_exit call from oprofile_init,
> allowing architectures that perform memory allocation in their init
> functions to be simplified. This requires some changes to the ARM and
> x86 OProfile backends to ensure that their init functions clean up
> after themselves if they fail.
>
> This is required for Matt's combined OProfile/Perf driver which will
> be shared between all architectures.
>
> Patches taken against tip/master.
>
> Cc: Robert Richter <robert.richter@xxxxxxx>
> Cc: Matt Fleming <matt@xxxxxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxx>
>
> Will Deacon (3):
> oprofile: don't call arch exit code from init code on failure
> ARM: oprofile: fix and simplify init/exit functions
> x86: oprofile: fix oprofile_arch_init behaviour on failure
>
> arch/arm/oprofile/common.c | 47 +++++++++++++++++++++++--------------------
> arch/x86/oprofile/init.c | 26 ++++++++++++++----------
> drivers/oprofile/oprof.c | 11 +--------
> 3 files changed, 42 insertions(+), 42 deletions(-)

I have applied patch #1 and #2 to

git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile.git core

with some small modifications:

Patch #1: Commit message, x86 removed.
Patch #2: Order of freeing memory:

+out:
+ if (ret) {
+ for_each_possible_cpu(cpu)
+ kfree(perf_events[cpu]);
+ kfree(counter_config);
+ }
+

There is also the patch below on top of it.

Thanks Will,

-Robert

--