Greetings,
I'm updating our port to 2.6.22 and I notice that r4k_flush_icache_range
no longer has a check for irqs_disabled (to force local-only flush).
This hits the BUG_ON(!cpu_online(cpu)) assertion in smp_call_function
since cpu's aren't marked online until after start_secondary:
Call Trace:
[<ffffffff8010d394>] smp_call_function+0x84/0x1f0
[<ffffffff8011dec0>] r4k_flush_icache_range+0x28/0x48
[<ffffffff80434a4c>] r4k_cache_init+0x6dc/0x1070
[<ffffffff8042fca0>] per_cpu_trap_init+0x180/0x288
[<ffffffff804304b4>] start_secondary+0x24/0x118
[<ffffffff80101c40>] prom_smp_bootstrap+0x10/0x50
So, the question is, how should the remote icache flush be avoided in
this case?
-p