diff options
author | jhb <jhb@FreeBSD.org> | 2005-10-24 20:31:04 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-10-24 20:31:04 +0000 |
commit | 2f00e0670ed16444e0faedcb9c2ec02736e72002 (patch) | |
tree | fb709616c2558aeb35ca88df8326d4f52148d97b /sys/i386 | |
parent | 4276c72c503aa685d620b0d20ce46df35fd085a2 (diff) | |
download | FreeBSD-src-2f00e0670ed16444e0faedcb9c2ec02736e72002.zip FreeBSD-src-2f00e0670ed16444e0faedcb9c2ec02736e72002.tar.gz |
- Various small whitespace and style nits.
- Use PCPU_GET(cpumask) in preference to 1 << PCPU_GET(cpuid) in a few
places.
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/i386/mp_machdep.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index aeb79bd..90ded0c 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -1132,7 +1132,6 @@ smp_masked_invlpg_range(u_int mask, vm_offset_t addr1, vm_offset_t addr2) } } - void ipi_bitmap_handler(struct clockframe frame) { @@ -1249,7 +1248,6 @@ ipi_self(u_int ipi) void ipi_nmi_selected(u_int32_t cpus) { - int cpu; register_t icrlo; @@ -1258,10 +1256,8 @@ ipi_nmi_selected(u_int32_t cpus) CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); - atomic_set_int(&ipi_nmi_pending, cpus); - while ((cpu = ffs(cpus)) != 0) { cpu--; cpus &= ~(1 << cpu); @@ -1273,7 +1269,7 @@ ipi_nmi_selected(u_int32_t cpus) if (!lapic_ipi_wait(BEFORE_SPIN)) panic("ipi_nmi_selected: previous IPI has not cleared"); - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); } } @@ -1281,27 +1277,27 @@ ipi_nmi_selected(u_int32_t cpus) int ipi_nmi_handler() { - int cpu = PCPU_GET(cpuid); + int cpu = PCPU_GET(cpuid); + int cpumask = PCPU_GET(cpumask); - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) + if (!(atomic_load_acq_int(&ipi_nmi_pending) & cpumask)) return 1; - atomic_clear_int(&ipi_nmi_pending,1 << cpu); + atomic_clear_int(&ipi_nmi_pending, cpumask); savectx(&stoppcbs[cpu]); /* Indicate that we are stopped */ - atomic_set_int(&stopped_cpus,1 << cpu); - + atomic_set_int(&stopped_cpus, cpumask); /* Wait for restart */ - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) + while (!(atomic_load_acq_int(&started_cpus) & cpumask)) ia32_pause(); - atomic_clear_int(&started_cpus,1 << cpu); - atomic_clear_int(&stopped_cpus,1 << cpu); + atomic_clear_int(&started_cpus, cpumask); + atomic_clear_int(&stopped_cpus, cpumask); - if(cpu == 0 && cpustop_restartfunc != NULL) + if (cpu == 0 && cpustop_restartfunc != NULL) cpustop_restartfunc(); return 0; |