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-head/attachments/20131226/4ec33261/attachment.sig>
More information about the svn-src-head
mailing list