mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
cpumask: Use cpu_*_mask accessors code: alpha
Impact: use new API, fix SMP bug. Use the new accessors rather than frobbing bits directly. This also removes the bug introduced in ee0c468b (alpha: compile fixes) which had Alpha setting bits on an on-stack cpumask, not the cpu_online_map. Cc: Richard Henderson <rth@twiddle.net> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Mike Travis <travis@sgi.com> Acked-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Acked-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
a0abd520fd
commit
1371be0f7c
@ -93,8 +93,8 @@ common_shutdown_1(void *generic_ptr)
|
|||||||
if (cpuid != boot_cpuid) {
|
if (cpuid != boot_cpuid) {
|
||||||
flags |= 0x00040000UL; /* "remain halted" */
|
flags |= 0x00040000UL; /* "remain halted" */
|
||||||
*pflags = flags;
|
*pflags = flags;
|
||||||
cpu_clear(cpuid, cpu_present_map);
|
set_cpu_present(cpuid, false);
|
||||||
cpu_clear(cpuid, cpu_possible_map);
|
set_cpu_possible(cpuid, false);
|
||||||
halt();
|
halt();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -120,8 +120,8 @@ common_shutdown_1(void *generic_ptr)
|
|||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/* Wait for the secondaries to halt. */
|
/* Wait for the secondaries to halt. */
|
||||||
cpu_clear(boot_cpuid, cpu_present_map);
|
set_cpu_present(boot_cpuid, false);
|
||||||
cpu_clear(boot_cpuid, cpu_possible_map);
|
set_cpu_possible(boot_cpuid, false);
|
||||||
while (cpus_weight(cpu_present_map))
|
while (cpus_weight(cpu_present_map))
|
||||||
barrier();
|
barrier();
|
||||||
#endif
|
#endif
|
||||||
|
@ -120,12 +120,12 @@ void __cpuinit
|
|||||||
smp_callin(void)
|
smp_callin(void)
|
||||||
{
|
{
|
||||||
int cpuid = hard_smp_processor_id();
|
int cpuid = hard_smp_processor_id();
|
||||||
cpumask_t mask = cpu_online_map;
|
|
||||||
|
|
||||||
if (cpu_test_and_set(cpuid, mask)) {
|
if (cpu_online(cpuid)) {
|
||||||
printk("??, cpu 0x%x already present??\n", cpuid);
|
printk("??, cpu 0x%x already present??\n", cpuid);
|
||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
set_cpu_online(cpuid, true);
|
||||||
|
|
||||||
/* Turn on machine checks. */
|
/* Turn on machine checks. */
|
||||||
wrmces(7);
|
wrmces(7);
|
||||||
@ -436,8 +436,8 @@ setup_smp(void)
|
|||||||
((char *)cpubase + i*hwrpb->processor_size);
|
((char *)cpubase + i*hwrpb->processor_size);
|
||||||
if ((cpu->flags & 0x1cc) == 0x1cc) {
|
if ((cpu->flags & 0x1cc) == 0x1cc) {
|
||||||
smp_num_probed++;
|
smp_num_probed++;
|
||||||
cpu_set(i, cpu_possible_map);
|
set_cpu_possible(i, true);
|
||||||
cpu_set(i, cpu_present_map);
|
set_cpu_present(i, true);
|
||||||
cpu->pal_revision = boot_cpu_palrev;
|
cpu->pal_revision = boot_cpu_palrev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -470,8 +470,8 @@ smp_prepare_cpus(unsigned int max_cpus)
|
|||||||
|
|
||||||
/* Nothing to do on a UP box, or when told not to. */
|
/* Nothing to do on a UP box, or when told not to. */
|
||||||
if (smp_num_probed == 1 || max_cpus == 0) {
|
if (smp_num_probed == 1 || max_cpus == 0) {
|
||||||
cpu_possible_map = cpumask_of_cpu(boot_cpuid);
|
init_cpu_possible(cpumask_of(boot_cpuid));
|
||||||
cpu_present_map = cpumask_of_cpu(boot_cpuid);
|
init_cpu_present(cpumask_of(boot_cpuid));
|
||||||
printk(KERN_INFO "SMP mode deactivated.\n");
|
printk(KERN_INFO "SMP mode deactivated.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user