svn commit: r259893 - head/sys/vm

Dimitry Andric dim at FreeBSD.org
Wed Dec 25 23:26:45 UTC 2013


On 25 Dec 2013, at 23:59, Ian Lepore <ian at 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
>> 
>> 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]").
>> 
>>  MFC after:	3 days
>> 
>> Modified:
>>  head/sys/vm/vm_pageout.c
>> 
>> Modified: head/sys/vm/vm_pageout.c
>> ==============================================================================
>> --- 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);
>> }
>> 
>> /*
> 
> 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 = 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 = (uintptr_t)arg;
[...]

-Dimitry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 203 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20131226/4ec33261/attachment.sig>


More information about the svn-src-all mailing list