Problem compiling sched_ule.c

From: Craig Rodrigues <rodrigc_at_crodrigues.org>
Date: Sat, 16 Jul 2005 22:09:46 -0400
Hi,

After the recent changes to the macros to atomic.h, I am getting
compilation warnings in sched_ule.c.

/usr/src/sys/kern/sched_ule.c: In function `kseq_assign':
/usr/src/sys/kern/sched_ule.c:654: warning: passing arg 1 of `atomic_cmpset_int' from incompatible pointer type
/usr/src/sys/kern/sched_ule.c:654: warning: passing arg 2 of `atomic_cmpset_int' makes integer from pointer without a cast
/usr/src/sys/kern/sched_ule.c:654: warning: passing arg 3 of `atomic_cmpset_int' makes integer from pointer without a cast
/usr/src/sys/kern/sched_ule.c: In function `kseq_notify':
/usr/src/sys/kern/sched_ule.c:691: warning: passing arg 1 of `atomic_cmpset_int' from incompatible pointer type
/usr/src/sys/kern/sched_ule.c:691: warning: passing arg 2 of `atomic_cmpset_int' makes integer from pointer without a cast
/usr/src/sys/kern/sched_ule.c:691: warning: passing arg 3 of `atomic_cmpset_int' makes integer from pointer without a cast
*** Error code 1


Is this the correct way to fix this:


--- /usr/src/sys/kern/sched_ule.c.orig	Sat Jul 16 21:42:07 2005
+++ /usr/src/sys/kern/sched_ule.c	Sat Jul 16 22:09:00 2005
_at__at_ -651,7 +651,8 _at__at_
 
 	do {
 		*(volatile struct kse **)&ke = kseq->ksq_assigned;
-	} while(!atomic_cmpset_ptr(&kseq->ksq_assigned, ke, NULL));
+	} while(!atomic_cmpset_ptr((uintptr_t *)&kseq->ksq_assigned,
+	        (uintptr_t)ke, (uintptr_t)NULL));
 	for (; ke != NULL; ke = nke) {
 		nke = ke->ke_assign;
 		kseq->ksq_group->ksg_load--;
_at__at_ -688,7 +689,8 _at__at_
 	 */
 	do {
 		*(volatile struct kse **)&ke->ke_assign = kseq->ksq_assigned;
-	} while(!atomic_cmpset_ptr(&kseq->ksq_assigned, ke->ke_assign, ke));
+	} while(!atomic_cmpset_ptr((uintptr_t *)&kseq->ksq_assigned,
+	        (uintptr_t)ke->ke_assign, (uintptr_t)ke));
 	/*
 	 * Without sched_lock we could lose a race where we set NEEDRESCHED
 	 * on a thread that is switched out before the IPI is delivered.  This


-- 
Craig Rodrigues        
rodrigc_at_crodrigues.org
Received on Sun Jul 17 2005 - 00:09:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:39 UTC