]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/kernel/smp-tbsync.c
Merge branch 'for-jeff' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux...
[linux-2.6-omap-h63xx.git] / arch / powerpc / kernel / smp-tbsync.c
index f19e2e0e61e7b6635e69efc1b91458cf4805ebac..bc892e69b4f732cd11c46a5ccb79be51eaf34fae 100644 (file)
@@ -45,8 +45,9 @@ void __devinit smp_generic_take_timebase(void)
 {
        int cmd;
        u64 tb;
+       unsigned long flags;
 
-       local_irq_disable();
+       local_irq_save(flags);
        while (!running)
                barrier();
        rmb();
@@ -70,14 +71,14 @@ void __devinit smp_generic_take_timebase(void)
                        set_tb(tb >> 32, tb & 0xfffffffful);
                enter_contest(tbsync->mark, -1);
        }
-       local_irq_enable();
+       local_irq_restore(flags);
 }
 
 static int __devinit start_contest(int cmd, long offset, int num)
 {
        int i, score=0;
        u64 tb;
-       long mark;
+       u64 mark;
 
        tbsync->cmd = cmd;
 
@@ -115,8 +116,7 @@ void __devinit smp_generic_give_timebase(void)
        printk("Synchronizing timebase\n");
 
        /* if this fails then this kernel won't work anyway... */
-       tbsync = kmalloc( sizeof(*tbsync), GFP_KERNEL );
-       memset( tbsync, 0, sizeof(*tbsync) );
+       tbsync = kzalloc( sizeof(*tbsync), GFP_KERNEL );
        mb();
        running = 1;