diff options
Diffstat (limited to 'arch/powerpc/kernel/smp-tbsync.c')
| -rw-r--r-- | arch/powerpc/kernel/smp-tbsync.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/smp-tbsync.c b/arch/powerpc/kernel/smp-tbsync.c index f19e2e0e61e7..de59c6c31a5b 100644 --- a/arch/powerpc/kernel/smp-tbsync.c +++ b/arch/powerpc/kernel/smp-tbsync.c | |||
| @@ -45,8 +45,9 @@ void __devinit smp_generic_take_timebase(void) | |||
| 45 | { | 45 | { |
| 46 | int cmd; | 46 | int cmd; |
| 47 | u64 tb; | 47 | u64 tb; |
| 48 | unsigned long flags; | ||
| 48 | 49 | ||
| 49 | local_irq_disable(); | 50 | local_irq_save(flags); |
| 50 | while (!running) | 51 | while (!running) |
| 51 | barrier(); | 52 | barrier(); |
| 52 | rmb(); | 53 | rmb(); |
| @@ -70,7 +71,7 @@ void __devinit smp_generic_take_timebase(void) | |||
| 70 | set_tb(tb >> 32, tb & 0xfffffffful); | 71 | set_tb(tb >> 32, tb & 0xfffffffful); |
| 71 | enter_contest(tbsync->mark, -1); | 72 | enter_contest(tbsync->mark, -1); |
| 72 | } | 73 | } |
| 73 | local_irq_enable(); | 74 | local_irq_restore(flags); |
| 74 | } | 75 | } |
| 75 | 76 | ||
| 76 | static int __devinit start_contest(int cmd, long offset, int num) | 77 | static int __devinit start_contest(int cmd, long offset, int num) |
