diff options
Diffstat (limited to 'arch/powerpc/include/asm/smp.h')
-rw-r--r-- | arch/powerpc/include/asm/smp.h | 42 |
1 files changed, 31 insertions, 11 deletions
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index 4d28e1e4521b..1866cec4f967 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h | |||
@@ -56,9 +56,16 @@ extern int smp_hw_index[]; | |||
56 | 56 | ||
57 | #define raw_smp_processor_id() (current_thread_info()->cpu) | 57 | #define raw_smp_processor_id() (current_thread_info()->cpu) |
58 | #define hard_smp_processor_id() (smp_hw_index[smp_processor_id()]) | 58 | #define hard_smp_processor_id() (smp_hw_index[smp_processor_id()]) |
59 | #define get_hard_smp_processor_id(cpu) (smp_hw_index[(cpu)]) | 59 | |
60 | #define set_hard_smp_processor_id(cpu, phys)\ | 60 | static inline int get_hard_smp_processor_id(int cpu) |
61 | (smp_hw_index[(cpu)] = (phys)) | 61 | { |
62 | return smp_hw_index[cpu]; | ||
63 | } | ||
64 | |||
65 | static inline void set_hard_smp_processor_id(int cpu, int phys) | ||
66 | { | ||
67 | smp_hw_index[cpu] = phys; | ||
68 | } | ||
62 | #endif | 69 | #endif |
63 | 70 | ||
64 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); | 71 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); |
@@ -86,15 +93,21 @@ extern void __cpu_die(unsigned int cpu); | |||
86 | 93 | ||
87 | #else | 94 | #else |
88 | /* for UP */ | 95 | /* for UP */ |
89 | #define hard_smp_processor_id() 0 | 96 | #define hard_smp_processor_id() get_hard_smp_processor_id(0) |
90 | #define smp_setup_cpu_maps() | 97 | #define smp_setup_cpu_maps() |
91 | 98 | ||
92 | #endif /* CONFIG_SMP */ | 99 | #endif /* CONFIG_SMP */ |
93 | 100 | ||
94 | #ifdef CONFIG_PPC64 | 101 | #ifdef CONFIG_PPC64 |
95 | #define get_hard_smp_processor_id(CPU) (paca[(CPU)].hw_cpu_id) | 102 | static inline int get_hard_smp_processor_id(int cpu) |
96 | #define set_hard_smp_processor_id(CPU, VAL) \ | 103 | { |
97 | do { (paca[(CPU)].hw_cpu_id = (VAL)); } while (0) | 104 | return paca[cpu].hw_cpu_id; |
105 | } | ||
106 | |||
107 | static inline void set_hard_smp_processor_id(int cpu, int phys) | ||
108 | { | ||
109 | paca[cpu].hw_cpu_id = phys; | ||
110 | } | ||
98 | 111 | ||
99 | extern void smp_release_cpus(void); | 112 | extern void smp_release_cpus(void); |
100 | 113 | ||
@@ -102,10 +115,17 @@ extern void smp_release_cpus(void); | |||
102 | /* 32-bit */ | 115 | /* 32-bit */ |
103 | #ifndef CONFIG_SMP | 116 | #ifndef CONFIG_SMP |
104 | extern int boot_cpuid_phys; | 117 | extern int boot_cpuid_phys; |
105 | #define get_hard_smp_processor_id(cpu) boot_cpuid_phys | 118 | static inline int get_hard_smp_processor_id(int cpu) |
106 | #define set_hard_smp_processor_id(cpu, phys) | 119 | { |
107 | #endif | 120 | return boot_cpuid_phys; |
108 | #endif | 121 | } |
122 | |||
123 | static inline void set_hard_smp_processor_id(int cpu, int phys) | ||
124 | { | ||
125 | boot_cpuid_phys = phys; | ||
126 | } | ||
127 | #endif /* !CONFIG_SMP */ | ||
128 | #endif /* !CONFIG_PPC64 */ | ||
109 | 129 | ||
110 | extern int smt_enabled_at_boot; | 130 | extern int smt_enabled_at_boot; |
111 | 131 | ||