Having core header files in include/linux that in turn include other headers with a high number of includes implicitly degenerates into a formalism that hides what amounts to #include <linux/everything.h> Some headers, like module.h and device.h are good examples that will essentially drag in almost everything. There is nothing module specific about netfilter, but before we try and stop nf_tables.h from including module.h, we have to fix two instances of code which are implicitly relying on that module.h inclusion, so as to not introduce build regressions. --- Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Florian Westphal <fw@xxxxxxxxx> Cc: Jozsef Kadlecsik <kadlec@xxxxxxxxxxxxxxxxx> Cc: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> Cc: netfilter-devel@xxxxxxxxxxxxxxx Cc: coreteam@xxxxxxxxxxxxx Paul Gortmaker (3): netfilter: nf_tables: relocate header content to consumer netfilter: nf_tables: fix implicit include of module.h netfilter: nf_tables: drop include of module.h from nf_tables.h include/net/netfilter/nf_tables.h | 20 ++------------------ net/netfilter/nf_tables_set_core.c | 1 + net/netfilter/nft_dynset.c | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 18 deletions(-) -- 2.7.4