Hi Rusty,
After merging the rr-fixes tree, today's linux-next build (x86_64
allmodconfig) failed like this:
drivers/dma/iovlock.c: In function 'dma_pin_iovec_pages':
drivers/dma/iovlock.c:98:21: error: dereferencing pointer to incomplete type
down_read(¤t->mm->mmap_sem);
^
drivers/dma/iovlock.c:101:11: error: dereferencing pointer to incomplete type
current->mm,
^
drivers/dma/iovlock.c:108:19: error: dereferencing pointer to incomplete type
up_read(¤t->mm->mmap_sem);
^
Caused by commit 11227d242a8c ("Hoist memcpy_fromiovec/memcpy_toiovec
into lib/"). Clearly, net/tcp.h was indirectly including sched.h or
asm/current.h. Changing inclusions is fraught with problems since people
do not follow Rule 1 (in Documentation/SubmitChecklist) consistently. :-(
I have used the rr-fixes tree from next-20130515 (since the fix in
rr-fixes in next-20130516/7 conflicts with the better fix now in Linus'
tree) for today.
--
Cheers,
Stephen Rothwell [email protected]
Stephen Rothwell <[email protected]> writes:
> Hi Rusty,
>
> After merging the rr-fixes tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/dma/iovlock.c: In function 'dma_pin_iovec_pages':
> drivers/dma/iovlock.c:98:21: error: dereferencing pointer to incomplete type
> down_read(¤t->mm->mmap_sem);
> ^
> drivers/dma/iovlock.c:101:11: error: dereferencing pointer to incomplete type
> current->mm,
> ^
> drivers/dma/iovlock.c:108:19: error: dereferencing pointer to incomplete type
> up_read(¤t->mm->mmap_sem);
> ^
>
> Caused by commit 11227d242a8c ("Hoist memcpy_fromiovec/memcpy_toiovec
> into lib/"). Clearly, net/tcp.h was indirectly including sched.h or
> asm/current.h. Changing inclusions is fraught with problems since people
> do not follow Rule 1 (in Documentation/SubmitChecklist) consistently. :-(
Yep, the 0day tester caught this too (it works on 32-bit unfortunately,
so I didn't see the problem).
I've not touched the #includes any more in my updated patch.
Cheers,
Rusty.