diff options
Diffstat (limited to 'arch/powerpc/kernel/time.c')
-rw-r--r-- | arch/powerpc/kernel/time.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 567dd7c3ac2a..f81c81b92f0e 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -259,7 +259,6 @@ void accumulate_stolen_time(void) | |||
259 | u64 sst, ust; | 259 | u64 sst, ust; |
260 | 260 | ||
261 | u8 save_soft_enabled = local_paca->soft_enabled; | 261 | u8 save_soft_enabled = local_paca->soft_enabled; |
262 | u8 save_hard_enabled = local_paca->hard_enabled; | ||
263 | 262 | ||
264 | /* We are called early in the exception entry, before | 263 | /* We are called early in the exception entry, before |
265 | * soft/hard_enabled are sync'ed to the expected state | 264 | * soft/hard_enabled are sync'ed to the expected state |
@@ -268,7 +267,6 @@ void accumulate_stolen_time(void) | |||
268 | * complain | 267 | * complain |
269 | */ | 268 | */ |
270 | local_paca->soft_enabled = 0; | 269 | local_paca->soft_enabled = 0; |
271 | local_paca->hard_enabled = 0; | ||
272 | 270 | ||
273 | sst = scan_dispatch_log(local_paca->starttime_user); | 271 | sst = scan_dispatch_log(local_paca->starttime_user); |
274 | ust = scan_dispatch_log(local_paca->starttime); | 272 | ust = scan_dispatch_log(local_paca->starttime); |
@@ -277,7 +275,6 @@ void accumulate_stolen_time(void) | |||
277 | local_paca->stolen_time += ust + sst; | 275 | local_paca->stolen_time += ust + sst; |
278 | 276 | ||
279 | local_paca->soft_enabled = save_soft_enabled; | 277 | local_paca->soft_enabled = save_soft_enabled; |
280 | local_paca->hard_enabled = save_hard_enabled; | ||
281 | } | 278 | } |
282 | 279 | ||
283 | static inline u64 calculate_stolen_time(u64 stop_tb) | 280 | static inline u64 calculate_stolen_time(u64 stop_tb) |
@@ -580,6 +577,11 @@ void timer_interrupt(struct pt_regs * regs) | |||
580 | if (!cpu_online(smp_processor_id())) | 577 | if (!cpu_online(smp_processor_id())) |
581 | return; | 578 | return; |
582 | 579 | ||
580 | /* Conditionally hard-enable interrupts now that the DEC has been | ||
581 | * bumped to its maximum value | ||
582 | */ | ||
583 | may_hard_irq_enable(); | ||
584 | |||
583 | trace_timer_interrupt_entry(regs); | 585 | trace_timer_interrupt_entry(regs); |
584 | 586 | ||
585 | __get_cpu_var(irq_stat).timer_irqs++; | 587 | __get_cpu_var(irq_stat).timer_irqs++; |