Skip to content
Permalink
Florian-Westph…
Switch branches/tags

Commits on Apr 9, 2021

  1. netfilter: conntrack: convert sysctls to u8

    log_invalid sysctl allows values of 0 to 255 inclusive so we no longer
    need a range check: the min/max values can be removed.
    
    This also removes all member variables that were moved to net_generic
    data in previous patches.
    
    This reduces size of netns_ct struct by one cache line.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Apr 9, 2021
  2. netfilter: conntrack: move ct counter to net_generic data

    Its only needed from slowpath (sysctl, ctnetlink, gc worker) and
    when a new conntrack object is allocated.
    
    Furthermore, each write dirties the otherwise read-mostly pernet
    data in struct net.ct, which are accessed from packet path.
    
    Move it to the net_generic data.  This makes struct netns_ct
    read-mostly.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Apr 9, 2021
  3. netfilter: conntrack: move expect counter to net_generic data

    Creation of a new conntrack entry isn't a frequent operation (compared
    to 'ct entry already exists').  Creation of a new entry that is also an
    expected (related) connection even less so.
    
    Place this counter in net_generic data.
    
    A followup patch will also move the conntrack count -- this will make
    netns_ct a read-mostly structure.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Apr 9, 2021
  4. netfilter: conntrack: move autoassign_helper sysctl to net_generic data

    While at it, make it an u8, no need to use an integer for a boolean.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Apr 9, 2021
  5. netfilter: conntrack: move autoassign warning member to net_generic data

    Not accessed in fast path, place this is generic_net data instead.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Apr 9, 2021

Commits on Apr 5, 2021

  1. net: remove obsolete members from struct net

    all have been moved to generic_net infra. On x86_64, this reduces
    struct net size from 70 to 63 cache lines (4480 to 4032 byte).
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  2. netfilter: conntrack: move ecache dwork to net_generic infra

    dwork struct is large (>128 byte) and not needed when conntrack module
    is not loaded.
    
    Place it in net_generic data instead.  The struct net dwork member is now
    obsolete and will be removed in a followup patch.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  3. netfilter: conntrack: move sysctl pointer to net_generic infra

    No need to keep this in struct net, place it in the net_generic data.
    The sysctl pointer is removed from struct net in a followup patch.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  4. netfilter: x_tables: move known table lists to net_generic infra

    Will reduce struct net size by 208 bytes.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  5. netfilter: nf_tables: use net_generic infra for transaction data

    This moves all nf_tables pernet data from struct net to a net_generic
    extension, with the exception of the gencursor.
    
    The latter is used in the data path and also outside of the nf_tables
    core. All others are only used from the configuration plane.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  6. netfilter: ebtables: use net_generic infra

    ebtables currently uses net->xt.tables[BRIDGE], but upcoming
    patch will move net->xt.tables away from struct net.
    
    To avoid exposing x_tables internals to ebtables, use a private list
    instead.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  7. netfilter: nf_defrag_ipv4: use net_generic infra

    This allows followup patch to remove the defrag_ipv4 member from struct
    net.  It also allows to auto-remove the hooks later on by adding a
    _disable() function.  This will be done later in a follow patch series.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  8. netfilter: nf_defrag_ipv6: use net_generic infra

    This allows followup patch to remove these members from struct net.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  9. netfilter: cttimeout: use net_generic infra

    reduce size of struct net and make this self-contained.
    The member in struct net is kept to minimize changes to struct net
    layout, it will be removed in a separate patch.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  10. netfilter: nfnetlink: use net_generic infra

    No need to place it in struct net, nfnetlink is a module and usage
    doesn't occur in fastpath.
    
    Also remove rcu usage:
    
    Not a single reader of net->nfnl uses rcu accessors.
    
    When exit_batch callbacks are executed the net namespace is already dead
    so no calls to these functions are possible anymore (else we'd get NULL
    deref crash too).
    
    If the module is removed, then modules that call any of those functions
    have been removed too so no calls to nfnl functions are possible either.
    
    The nfnl and nfl_stash pointers in struct net are no longer used, they
    will be removed in a followup patch to minimize changes to struct net
    (causes rebuild for entire network stack).
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021
  11. netfilter: nfnetlink: add and use nfnetlink_broadcast

    This removes the only reference of net->nfnl outside of the nfnetlink
    module.  This allows to move net->nfnl to net_generic infra.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 5, 2021

