Skip to content
  • Geert Uytterhoeven's avatar
    netfilter: nat: Do not use ARRAY_SIZE() on spinlocks to fix zero div · b0ade851
    Geert Uytterhoeven authored
    
    
    If no spinlock debugging options (CONFIG_GENERIC_LOCKBREAK,
    CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_LOCK_ALLOC) are enabled on a UP
    platform (e.g. m68k defconfig), arch_spinlock_t is an empty struct,
    hence using ARRAY_SIZE(nf_nat_locks) causes a division by zero:
    
        net/netfilter/nf_nat_core.c: In function ‘nf_nat_setup_info’:
        net/netfilter/nf_nat_core.c:432: warning: division by zero
        net/netfilter/nf_nat_core.c: In function ‘__nf_nat_cleanup_conntrack’:
        net/netfilter/nf_nat_core.c:535: warning: division by zero
        net/netfilter/nf_nat_core.c:537: warning: division by zero
        net/netfilter/nf_nat_core.c: In function ‘nf_nat_init’:
        net/netfilter/nf_nat_core.c:810: warning: division by zero
        net/netfilter/nf_nat_core.c:811: warning: division by zero
        net/netfilter/nf_nat_core.c:824: warning: division by zero
    
    Fix this by using the CONNTRACK_LOCKS definition instead.
    
    Suggested-by: default avatarFlorian Westphal <fw@strlen.de>
    Fixes: 8073e960
    
     ("netfilter: nat: use keyed locks")
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    b0ade851