diff options
Diffstat (limited to 'arch/powerpc/oprofile/common.c')
-rw-r--r-- | arch/powerpc/oprofile/common.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c index 63bbef3b63f1..b6d82390b6a6 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c | |||
@@ -69,7 +69,10 @@ static void op_powerpc_cpu_start(void *dummy) | |||
69 | 69 | ||
70 | static int op_powerpc_start(void) | 70 | static int op_powerpc_start(void) |
71 | { | 71 | { |
72 | on_each_cpu(op_powerpc_cpu_start, NULL, 0, 1); | 72 | if (model->global_start) |
73 | model->global_start(ctr); | ||
74 | if (model->start) | ||
75 | on_each_cpu(op_powerpc_cpu_start, NULL, 0, 1); | ||
73 | return 0; | 76 | return 0; |
74 | } | 77 | } |
75 | 78 | ||
@@ -80,7 +83,10 @@ static inline void op_powerpc_cpu_stop(void *dummy) | |||
80 | 83 | ||
81 | static void op_powerpc_stop(void) | 84 | static void op_powerpc_stop(void) |
82 | { | 85 | { |
83 | on_each_cpu(op_powerpc_cpu_stop, NULL, 0, 1); | 86 | if (model->stop) |
87 | on_each_cpu(op_powerpc_cpu_stop, NULL, 0, 1); | ||
88 | if (model->global_stop) | ||
89 | model->global_stop(); | ||
84 | } | 90 | } |
85 | 91 | ||
86 | static int op_powerpc_create_files(struct super_block *sb, struct dentry *root) | 92 | static int op_powerpc_create_files(struct super_block *sb, struct dentry *root) |
@@ -141,6 +147,11 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) | |||
141 | 147 | ||
142 | switch (cur_cpu_spec->oprofile_type) { | 148 | switch (cur_cpu_spec->oprofile_type) { |
143 | #ifdef CONFIG_PPC64 | 149 | #ifdef CONFIG_PPC64 |
150 | #ifdef CONFIG_PPC_CELL_NATIVE | ||
151 | case PPC_OPROFILE_CELL: | ||
152 | model = &op_model_cell; | ||
153 | break; | ||
154 | #endif | ||
144 | case PPC_OPROFILE_RS64: | 155 | case PPC_OPROFILE_RS64: |
145 | model = &op_model_rs64; | 156 | model = &op_model_rs64; |
146 | break; | 157 | break; |