[MIPS] Oprofile: fix on non-VSMP / non-SMTC SMP configurations.
Ralf Baechle [Mon, 23 Oct 2006 12:22:06 +0000 (13:22 +0100)]
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

arch/mips/oprofile/op_model_mipsxx.c

index dd0aec9..ebce715 100644 (file)
 #define M_COUNTER_OVERFLOW             (1UL      << 31)
 
 #ifdef CONFIG_MIPS_MT_SMP
-#define WHAT   (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id()))
+#define WHAT           (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id()))
+#define vpe_id()       smp_processor_id()
 #else
-#define WHAT   0
+#define WHAT           0
+#define vpe_id()       smp_processor_id()
 #endif
 
 #define __define_perf_accessors(r, n, np)                              \
                                                                        \
 static inline unsigned int r_c0_ ## r ## n(void)                       \
 {                                                                      \
-       unsigned int cpu = smp_processor_id();                          \
+       unsigned int cpu = vpe_id();                                    \
                                                                        \
        switch (cpu) {                                                  \
        case 0:                                                         \
@@ -55,7 +57,7 @@ static inline unsigned int r_c0_ ## r ## n(void)                      \
                                                                        \
 static inline void w_c0_ ## r ## n(unsigned int value)                 \
 {                                                                      \
-       unsigned int cpu = smp_processor_id();                          \
+       unsigned int cpu = vpe_id();                                    \
                                                                        \
        switch (cpu) {                                                  \
        case 0:                                                         \