diff options
| author | Robert Richter <robert.richter@amd.com> | 2011-10-14 09:46:10 -0400 |
|---|---|---|
| committer | Robert Richter <robert.richter@amd.com> | 2011-11-04 10:04:35 -0400 |
| commit | 75c43a20b220f885c39ffa7cdbbb1191e257a9a9 (patch) | |
| tree | a623847b0235f618438b03785b4860a80e0d4b1b /drivers/oprofile | |
| parent | 159a80b2142df709416ab369113de7d511c48331 (diff) | |
oprofile: Remove exit function for timer mode
Remove exit functions by moving init/exit code to oprofile's setup/
shutdown functions. Doing so the oprofile module exit code will be
easier and less error-prone.
Signed-off-by: Robert Richter <robert.richter@amd.com>
Diffstat (limited to 'drivers/oprofile')
| -rw-r--r-- | drivers/oprofile/oprof.c | 8 | ||||
| -rw-r--r-- | drivers/oprofile/timer_int.c | 30 |
2 files changed, 17 insertions, 21 deletions
diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c index f8c752e408a6..f7cd06967aed 100644 --- a/drivers/oprofile/oprof.c +++ b/drivers/oprofile/oprof.c | |||
| @@ -262,9 +262,7 @@ static int __init oprofile_init(void) | |||
| 262 | return 0; | 262 | return 0; |
| 263 | 263 | ||
| 264 | /* failed */ | 264 | /* failed */ |
| 265 | if (timer_mode) | 265 | if (!timer_mode) |
| 266 | oprofile_timer_exit(); | ||
| 267 | else | ||
| 268 | oprofile_arch_exit(); | 266 | oprofile_arch_exit(); |
| 269 | 267 | ||
| 270 | return err; | 268 | return err; |
| @@ -274,9 +272,7 @@ static int __init oprofile_init(void) | |||
| 274 | static void __exit oprofile_exit(void) | 272 | static void __exit oprofile_exit(void) |
| 275 | { | 273 | { |
| 276 | oprofilefs_unregister(); | 274 | oprofilefs_unregister(); |
| 277 | if (timer_mode) | 275 | if (!timer_mode) |
| 278 | oprofile_timer_exit(); | ||
| 279 | else | ||
| 280 | oprofile_arch_exit(); | 276 | oprofile_arch_exit(); |
| 281 | } | 277 | } |
| 282 | 278 | ||
diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c index 878fba126582..93404f72dfa8 100644 --- a/drivers/oprofile/timer_int.c +++ b/drivers/oprofile/timer_int.c | |||
| @@ -97,24 +97,24 @@ static struct notifier_block __refdata oprofile_cpu_notifier = { | |||
| 97 | .notifier_call = oprofile_cpu_notify, | 97 | .notifier_call = oprofile_cpu_notify, |
| 98 | }; | 98 | }; |
| 99 | 99 | ||
| 100 | int oprofile_timer_init(struct oprofile_operations *ops) | 100 | static int oprofile_hrtimer_setup(void) |
| 101 | { | 101 | { |
| 102 | int rc; | 102 | return register_hotcpu_notifier(&oprofile_cpu_notifier); |
| 103 | |||
| 104 | rc = register_hotcpu_notifier(&oprofile_cpu_notifier); | ||
| 105 | if (rc) | ||
| 106 | return rc; | ||
| 107 | ops->create_files = NULL; | ||
| 108 | ops->setup = NULL; | ||
| 109 | ops->shutdown = NULL; | ||
| 110 | ops->start = oprofile_hrtimer_start; | ||
| 111 | ops->stop = oprofile_hrtimer_stop; | ||
| 112 | ops->cpu_type = "timer"; | ||
| 113 | printk(KERN_INFO "oprofile: using timer interrupt.\n"); | ||
| 114 | return 0; | ||
| 115 | } | 103 | } |
| 116 | 104 | ||
| 117 | void oprofile_timer_exit(void) | 105 | static void oprofile_hrtimer_shutdown(void) |
| 118 | { | 106 | { |
| 119 | unregister_hotcpu_notifier(&oprofile_cpu_notifier); | 107 | unregister_hotcpu_notifier(&oprofile_cpu_notifier); |
| 120 | } | 108 | } |
| 109 | |||
| 110 | int oprofile_timer_init(struct oprofile_operations *ops) | ||
| 111 | { | ||
| 112 | ops->create_files = NULL; | ||
| 113 | ops->setup = oprofile_hrtimer_setup; | ||
| 114 | ops->shutdown = oprofile_hrtimer_shutdown; | ||
| 115 | ops->start = oprofile_hrtimer_start; | ||
| 116 | ops->stop = oprofile_hrtimer_stop; | ||
| 117 | ops->cpu_type = "timer"; | ||
| 118 | printk(KERN_INFO "oprofile: using timer interrupt.\n"); | ||
| 119 | return 0; | ||
| 120 | } | ||
