Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus"
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 19 Apr 2012 18:35:10 +0000 (19:35 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 19 Apr 2012 18:35:10 +0000 (19:35 +0100)
This reverts commit 9f85550347f51c79a917b2aec04c90691c11e20a.

Peter Zijlstra says:
| Argh, how did that ever make it upstream, please drop.
|
| Russell, please make that go away upstream.
|
| Like I said, this is both completely the wrong way to solve, and you're
| so not paying attention, see:
|
|   5fbd036b552f633abb394a319f7c62a5c86a9cd7
|   2baab4e90495ebc9826c93f79d74d6e60a828d24
|   e3831edd59edf57ca11fc289f08961b20baf5146
|
| What's even worse:
|
| git describe --contains 9f85550347f51c79a917b2aec04c90691c11e20a --match "v*"
| v3.4-rc3~1^2~3
|
| that nonsense got merged long after those other commits.

Linus Walleij says:
| My bad, was because the initial patch was submitted march 9th before
| these fixes were merged:
| http://marc.info/?l=linux-arm-kernel&m=133159655513844&w=2
|
| It was pending for a while in Russell's patch tracker and I
| rebased it to -rc2 without paying enough attention to recent
| related scheduler fixes ... lesson learned.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/smp_twd.c

index 5b150af..fef42b2 100644 (file)
@@ -118,14 +118,10 @@ static int twd_cpufreq_transition(struct notifier_block *nb,
         * The twd clock events must be reprogrammed to account for the new
         * frequency.  The timer is local to a cpu, so cross-call to the
         * changing cpu.
-        *
-        * Only wait for it to finish, if the cpu is active to avoid
-        * deadlock when cpu1 is spinning on while(!cpu_active(cpu1)) during
-        * booting of that cpu.
         */
        if (state == CPUFREQ_POSTCHANGE || state == CPUFREQ_RESUMECHANGE)
                smp_call_function_single(freqs->cpu, twd_update_frequency,
-                                        NULL, cpu_active(freqs->cpu));
+                       NULL, 1);
 
        return NOTIFY_OK;
 }