From owner-freebsd-current@FreeBSD.ORG Fri Jul 22 19:41:02 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4C01916A41F for ; Fri, 22 Jul 2005 19:41:02 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id B7C7643D49 for ; Fri, 22 Jul 2005 19:41:01 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from [10.50.40.201] (Not Verified[65.202.103.25]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Fri, 22 Jul 2005 15:55:16 -0400 From: John Baldwin To: freebsd-current@freebsd.org Date: Fri, 22 Jul 2005 15:39:54 -0400 User-Agent: KMail/1.8 References: <20050717020946.GA42304@crodrigues.org> In-Reply-To: <20050717020946.GA42304@crodrigues.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200507221539.55166.jhb@FreeBSD.org> Cc: Craig Rodrigues Subject: Re: Problem compiling sched_ule.c X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2005 19:41:02 -0000 On Saturday 16 July 2005 10:09 pm, Craig Rodrigues wrote: > 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 > @@ -651,7 +651,8 @@ > > 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--; > @@ -688,7 +689,8 @@ > */ > 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 Yes. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org