summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-10-24 20:31:04 +0000
committerjhb <jhb@FreeBSD.org>2005-10-24 20:31:04 +0000
commit2f00e0670ed16444e0faedcb9c2ec02736e72002 (patch)
treefb709616c2558aeb35ca88df8326d4f52148d97b /sys/i386
parent4276c72c503aa685d620b0d20ce46df35fd085a2 (diff)
downloadFreeBSD-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.c24
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;
OpenPOWER on IntegriCloud