The ita_mask should include curcpu but the cpuset passed to cpu_ipi_selected()
must not, otherwise we tell the CPU to IPI itself, which the sun4u CPUs don't support. For reasons unknown so far MD and MI IPI use actually still triggers that assertion though.
This commit is contained in:
parent
ed36c82cbf
commit
0fd4b3388e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/largeSMP/; revision=221791
@ -222,8 +222,8 @@ ipi_tlb_context_demap(struct pmap *pm)
|
||||
}
|
||||
ita = &ipi_tlb_args;
|
||||
mtx_lock_spin(&ipi_mtx);
|
||||
CPU_OR(&cpus, PCPU_PTR(cpumask));
|
||||
ita->ita_mask = cpus;
|
||||
CPU_OR(&ita->ita_mask, PCPU_PTR(cpumask));
|
||||
ita->ita_pmap = pm;
|
||||
cpu_ipi_selected(cpus, 0, (u_long)tl_ipi_tlb_context_demap,
|
||||
(u_long)ita);
|
||||
@ -247,8 +247,8 @@ ipi_tlb_page_demap(struct pmap *pm, vm_offset_t va)
|
||||
}
|
||||
ita = &ipi_tlb_args;
|
||||
mtx_lock_spin(&ipi_mtx);
|
||||
CPU_OR(&cpus, PCPU_PTR(cpumask));
|
||||
ita->ita_mask = cpus;
|
||||
CPU_OR(&ita->ita_mask, PCPU_PTR(cpumask));
|
||||
ita->ita_pmap = pm;
|
||||
ita->ita_va = va;
|
||||
cpu_ipi_selected(cpus, 0, (u_long)tl_ipi_tlb_page_demap, (u_long)ita);
|
||||
@ -272,8 +272,8 @@ ipi_tlb_range_demap(struct pmap *pm, vm_offset_t start, vm_offset_t end)
|
||||
}
|
||||
ita = &ipi_tlb_args;
|
||||
mtx_lock_spin(&ipi_mtx);
|
||||
CPU_OR(&cpus, PCPU_PTR(cpumask));
|
||||
ita->ita_mask = cpus;
|
||||
CPU_OR(&ita->ita_mask, PCPU_PTR(cpumask));
|
||||
ita->ita_pmap = pm;
|
||||
ita->ita_start = start;
|
||||
ita->ita_end = end;
|
||||
|
Loading…
Reference in New Issue
Block a user