diff options
Diffstat (limited to 'arch/powerpc/kernel/mce.c')
-rw-r--r-- | arch/powerpc/kernel/mce.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c index a7fd4cb78b78..15c99b649b04 100644 --- a/arch/powerpc/kernel/mce.c +++ b/arch/powerpc/kernel/mce.c | |||
@@ -73,8 +73,8 @@ void save_mce_event(struct pt_regs *regs, long handled, | |||
73 | uint64_t nip, uint64_t addr) | 73 | uint64_t nip, uint64_t addr) |
74 | { | 74 | { |
75 | uint64_t srr1; | 75 | uint64_t srr1; |
76 | int index = __get_cpu_var(mce_nest_count)++; | 76 | int index = __this_cpu_inc_return(mce_nest_count); |
77 | struct machine_check_event *mce = &__get_cpu_var(mce_event[index]); | 77 | struct machine_check_event *mce = this_cpu_ptr(&mce_event[index]); |
78 | 78 | ||
79 | /* | 79 | /* |
80 | * Return if we don't have enough space to log mce event. | 80 | * Return if we don't have enough space to log mce event. |
@@ -143,7 +143,7 @@ void save_mce_event(struct pt_regs *regs, long handled, | |||
143 | */ | 143 | */ |
144 | int get_mce_event(struct machine_check_event *mce, bool release) | 144 | int get_mce_event(struct machine_check_event *mce, bool release) |
145 | { | 145 | { |
146 | int index = __get_cpu_var(mce_nest_count) - 1; | 146 | int index = __this_cpu_read(mce_nest_count) - 1; |
147 | struct machine_check_event *mc_evt; | 147 | struct machine_check_event *mc_evt; |
148 | int ret = 0; | 148 | int ret = 0; |
149 | 149 | ||
@@ -153,7 +153,7 @@ int get_mce_event(struct machine_check_event *mce, bool release) | |||
153 | 153 | ||
154 | /* Check if we have MCE info to process. */ | 154 | /* Check if we have MCE info to process. */ |
155 | if (index < MAX_MC_EVT) { | 155 | if (index < MAX_MC_EVT) { |
156 | mc_evt = &__get_cpu_var(mce_event[index]); | 156 | mc_evt = this_cpu_ptr(&mce_event[index]); |
157 | /* Copy the event structure and release the original */ | 157 | /* Copy the event structure and release the original */ |
158 | if (mce) | 158 | if (mce) |
159 | *mce = *mc_evt; | 159 | *mce = *mc_evt; |
@@ -163,7 +163,7 @@ int get_mce_event(struct machine_check_event *mce, bool release) | |||
163 | } | 163 | } |
164 | /* Decrement the count to free the slot. */ | 164 | /* Decrement the count to free the slot. */ |
165 | if (release) | 165 | if (release) |
166 | __get_cpu_var(mce_nest_count)--; | 166 | __this_cpu_dec(mce_nest_count); |
167 | 167 | ||
168 | return ret; | 168 | return ret; |
169 | } | 169 | } |
@@ -184,13 +184,13 @@ void machine_check_queue_event(void) | |||
184 | if (!get_mce_event(&evt, MCE_EVENT_RELEASE)) | 184 | if (!get_mce_event(&evt, MCE_EVENT_RELEASE)) |
185 | return; | 185 | return; |
186 | 186 | ||
187 | index = __get_cpu_var(mce_queue_count)++; | 187 | index = __this_cpu_inc_return(mce_queue_count); |
188 | /* If queue is full, just return for now. */ | 188 | /* If queue is full, just return for now. */ |
189 | if (index >= MAX_MC_EVT) { | 189 | if (index >= MAX_MC_EVT) { |
190 | __get_cpu_var(mce_queue_count)--; | 190 | __this_cpu_dec(mce_queue_count); |
191 | return; | 191 | return; |
192 | } | 192 | } |
193 | __get_cpu_var(mce_event_queue[index]) = evt; | 193 | memcpy(this_cpu_ptr(&mce_event_queue[index]), &evt, sizeof(evt)); |
194 | 194 | ||
195 | /* Queue irq work to process this event later. */ | 195 | /* Queue irq work to process this event later. */ |
196 | irq_work_queue(&mce_event_process_work); | 196 | irq_work_queue(&mce_event_process_work); |
@@ -208,11 +208,11 @@ static void machine_check_process_queued_event(struct irq_work *work) | |||
208 | * For now just print it to console. | 208 | * For now just print it to console. |
209 | * TODO: log this error event to FSP or nvram. | 209 | * TODO: log this error event to FSP or nvram. |
210 | */ | 210 | */ |
211 | while (__get_cpu_var(mce_queue_count) > 0) { | 211 | while (__this_cpu_read(mce_queue_count) > 0) { |
212 | index = __get_cpu_var(mce_queue_count) - 1; | 212 | index = __this_cpu_read(mce_queue_count) - 1; |
213 | machine_check_print_event_info( | 213 | machine_check_print_event_info( |
214 | &__get_cpu_var(mce_event_queue[index])); | 214 | this_cpu_ptr(&mce_event_queue[index])); |
215 | __get_cpu_var(mce_queue_count)--; | 215 | __this_cpu_dec(mce_queue_count); |
216 | } | 216 | } |
217 | } | 217 | } |
218 | 218 | ||