LWN.net Logo

Advertisement

E-Commerce & credit card processing - the Open Source way!

Advertise here

: Netfilter update/fixes

From:  Patrick McHardy <kaber@trash.net>
To:  davem@davemloft.net
Subject:  [NETFILTER 00/22]: Netfilter update/fixes
Date:  Mon, 12 Feb 2007 11:36:21 +0100 (MET)
Cc:  netfilter-devel@lists.netfilter.org, Patrick McHardy <kaber@trash.net>
Archive-link:  Article, Thread

Hi Dave,

following are a number of fixes for netfilter, fixing RCU issues all over the
place, including the invalid preemption assumptions in the NF_CT_STAT_INC macro.
Additionally there are a few minor enhancements for things I noticed while going
over the code: replacement of a few unnecessary spinlocks by mutexes, some
cleanup for nf_log.c and some return value cleanup for unregistration functions.

With these patches I think there should be nothing left holding back the
preemptable RCU merge from netfilter's perspective.

Please apply, thanks.


 include/linux/netfilter.h                      |    4 
 include/linux/netfilter_ipv4/ip_conntrack.h    |    6 
 include/net/netfilter/nf_conntrack.h           |    6 
 include/net/netfilter/nf_conntrack_l3proto.h   |    4 
 include/net/netfilter/nf_conntrack_l4proto.h   |    2 
 net/bridge/netfilter/ebt_log.c                 |    2 
 net/bridge/netfilter/ebt_ulog.c                |    2 
 net/ipv4/netfilter/Kconfig                     |    8 
 net/ipv4/netfilter/ip_conntrack_core.c         |   53 +++---
 net/ipv4/netfilter/ip_conntrack_standalone.c   |    9 -
 net/ipv4/netfilter/ip_nat_core.c               |   74 ++++----
 net/ipv4/netfilter/ipt_LOG.c                   |    2 
 net/ipv4/netfilter/ipt_ULOG.c                  |    2 
 net/ipv4/netfilter/nf_conntrack_proto_icmp.c   |    2 
 net/ipv4/netfilter/nf_nat_core.c               |   75 ++++----
 net/ipv6/netfilter/Kconfig                     |    3 
 net/ipv6/netfilter/ip6t_LOG.c                  |    2 
 net/ipv6/netfilter/ip6t_mh.c                   |    7 
 net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c |    4 
 net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c |    1 
 net/netfilter/Kconfig                          |   12 +
 net/netfilter/core.c                           |   45 +++--
 net/netfilter/nf_conntrack_core.c              |   72 +++++---
 net/netfilter/nf_conntrack_expect.c            |    2 
 net/netfilter/nf_conntrack_ftp.c               |   14 -
 net/netfilter/nf_conntrack_h323_main.c         |   20 +-
 net/netfilter/nf_conntrack_irc.c               |    2 
 net/netfilter/nf_conntrack_l3proto_generic.c   |    2 
 net/netfilter/nf_conntrack_netbios_ns.c        |    2 
 net/netfilter/nf_conntrack_netlink.c           |  106 ++++++------
 net/netfilter/nf_conntrack_pptp.c              |    2 
 net/netfilter/nf_conntrack_proto.c             |   73 ++------
 net/netfilter/nf_conntrack_proto_sctp.c        |   72 ++++----
 net/netfilter/nf_conntrack_proto_tcp.c         |  210 ++++++++++++-------------
 net/netfilter/nf_conntrack_sip.c               |    6 
 net/netfilter/nf_conntrack_standalone.c        |    2 
 net/netfilter/nf_conntrack_tftp.c              |    2 
 net/netfilter/nf_internals.h                   |    2 
 net/netfilter/nf_log.c                         |   69 ++++----
 net/netfilter/nf_queue.c                       |   22 +-
 net/netfilter/nf_sockopt.c                     |   12 -
 net/netfilter/nfnetlink.c                      |   10 -
 net/netfilter/nfnetlink_log.c                  |   54 +++---
 net/netfilter/nfnetlink_queue.c                |   84 +++++-----
 net/netfilter/x_tables.c                       |   12 -
 net/netfilter/xt_CLASSIFY.c                    |   12 -
 net/netfilter/xt_MARK.c                        |    4 
 net/netfilter/xt_NFQUEUE.c                     |    4 
 net/netfilter/xt_NOTRACK.c                     |    4 
 net/netfilter/xt_SECMARK.c                     |    2 
 net/netfilter/xt_conntrack.c                   |   32 +--
 net/netfilter/xt_dccp.c                        |   20 +-
 net/netfilter/xt_hashlimit.c                   |    8 
 net/netfilter/xt_helper.c                      |   18 +-
 net/netfilter/xt_length.c                      |    4 
 net/netfilter/xt_limit.c                       |    2 
 net/netfilter/xt_mac.c                         |    7 
 net/netfilter/xt_mark.c                        |    6 
 net/netfilter/xt_multiport.c                   |    2 
 net/netfilter/xt_physdev.c                     |    2 
 net/netfilter/xt_policy.c                      |   24 +-
 net/netfilter/xt_quota.c                       |    4 
 net/netfilter/xt_realm.c                       |    2 
 net/netfilter/xt_sctp.c                        |   30 +--
 net/netfilter/xt_string.c                      |    8 
 net/netfilter/xt_tcpmss.c                      |    4 
 66 files changed, 709 insertions(+), 667 deletions(-)

Masahide NAKAMURA:
      [NETFILTER]: ip6t_mh: drop piggyback payload packet on MH packets

Patrick McHardy:
      [NETFILTER]: Properly use RCU in nf_ct_attach
      [NETFILTER]: Remove unnecessary synchronize_net() in nf_register_hook
      [NETFILTER]: Switch nf_register_afinfo/nf_unregister_afinfo to mutex
      [NETFILTER]: Switch nf_register_hook/nf_unregister_hook to mutex
      [NETFILTER]: nf_log: use rcu_assign_pointer for RCU protected pointer
      [NETFILTER]: nf_log: make nf_log_unregister_pf return void
      [NETFILTER]: nf_log: switch logger registration/unregistration to mutex
      [NETFILTER]: nf_log: minor cleanups
      [NETFILTER]: ip_nat: properly use RCU API for ip_nat_protos array
      [NETFILTER]: nf_nat: properly use RCU API for nf_nat_protos array
      [NETFILTER]: ip_conntrack: properly use RCU API for ip_ct_protos array
      [NETFILTER]: nf_conntrack: properly use RCU API for nf_ct_protos/nf_ct_l3protos arrays
      [NETFILTER]: ip_conntrack: fix invalid conntrack statistics RCU assumption
      [NETFILTER]: nf_conntrack: fix invalid conntrack statistics RCU assumption
      [NETFILTER]: ip_conntrack: properly use RCU for ip_conntrack_destroyed callback
      [NETFILTER]: nf_conntrack: properly use RCU for nf_conntrack_destroyed callback
      [NETFILTER]: nf_conntrack: change nf_conntrack_l[34]proto_unregister to void
      [NETFILTER]: xt_mac/xt_CLASSIFY: use IPv6 hook names for IPv6 registration
      [NETFILTER]: Kconfig: improve dependency handling
      [NETFILTER]: nf_conntrack_tcp: make sysctl variables static

YOSHIFUJI Hideaki:
      [NETFILTER]: Fix whitespace errors



Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds