[POWERPC] Depend on ->initialized in calc_steal_time
authorMilton Miller <miltonm@bga.com>
Fri, 14 Dec 2007 04:52:19 +0000 (15:52 +1100)
committerPaul Mackerras <paulus@samba.org>
Thu, 20 Dec 2007 05:15:43 +0000 (16:15 +1100)
If CPU_FTR_PURR is not set, we will never set cpu_purr_data->initialized.
Checking via __get_cpu_var on 64 bit avoids one dependent load compared
to cpu_has_feature in the not-present case, and is always required when
it is present.  The code is under CONFIG_VIRT_CPU_ACCOUNTING so 32 bit
will not be affected.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/time.c

index 5cf3940..398cd0c 100644 (file)
@@ -329,11 +329,9 @@ void calculate_steal_time(void)
        s64 stolen;
        struct cpu_purr_data *pme;
 
-       if (!cpu_has_feature(CPU_FTR_PURR))
-               return;
        pme = &__get_cpu_var(cpu_purr_data);
        if (!pme->initialized)
-               return;         /* this can happen in early boot */
+               return;         /* !CPU_FTR_PURR or early in early boot */
        tb = mftb();
        purr = mfspr(SPRN_PURR);
        stolen = (tb - pme->tb) - (purr - pme->purr);