[PATCH] arm: oprofile: fix linkage issue
Robert Richter
robert.richter at amd.com
Thu Dec 22 09:54:12 EST 2011
On 22.12.11 15:21:40, Robert Richter wrote:
> On 22.12.11 15:36:56, Vladimir Zapolskiy wrote:
> > This change fixes a linking problem, which happens if oprofile is selected to
> > be compiled as built-in:
> >
> > `oprofile_arch_exit' referenced in section `.init.text' of
> > arch/arm/oprofile/built-in.o: defined in discarded section
> > `.exit.text' of arch/arm/oprofile/built-in.o
> >
> > The problem is appeared after commit 87121ca504, which introduced
> > oprofile_arch_exit() calls from __init function. Note that the aforementioned
> > commit has been backported to stable branches, and the problem is known to be
> > reproduced at least with 3.0.13 and 3.1.5 kernels.
>
> I will fix it upstream, afterwards this goes into stable due to the
> stable tag.
>
> Right, commit 87121ca504 went into stable kernels 3.0 and 3.1, need to
> fix them too:
>
> CC: stable at kernel.org # 3.0+
>
> Please fix also arch/sh with this patch:
>
> $ git grep exit.*oprofile_arch_exit arch/*/oprofile drivers/oprofile/
> arch/arm/oprofile/common.c:void __exit oprofile_arch_exit(void)
> arch/sh/oprofile/common.c:void __exit oprofile_arch_exit(void)
> arch/sh/oprofile/common.c:void __exit oprofile_arch_exit(void) {}
>
> Thanks,
To make things easier: if you aggree I will apply your patch with the
changes below in addition. No need to respin a new patch version.
Thanks,
-Robert
diff --git a/arch/sh/oprofile/common.c b/arch/sh/oprofile/common.c
index b4c2d2b..e4dd5d5 100644
--- a/arch/sh/oprofile/common.c
+++ b/arch/sh/oprofile/common.c
@@ -49,7 +49,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
return oprofile_perf_init(ops);
}
-void __exit oprofile_arch_exit(void)
+void oprofile_arch_exit(void)
{
oprofile_perf_exit();
kfree(sh_pmu_op_name);
@@ -60,5 +60,5 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
ops->backtrace = sh_backtrace;
return -ENODEV;
}
-void __exit oprofile_arch_exit(void) {}
+void oprofile_arch_exit(void) {}
#endif /* CONFIG_HW_PERF_EVENTS */
--
Advanced Micro Devices, Inc.
Operating System Research Center
More information about the linux-arm-kernel
mailing list