svn commit: r206558 - head/sys/ia64/ia64

Marcel Moolenaar marcel at FreeBSD.org
Tue Apr 13 15:55:19 UTC 2010


Author: marcel
Date: Tue Apr 13 15:55:18 2010
New Revision: 206558
URL: http://svn.freebsd.org/changeset/base/206558

Log:
  Change the (generic) argument to ia64_store_mca_state() from the
  cpuid to the struct pcpu of the CPU. We casting between pointer
  types only then.

Modified:
  head/sys/ia64/ia64/mp_machdep.c

Modified: head/sys/ia64/ia64/mp_machdep.c
==============================================================================
--- head/sys/ia64/ia64/mp_machdep.c	Tue Apr 13 15:53:04 2010	(r206557)
+++ head/sys/ia64/ia64/mp_machdep.c	Tue Apr 13 15:55:18 2010	(r206558)
@@ -152,13 +152,15 @@ cpu_topo(void)
 static void
 ia64_store_mca_state(void* arg)
 {
-	unsigned int ncpu = (unsigned int)(uintptr_t)arg;
-	struct thread* td;
+	struct pcpu *pc = arg;
+	struct thread *td = curthread;
 
-	/* ia64_mca_save_state() is CPU-sensitive, so bind ourself to our target CPU */
-	td = curthread;
+	/*
+	 * ia64_mca_save_state() is CPU-sensitive, so bind ourself to our
+	 * target CPU.
+	 */
 	thread_lock(td);
-	sched_bind(td, ncpu);
+	sched_bind(td, pc->pc_cpuid);
 	thread_unlock(td);
 
 	/*
@@ -362,8 +364,7 @@ cpu_mp_unleash(void *dummy)
 	SLIST_FOREACH(pc, &cpuhead, pc_allcpu) {
 		cpus++;
 		if (pc->pc_md.awake) {
-			kproc_create(ia64_store_mca_state,
-			    (void*)((uintptr_t)pc->pc_cpuid), NULL, 0, 0,
+			kproc_create(ia64_store_mca_state, pc, NULL, 0, 0,
 			    "mca %u", pc->pc_cpuid);
 			smp_cpus++;
 		}


More information about the svn-src-head mailing list