Re: [PATCH RFC] net: dsa: remove unnecessary phy.h include

From: David Miller
Date: Wed Jan 18 2017 - 17:40:52 EST


From: David Miller <davem@xxxxxxxxxxxxx>
Date: Wed, 18 Jan 2017 16:37:14 -0500 (EST)

> From: Russell King - ARM Linux <linux@xxxxxxxxxxxxxxx>
> Date: Wed, 18 Jan 2017 00:14:03 +0000
>
>> Including phy.h and phy_fixed.h into net/dsa.h causes phy*.h to be an
>> unnecessary dependency for quite a large amount of the kernel. There's
>> very little which actually requires definitions from phy.h in net/dsa.h
>> - the include itself only wants the declaration of a couple of
>> structures and IFNAMSIZ.
>>
>> Add linux/if.h for IFNAMSIZ, declarations for the structures, phy.h to
>> mv88e6xxx.h as it needs it for phy_interface_t, and remove both phy.h
>> and phy_fixed.h from net/dsa.h.
>>
>> This patch reduces from around 800 files rebuilt to around 40 - even
>> with ccache, the time difference is noticable.
>>
>> Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx>
>
> Applied, thanks.

Acutallly, I'm reverting this, it breaks the build all over the place.

The problem is that it seems that somehow we are getting an implicit
module.h include via phy.h and this propagates all over the tree. So
I get failures like:

net/core/netprio_cgroup.c:303:16: error: expected declaration specifiers or ʽ...ʼ before string constant
MODULE_LICENSE("GPL v2");
...
net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function ʽxprt_rdma_bc_putʼ:
net/sunrpc/xprtrdma/svc_rdma_backchannel.c:277:2: error: implicit declaration of function ʽmodule_putʼ [-Werror=implicit-function-declaration]
module_put(THIS_MODULE);
^
net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function ʽxprt_setup_rdma_bcʼ:
net/sunrpc/xprtrdma/svc_rdma_backchannel.c:348:7: error: implicit declaration of function ʽtry_module_getʼ [-Werror=implicit-function-declaration]
if (!try_module_get(THIS_MODULE))

Please resubmit this after you can successfully complete an allmodconfig build.

Thanks.