summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnand Gadiyar <gadiyar@ti.com>2010-10-14 19:31:42 +0400
committerRobert Richter <robert.richter@amd.com>2010-10-15 14:45:44 +0400
commitb3b3a9b63f2deacfd59137e3781211d21a568ca9 (patch)
tree673b271644137b60eeabbd8ad0ba133735d84c3f
parent277dd984172b063497d2ff6cfa7f2355f13a292d (diff)
downloadlinux-b3b3a9b63f2deacfd59137e3781211d21a568ca9.tar.xz
oprofile: fix linker errors
Commit e9677b3ce (oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure) caused oprofile_perf_exit to be called in the cleanup path of oprofile_perf_init. The __exit tag for oprofile_perf_exit should therefore be dropped. The same has to be done for exit_driverfs as well, as this function is called from oprofile_perf_exit. Else, we get the following two linker errors. LD .tmp_vmlinux1 `oprofile_perf_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 make: *** [.tmp_vmlinux1] Error 1 LD .tmp_vmlinux1 `exit_driverfs' referenced in section `.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Anand Gadiyar <gadiyar@ti.com> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Robert Richter <robert.richter@amd.com>
-rw-r--r--drivers/oprofile/oprofile_perf.c2
-rw-r--r--include/linux/oprofile.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/oprofile/oprofile_perf.c b/drivers/oprofile/oprofile_perf.c
index e707a72a3799..36ec67e3d91d 100644
--- a/drivers/oprofile/oprofile_perf.c
+++ b/drivers/oprofile/oprofile_perf.c
@@ -236,7 +236,7 @@ static int __init init_driverfs(void)
return ret;
}
-static void __exit exit_driverfs(void)
+static void exit_driverfs(void)
{
platform_device_unregister(oprofile_pdev);
platform_driver_unregister(&oprofile_driver);
diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
index d67a8330b41e..32fb81212fd1 100644
--- a/include/linux/oprofile.h
+++ b/include/linux/oprofile.h
@@ -188,7 +188,7 @@ int oprofile_write_commit(struct op_entry *entry);
#ifdef CONFIG_PERF_EVENTS
int __init oprofile_perf_init(struct oprofile_operations *ops);
-void __exit oprofile_perf_exit(void);
+void oprofile_perf_exit(void);
char *op_name_from_perf_id(void);
#endif /* CONFIG_PERF_EVENTS */