Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 May 2011 21:15:12 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r221791 - projects/largeSMP/sys/sparc64/include
Message-ID:  <201105112115.p4BLFCGW006442@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Wed May 11 21:15:12 2011
New Revision: 221791
URL: http://svn.freebsd.org/changeset/base/221791

Log:
  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.

Modified:
  projects/largeSMP/sys/sparc64/include/smp.h

Modified: projects/largeSMP/sys/sparc64/include/smp.h
==============================================================================
--- projects/largeSMP/sys/sparc64/include/smp.h	Wed May 11 21:10:43 2011	(r221790)
+++ projects/largeSMP/sys/sparc64/include/smp.h	Wed May 11 21:15:12 2011	(r221791)
@@ -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_o
 	}
 	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_
 	}
 	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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105112115.p4BLFCGW006442>