The IPVlan module currently depends on IPv6 and Netfilter. Refactor the code to allow building IPVlan module regardless of the value of CONFIG_IPV6 and CONFIG_NETFILTER. Also change the dependency to CONFIG_NET_L3_MASTER_DEV into a select, as compiling L3 Master device alone has no sense.
$ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config CONFIG_IPV6=y CONFIG_NETFILTER=y CONFIG_IPVLAN=m $ ll drivers/net/ipvlan/ipvlan.ko 48K drivers/net/ipvlan/ipvlan.ko $ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config # CONFIG_IPV6 is not set CONFIG_NETFILTER=y CONFIG_IPVLAN=m $ ll drivers/net/ipvlan/ipvlan.ko 44K drivers/net/ipvlan/ipvlan.ko $ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config CONFIG_IPV6=m # CONFIG_NETFILTER is not set CONFIG_IPVLAN=m $ ll drivers/net/ipvlan/ipvlan.ko 46K drivers/net/ipvlan/ipvlan.ko $ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config # CONFIG_IPV6 is not set # CONFIG_NETFILTER is not set CONFIG_IPVLAN=m $ ll drivers/net/ipvlan/ipvlan.ko 43K drivers/net/ipvlan/ipvlan.ko Matteo Croce (3): ipvlan: drop ipv6 dependency ipvlan: drop netfilter dependency ipvlan: selects master_l3 device instead of depending on it drivers/net/Kconfig | 4 +- drivers/net/ipvlan/ipvlan.h | 2 + drivers/net/ipvlan/ipvlan_core.c | 73 ++++++++++++++++++++++++++++--------- drivers/net/ipvlan/ipvlan_main.c | 79 +++++++++++++++++++++++++++------------- 4 files changed, 111 insertions(+), 47 deletions(-) -- 2.14.3