Merge branch 'next-seccomp' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux-2.6-microblaze.git] / drivers / cpuidle / cpuidle-pseries.c
index 9e56bc4..74c2479 100644 (file)
@@ -247,7 +247,13 @@ static int pseries_idle_probe(void)
                return -ENODEV;
 
        if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
-               if (lppaca_shared_proc(get_lppaca())) {
+               /*
+                * Use local_paca instead of get_lppaca() since
+                * preemption is not disabled, and it is not required in
+                * fact, since lppaca_ptr does not need to be the value
+                * associated to the current CPU, it can be from any CPU.
+                */
+               if (lppaca_shared_proc(local_paca->lppaca_ptr)) {
                        cpuidle_state_table = shared_states;
                        max_idle_state = ARRAY_SIZE(shared_states);
                } else {