Commits on Apr 3, 2021

  1. netfilter: nftables: remove documentation on static functions

    Since 4f16d25 ("netfilter: nftables: add nft_parse_register_load()
    and use it") and 345023b ("netfilter: nftables: add
    nft_parse_register_store() and use it"), the following functions are not
    exported symbols anymore:
    
    - nft_parse_register()
    - nft_validate_register_load()
    - nft_validate_register_store()
    
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    ummakynes committed Apr 3, 2021
  2. netfilter: nftables: fix a warning message in nf_tables_commit_audit_…

    …collect()
    
    The first argument of a WARN_ONCE() is a condition.  This WARN_ONCE()
    will only print the table name, and is potentially problematic if the
    table name has a %s in it.
    
    Fixes: c520292 ("audit: log nftables configuration change events once per table")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    error27 authored and ummakynes committed Apr 3, 2021
  3. netfilter: ipvs: do not printk on netns creation

    This causes dmesg spew during normal operation, so remove this.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Reviewed-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Apr 3, 2021

Commits on Mar 31, 2021

  1. netfilter: add helper function to set up the nfnetlink header and use it

    This patch adds a helper function to set up the netlink and nfnetlink headers.
    Update existing codebase to use it.
    
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    ummakynes committed Mar 31, 2021
  2. netfilter: nftables: add helper function to set the base sequence number

    This patch adds a helper function to calculate the base sequence number
    field that is stored in the nfnetlink header. Use the helper function
    whenever possible.
    
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    ummakynes committed Mar 31, 2021
  3. netfilter: nftables: remove unnecessary spin_lock_init()

    The spinlock nf_tables_destroy_list_lock is initialized statically.
    It is unnecessary to initialize by spin_lock_init().
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Yang Yingliang authored and ummakynes committed Mar 31, 2021
  4. netfilter: flowtable: dst_check() from garbage collector path

    Move dst_check() to the garbage collector path. Stale routes trigger the
    flow entry teardown state which makes affected flows go back to the
    classic forwarding path to re-evaluate flow offloading.
    
    IPv6 requires the dst cookie to work, store it in the flow_tuple,
    otherwise dst_check() always fails.
    
    Fixes: e5075c0 ("netfilter: flowtable: call dst_check() to fall back to classic forwarding")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    ummakynes committed Mar 31, 2021
  5. netfilter: ipset: Remove duplicate declaration

    struct ip_set is declared twice. One is declared at 79th line,
    so remove the duplicate.
    
    Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
    Acked-by: Jozsef Kadlecsik <kadlec@netfilter.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Wan Jiabing authored and ummakynes committed Mar 31, 2021
  6. audit: log nftables configuration change events once per table

    Reduce logging of nftables events to a level similar to iptables.
    Restore the table field to list the table, adding the generation.
    
    Indicate the op as the most significant operation in the event.
    
    A couple of sample events:
    
    type=PROCTITLE msg=audit(2021-03-18 09:30:49.801:143) : proctitle=/usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
    type=SYSCALL msg=audit(2021-03-18 09:30:49.801:143) : arch=x86_64 syscall=sendmsg success=yes exit=172 a0=0x6 a1=0x7ffdcfcbe650 a2=0x0 a3=0x7ffdcfcbd52c items=0 ppid=1 pid=367 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=roo
    t sgid=root fsgid=root tty=(none) ses=unset comm=firewalld exe=/usr/bin/python3.9 subj=system_u:system_r:firewalld_t:s0 key=(null)
    type=NETFILTER_CFG msg=audit(2021-03-18 09:30:49.801:143) : table=firewalld:2 family=ipv6 entries=1 op=nft_register_table pid=367 subj=system_u:system_r:firewalld_t:s0 comm=firewalld
    type=NETFILTER_CFG msg=audit(2021-03-18 09:30:49.801:143) : table=firewalld:2 family=ipv4 entries=1 op=nft_register_table pid=367 subj=system_u:system_r:firewalld_t:s0 comm=firewalld
    type=NETFILTER_CFG msg=audit(2021-03-18 09:30:49.801:143) : table=firewalld:2 family=inet entries=1 op=nft_register_table pid=367 subj=system_u:system_r:firewalld_t:s0 comm=firewalld
    
    type=PROCTITLE msg=audit(2021-03-18 09:30:49.839:144) : proctitle=/usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
    type=SYSCALL msg=audit(2021-03-18 09:30:49.839:144) : arch=x86_64 syscall=sendmsg success=yes exit=22792 a0=0x6 a1=0x7ffdcfcbe650 a2=0x0 a3=0x7ffdcfcbd52c items=0 ppid=1 pid=367 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=r
    oot sgid=root fsgid=root tty=(none) ses=unset comm=firewalld exe=/usr/bin/python3.9 subj=system_u:system_r:firewalld_t:s0 key=(null)
    type=NETFILTER_CFG msg=audit(2021-03-18 09:30:49.839:144) : table=firewalld:3 family=ipv6 entries=30 op=nft_register_chain pid=367 subj=system_u:system_r:firewalld_t:s0 comm=firewalld
    type=NETFILTER_CFG msg=audit(2021-03-18 09:30:49.839:144) : table=firewalld:3 family=ipv4 entries=30 op=nft_register_chain pid=367 subj=system_u:system_r:firewalld_t:s0 comm=firewalld
    type=NETFILTER_CFG msg=audit(2021-03-18 09:30:49.839:144) : table=firewalld:3 family=inet entries=165 op=nft_register_chain pid=367 subj=system_u:system_r:firewalld_t:s0 comm=firewalld
    
    The issue was originally documented in
    linux-audit/audit-kernel#124
    
    Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    rgbriggs authored and ummakynes committed Mar 31, 2021
  7. netfilter: nft_log: perform module load from nf_tables

    modprobe calls from the nf_logger_find_get() API causes deadlock in very
    special cases because they occur with the nf_tables transaction mutex held.
    
    In the specific case of nf_log, deadlock is via:
    
     A nf_tables -> transaction mutex -> nft_log -> modprobe -> nf_log_syslog \
    	    -> pernet_ops rwsem -> wait for C
     B netlink event -> rtnl_mutex -> nf_tables transaction mutex -> wait for A
     C close() -> ip6mr_sk_done -> rtnl_mutex -> wait for B
    
    Earlier patch added NFLOG/xt_LOG module softdeps to avoid the need to load
    the backend module during a transaction.
    
    For nft_log we would have to add a softdep for both nfnetlink_log or
    nf_log_syslog, since we do not know in advance which of the two backends
    are going to be configured.
    
    This defers the modprobe op until after the transaction mutex is released.
    
    Tested-by: Phil Sutter <phil@nwl.cc>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 31, 2021
  8. netfilter: nf_log: add module softdeps

    xt_LOG has no direct dependency on the syslog-based logger, it relies
    on the nf_log core to probe the requested backend.
    
    Now that all syslog-based loggers reside in the same module, we can
    just add a soft dependency on nf_log_syslog and let modprobe take
    care of it.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 31, 2021
  9. netfilter: nf_log_common: merge with nf_log_syslog

    Remove nf_log_common.  Now that all per-af modules have been merged
    there is no longer a need to provide a helper module.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 31, 2021
  10. netfilter: nf_log_bridge: merge with nf_log_syslog

    Provide bridge log support from nf_log_syslog.
    
    After the merge there is no need to load the "real packet loggers",
    all of them now reside in the same module.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 31, 2021

Commits on Mar 30, 2021

  1. netfilter: nf_log_netdev: merge with nf_log_syslog

    Provide netdev family support from the nf_log_syslog module.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 30, 2021
  2. netfilter: nf_log_ipv6: merge with nf_log_syslog

    This removes the nf_log_ipv6 module, the functionality is now
    provided by nf_log_syslog.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 30, 2021
  3. netfilter: nf_log_arp: merge with nf_log_syslog

    similar to previous change: nf_log_syslog now covers ARP logging
    as well, the old nf_log_arp module is removed.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 30, 2021
  4. netfilter: nf_log_ipv4: rename to nf_log_syslog

    Netfilter has multiple log modules:
     nf_log_arp
     nf_log_bridge
     nf_log_ipv4
     nf_log_ipv6
     nf_log_netdev
     nfnetlink_log
     nf_log_common
    
    With the exception of nfnetlink_log (packet is sent to userspace for
    dissection/logging), all of them log to the kernel ringbuffer.
    
    This is the first part of a series to merge all modules except
    nfnetlink_log into a single module: nf_log_syslog.
    
    This allows to reduce code.  After the series, only two log modules remain:
    nfnetlink_log and nf_log_syslog. The latter provides the same
    functionality as the old per-af log modules.
    
    This renames nf_log_ipv4 to nf_log_syslog.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Florian Westphal authored and ummakynes committed Mar 30, 2021
  5. net: mhi: remove pointless conditional before kfree_skb()

    It already has null pointer check in kfree_skb(),
    remove pointless pointer check before kfree_skb().
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Yang Yingliang authored and davem330 committed Mar 30, 2021
  6. stmmac: intel: add cross time-stamping freq difference adjustment

    Cross time-stamping mechanism used in certain instance of Intel mGbE
    may run at different clock frequency in comparison to the clock
    frequency used by processor, so we introduce cross T/S frequency
    adjustment to ensure TSC calculation is correct when processor got the
    cross time-stamps.
    
    Signed-off-by: Wong Vee Khee <vee.khee.wong@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    wvk86 authored and davem330 committed Mar 30, 2021
Older