Date: Thu, 26 Dec 2013 00:26:25 +0100 From: Dimitry Andric <dim@FreeBSD.org> To: Ian Lepore <ian@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r259893 - head/sys/vm Message-ID: <CE522744-21A4-42CD-B621-86C517A94480@FreeBSD.org> In-Reply-To: <1388012382.1158.128.camel@revolution.hippie.lan> References: <201312252232.rBPMWZ6a042376@svn.freebsd.org> <1388012382.1158.128.camel@revolution.hippie.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_9C59DB62-B4DA-4A82-A008-1F846AC7BE49 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 25 Dec 2013, at 23:59, Ian Lepore <ian@FreeBSD.org> wrote: > On Wed, 2013-12-25 at 22:32 +0000, Dimitry Andric wrote: >> Author: dim >> Date: Wed Dec 25 22:32:34 2013 >> New Revision: 259893 >> URL: http://svnweb.freebsd.org/changeset/base/259893 >>=20 >> Log: >> In sys/vm/vm_pageout.c, since vm_pageout_worker() takes a void * as >> argument, cast the incoming 0 argument to void *, to silence a = warning >> from clang 3.4 ("expression which evaluates to zero treated as a = null >> pointer constant of type 'void *' [-Wnon-literal-null-conversion]"). >>=20 >> MFC after: 3 days >>=20 >> Modified: >> head/sys/vm/vm_pageout.c >>=20 >> Modified: head/sys/vm/vm_pageout.c >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/vm/vm_pageout.c Wed Dec 25 22:14:42 2013 = (r259892) >> +++ head/sys/vm/vm_pageout.c Wed Dec 25 22:32:34 2013 = (r259893) >> @@ -1699,7 +1699,7 @@ vm_pageout(void) >> } >> } >> #endif >> - vm_pageout_worker((uintptr_t)0); >> + vm_pageout_worker((void *)(uintptr_t)0); >> } >>=20 >> /* >=20 > Why isn't the fix for this just vm_pageout_worker(NULL); ? Because the argument is meant as a literal zero, in this case. The vm_pageout_worker() function only has a void * argument, because it is used as a thread function for kthread_add(9); see just a few lines above: error =3D kthread_add(vm_pageout_worker, (void = *)(uintptr_t)i, [...] Upon entry to vm_pageout_worker(), the incoming 'pointer' is immediately converted back into an intptr_t: static void vm_pageout_worker(void *arg) { struct vm_domain *domain; int domidx; domidx =3D (uintptr_t)arg; [...] -Dimitry --Apple-Mail=_9C59DB62-B4DA-4A82-A008-1F846AC7BE49 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) iEYEARECAAYFAlK7aagACgkQsF6jCi4glqPcfwCg03UHkMblSxl2AgiU6fuexbH6 EIMAoPc8QIAn0Jne12KKWo35W2FiSUSd =dOz+ -----END PGP SIGNATURE----- --Apple-Mail=_9C59DB62-B4DA-4A82-A008-1F846AC7BE49--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CE522744-21A4-42CD-B621-86C517A94480>