Skip to content
  • Daniel Borkmann's avatar
    netfilter: nf_conntrack: make nf_ct_zone_dflt built-in · 62da9865
    Daniel Borkmann authored
    Fengguang reported, that some randconfig generated the following linker
    issue with nf_ct_zone_dflt object involved:
    
      [...]
      CC      init/version.o
      LD      init/built-in.o
      net/built-in.o: In function `ipv4_conntrack_defrag':
      nf_defrag_ipv4.c:(.text+0x93e95): undefined reference to `nf_ct_zone_dflt'
      net/built-in.o: In function `ipv6_defrag':
      nf_defrag_ipv6_hooks.c:(.text+0xe3ffe): undefined reference to `nf_ct_zone_dflt'
      make: *** [vmlinux] Error 1
    
    Given that configurations exist where we have a built-in part, which is
    accessing nf_ct_zone_dflt such as the two handlers nf_ct_defrag_user()
    and nf_ct6_defrag_user(), and a part that configures nf_conntrack as a
    module, we must move nf_ct_zone_dflt into a fixed, guaranteed built-in
    area when netfilter is configured in general.
    
    Therefore, split the more generic parts into a common header under
    include/linux/netfilter/ and move nf_ct_zone_dflt into the built-in
    section that already holds parts related to CONFIG_NF_CONNTRACK in the
    netfilter core. This fixes the issue on my side.
    
    Fixes: 308ac914
    
     ("netfilter: nf_conntrack: push zone object into functions")
    Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    62da9865