: Kill lockhelp.h
Subsystems (2)
PATCH 1/7 : Kill lockhelp.h
[NETFILTER]: Kill lockhelp.h
Signed-off-by Patrick McHardy <[email protected]>
---
commit 707246750b3c516436fae3f37469b76f017e706b
tree 9fff23bda098a8af5e8da29f6c02d55ccd087158
parent 8b22c249e7de453961e4d253b19fc2a0bdd65d53
author Patrick McHardy <[email protected]> Mon, 20 Jun 2005 18:26:19 committer Patrick McHardy <[email protected]> Mon, 20 Jun 2005 18:26:19
include/linux/netfilter_ipv4/ip_conntrack_core.h | 3 - include/linux/netfilter_ipv4/ip_nat.h | 3 - include/linux/netfilter_ipv4/listhelp.h | 1 include/linux/netfilter_ipv4/lockhelp.h | 129 ---------------------- net/ipv4/netfilter/arp_tables.c | 1 net/ipv4/netfilter/ip_conntrack_amanda.c | 7 + net/ipv4/netfilter/ip_conntrack_core.c | 84 +++++++------- net/ipv4/netfilter/ip_conntrack_ftp.c | 7 + net/ipv4/netfilter/ip_conntrack_irc.c | 7 + net/ipv4/netfilter/ip_conntrack_proto_sctp.c | 23 ++-- net/ipv4/netfilter/ip_conntrack_proto_tcp.c | 27 ++--- net/ipv4/netfilter/ip_conntrack_standalone.c | 22 ++-- net/ipv4/netfilter/ip_nat_core.c | 32 +++-- net/ipv4/netfilter/ip_nat_helper.c | 10 +- net/ipv4/netfilter/ip_nat_rule.c | 4 - net/ipv4/netfilter/ip_nat_standalone.c | 5 - net/ipv4/netfilter/ip_tables.c | 1 net/ipv4/netfilter/ipt_CLUSTERIP.c | 49 ++++---- net/ipv4/netfilter/ipt_MASQUERADE.c | 10 +- net/ipv4/netfilter/ipt_ULOG.c | 15 +-- net/ipv4/netfilter/ipt_hashlimit.c | 17 +-- net/ipv4/netfilter/ipt_helper.c | 4 - net/ipv6/netfilter/ip6_tables.c | 1 23 files changed, 160 insertions(+), 302 deletions(-)
include/linux/netfilter_ipv4/ip_conntrack_core.h +1 -2
@@ -1,7 +1,6 @@#ifndef _IP_CONNTRACK_CORE_H#define _IP_CONNTRACK_CORE_H#include <linux/netfilter.h> -#include <linux/netfilter_ipv4/lockhelp.h> /* This header is used to share core functionality between the standalone connection tracking module, and the compatibility layer's use
@@ -47,6 +46,6 @@ static inline int ip_conntrack_confirm(sextern struct list_head *ip_conntrack_hash;extern struct list_head ip_conntrack_expect_list; -DECLARE_RWLOCK_EXTERN (ip_conntrack_lock); +extern rwlock_t ip_conntrack_lock;#endif /* _IP_CONNTRACK_CORE_H */
include/linux/netfilter_ipv4/ip_nat.h +1 -2
@@ -50,10 +50,9 @@ struct ip_nat_multi_range_compat#ifdef __KERNEL__#include <linux/list.h> -#include <linux/netfilter_ipv4/lockhelp.h> /* Protects NAT hash tables, and NAT-private part of conntracks. */ -DECLARE_RWLOCK_EXTERN (ip_nat_lock); +extern rwlock_t ip_nat_lock;/* The structure embedded in the conntrack structure. */ struct ip_nat_info
include/linux/netfilter_ipv4/listhelp.h +0 -1
@@ -2,7 +2,6 @@#define _LISTHELP_H#include <linux/config.h> #include <linux/list.h> -#include <linux/netfilter_ipv4/lockhelp.h> /* Header to do more comprehensive job than linux/list.h; assume list is first entry in structure. */
include/linux/netfilter_ipv4/lockhelp.h deleted +0 -129
129 lines not on this page · raw message
net/ipv4/netfilter/arp_tables.c +0 -1
@@ -60,7 +60,6 @@ static DECLARE_MUTEX(arpt_mutex);#define ASSERT_READ_LOCK (x) ARP_NF_ASSERT(down_trylock(&arpt_mutex) != 0)#define ASSERT_WRITE_LOCK (x) ARP_NF_ASSERT(down_trylock(&arpt_mutex) != 0) -#include <linux/netfilter_ipv4/lockhelp.h> #include <linux/netfilter_ipv4/listhelp.h> struct arpt_table_info {
net/ipv4/netfilter/ip_conntrack_amanda.c +3 -4
@@ -26,7 +26,6 @@#include <net/checksum.h> #include <net/udp.h> -#include <linux/netfilter_ipv4/lockhelp.h> #include <linux/netfilter_ipv4/ip_conntrack_helper.h> #include <linux/netfilter_ipv4/ip_conntrack_amanda.h>
@@ -42,7 +41,7 @@ static char *conns[] = { "DATA ", "MESG/* This is slow, but it's simple. --RR */ static char amanda_buffer[65536 ]; -static DECLARE_LOCK (amanda_buffer_lock); +static DEFINE_SPINLOCK (amanda_buffer_lock); unsigned int (*ip_nat_amanda_hook)(struct sk_buff **pskb, enum ip_conntrack_info ctinfo,
@@ -76,7 +75,7 @@ static int help(struct sk_buff **pskb,return NF_ACCEPT ; } -LOCK_BH (&amanda_buffer_lock); +spin_lock_bh (&amanda_buffer_lock);skb_copy_bits (*pskb, dataoff, amanda_buffer, (*pskb)->len - dataoff); data = amanda_buffer; data_limit = amanda_buffer + (*pskb)->len - dataoff;
@@ -134,7 +133,7 @@ static int help(struct sk_buff **pskb, } out: -UNLOCK_BH (&amanda_buffer_lock); +spin_unlock_bh (&amanda_buffer_lock);return ret; }
net/ipv4/netfilter/ip_conntrack_core.c +42 -42
297 lines not on this page · raw message
net/ipv4/netfilter/ip_conntrack_ftp.c +3 -4
@@ -16,7 +16,6 @@#include <net/checksum.h> #include <net/tcp.h> -#include <linux/netfilter_ipv4/lockhelp.h> #include <linux/netfilter_ipv4/ip_conntrack_helper.h> #include <linux/netfilter_ipv4/ip_conntrack_ftp.h> #include <linux/moduleparam.h>
@@ -28,7 +27,7 @@ MODULE_DESCRIPTION("ftp connection track/* This is slow, but it's simple. --RR */ static char ftp_buffer[65536 ]; -static DECLARE_LOCK (ip_ftp_lock); +static DEFINE_SPINLOCK (ip_ftp_lock);#define MAX_PORTS 8static int ports[MAX_PORTS ];
@@ -319,7 +318,7 @@ static int help(struct sk_buff **pskb, } datalen = (*pskb)->len - dataoff; -LOCK_BH (&ip_ftp_lock); +spin_lock_bh (&ip_ftp_lock); fb_ptr =skb_header_pointer (*pskb, dataoff, (*pskb)->len - dataoff, ftp_buffer);BUG_ON (fb_ptr ==NULL );
@@ -442,7 +441,7 @@ out_update_nl:if (ends_in_nl)update_nl_seq (seq, ct_ftp_info,dir); out: -UNLOCK_BH (&ip_ftp_lock); +spin_unlock_bh (&ip_ftp_lock);return ret; }
net/ipv4/netfilter/ip_conntrack_irc.c +3 -4
@@ -29,7 +29,6 @@#include <net/checksum.h> #include <net/tcp.h> -#include <linux/netfilter_ipv4/lockhelp.h> #include <linux/netfilter_ipv4/ip_conntrack_helper.h> #include <linux/netfilter_ipv4/ip_conntrack_irc.h> #include <linux/moduleparam.h>
@@ -41,7 +40,7 @@ static int max_dcc_channels = 8;static unsigned int dcc_timeout =300 ;/* This is slow, but it's simple. --RR */ static char irc_buffer[65536 ]; -static DECLARE_LOCK (irc_buffer_lock); +static DEFINE_SPINLOCK (irc_buffer_lock); unsigned int (*ip_nat_irc_hook)(struct sk_buff **pskb, enum ip_conntrack_info ctinfo,
@@ -141,7 +140,7 @@ static int help(struct sk_buff **pskb,if (dataoff >= (*pskb)->len)return NF_ACCEPT ; -LOCK_BH (&irc_buffer_lock); +spin_lock_bh (&irc_buffer_lock); ib_ptr =skb_header_pointer (*pskb, dataoff, (*pskb)->len - dataoff, irc_buffer);BUG_ON (ib_ptr ==NULL );
@@ -237,7 +236,7 @@ static int help(struct sk_buff **pskb, }/* while data < ... */ out: -UNLOCK_BH (&irc_buffer_lock); +spin_unlock_bh (&irc_buffer_lock);return ret; }
net/ipv4/netfilter/ip_conntrack_proto_sctp.c +11 -12
@@ -26,7 +26,6 @@#include <linux/netfilter_ipv4/ip_conntrack.h> #include <linux/netfilter_ipv4/ip_conntrack_protocol.h> -#include <linux/netfilter_ipv4/lockhelp.h> #if 0 #define DEBUGP (format, ...) printk(format, ## __VA_ARGS__)
@@ -35,7 +34,7 @@#endif /* Protects conntrack->proto.sctp */ -static DECLARE_RWLOCK (sctp_lock); +static DEFINE_RWLOCK (sctp_lock);/* FIXME: Examine ipfilter's timeouts and conntrack transitions more closely. They're more complex. --RR
@@ -199,9 +198,9 @@ static int sctp_print_conntrack(struct sDEBUGP (__FUNCTION__);DEBUGP ("\n" ); -READ_LOCK (&sctp_lock); +read_lock_bh (&sctp_lock); state = conntrack->proto.sctp.state; -READ_UNLOCK (&sctp_lock); +read_unlock_bh (&sctp_lock);return seq_printf (s,"%s " , sctp_conntrack_names[state]); }
@@ -343,13 +342,13 @@ static int sctp_packet(struct ip_conntra oldsctpstate = newconntrack =SCTP_CONNTRACK_MAX ; for_each_sctp_chunk (skb, sch, _sch, offset, count) { -WRITE_LOCK (&sctp_lock); +write_lock_bh (&sctp_lock);/* Special cases of Verification tag check (Sec 8.5.1) */ if (sch->type ==SCTP_CID_INIT ) {/* Sec 8.5.1 (A) */ if (sh->vtag !=0 ) { -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock);return -1 ; } }else if (sch->type ==SCTP_CID_ABORT ) {
@@ -357,7 +356,7 @@ static int sctp_packet(struct ip_conntraif (!(sh->vtag == conntrack->proto.sctp.vtag[CTINFO2DIR (ctinfo)]) && !(sh->vtag == conntrack->proto.sctp.vtag [1 -CTINFO2DIR (ctinfo)])) { -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock);return -1 ; } }else if (sch->type ==SCTP_CID_SHUTDOWN_COMPLETE ) {
@@ -366,13 +365,13 @@ static int sctp_packet(struct ip_conntra && !(sh->vtag == conntrack->proto.sctp.vtag [1 - CTINFO2DIR(ctinfo)] && (sch->flags & 1))) { -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock);return -1 ; } }else if (sch->type ==SCTP_CID_COOKIE_ECHO ) {/* Sec 8.5.1 (D) */ if (!(sh->vtag == conntrack->proto.sctp.vtag[CTINFO2DIR (ctinfo)])) { -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock);return -1 ; } }
@@ -384,7 +383,7 @@ static int sctp_packet(struct ip_conntraif (newconntrack ==SCTP_CONNTRACK_MAX ) {DEBUGP ("ip_conntrack_sctp: Invalid dir=%i ctype=%u conntrack=%u\n" ,CTINFO2DIR (ctinfo), sch->type, oldsctpstate); -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock);return -1 ; }
@@ -396,7 +395,7 @@ static int sctp_packet(struct ip_conntra ih =skb_header_pointer (skb, offset +sizeof (sctp_chunkhdr_t),sizeof (_inithdr), &_inithdr);if (ih ==NULL ) { -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock);return -1 ; } DEBUGP("Setting vtag %x for dir %d\n",
@@ -405,7 +404,7 @@ static int sctp_packet(struct ip_conntra } conntrack->proto.sctp.state = newconntrack; -WRITE_UNLOCK (&sctp_lock); +write_unlock_bh (&sctp_lock); }ip_ct_refresh_acct (conntrack, ctinfo, skb, *sctp_timeouts[newconntrack]);
net/ipv4/netfilter/ip_conntrack_proto_tcp.c +13 -14
@@ -36,7 +36,6 @@#include <linux/netfilter_ipv4.h> #include <linux/netfilter_ipv4/ip_conntrack.h> #include <linux/netfilter_ipv4/ip_conntrack_protocol.h> -#include <linux/netfilter_ipv4/lockhelp.h> #if 0 #define DEBUGP printk
@@ -46,7 +45,7 @@#endif /* Protects conntrack->proto.tcp */ -static DECLARE_RWLOCK (tcp_lock); +static DEFINE_RWLOCK (tcp_lock);/* "Be conservative in what you do, be liberal in what you accept from others."
@@ -330,9 +329,9 @@ static int tcp_print_conntrack(struct se {enum tcp_conntrack state; -READ_LOCK (&tcp_lock); +read_lock_bh (&tcp_lock); state = conntrack->proto.tcp.state; -READ_UNLOCK (&tcp_lock); +read_unlock_bh (&tcp_lock);return seq_printf (s,"%s " , tcp_conntrack_names[state]); }
@@ -738,14 +737,14 @@ void ip_conntrack_tcp_update(struct sk_b end =segment_seq_plus_len (ntohl (tcph->seq), skb->len, iph, tcph); -WRITE_LOCK (&tcp_lock); +write_lock_bh (&tcp_lock);/* * We have to worry for the ack in the reply packet only... */ if (after (end, conntrack->proto.tcp.seen[dir].td_end)) conntrack->proto.tcp.seen[dir].td_end = end; conntrack->proto.tcp.last_end = end; -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock); DEBUGP("tcp_update: sender end=%u maxend=%u maxwin=%u scale=%i " "receiver end=%u maxend=%u maxwin=%u scale=%i\n", sender->td_end, sender->td_maxend, sender->td_maxwin,
@@ -857,7 +856,7 @@ static int tcp_packet(struct ip_conntrac sizeof(_tcph), &_tcph);BUG_ON (th ==NULL ); -WRITE_LOCK (&tcp_lock); +write_lock_bh (&tcp_lock); old_state = conntrack->proto.tcp.state; dir =CTINFO2DIR (ctinfo); index =get_conntrack_index (th);
@@ -879,7 +878,7 @@ static int tcp_packet(struct ip_conntrac* that the client cannot but retransmit its SYN and * thus initiate a clean new session. */ -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);if (LOG_INVALID (IPPROTO_TCP ))nf_log_packet (PF_INET ,0 , skb,NULL ,NULL ,"ip_ct_tcp: killing out of sync session " );
@@ -894,7 +893,7 @@ static int tcp_packet(struct ip_conntrac conntrack->proto.tcp.last_end =segment_seq_plus_len (ntohl (th->seq), skb->len, iph, th); -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);if (LOG_INVALID (IPPROTO_TCP ))nf_log_packet (PF_INET ,0 , skb,NULL ,NULL ,"ip_ct_tcp: invalid packet ignored " );
@@ -904,7 +903,7 @@ static int tcp_packet(struct ip_conntracDEBUGP ("ip_ct_tcp: Invalid dir=%i index=%u ostate=%u\n" , dir,get_conntrack_index (th), old_state); -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);if (LOG_INVALID (IPPROTO_TCP ))nf_log_packet (PF_INET ,0 , skb,NULL ,NULL ,"ip_ct_tcp: invalid state " );
@@ -918,13 +917,13 @@ static int tcp_packet(struct ip_conntrac conntrack->proto.tcp.seen[dir].td_end)) {/* Attempt to reopen a closed connection. * Delete this connection and look up again. */ -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);if (del_timer (&conntrack->timeout)) conntrack->timeout.function ((unsigned long ) conntrack);return -NF_REPEAT ; } else { -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);if (LOG_INVALID (IPPROTO_TCP ))nf_log_packet (PF_INET ,0 , skb,NULL ,NULL ,"ip_ct_tcp: invalid SYN" );
@@ -949,7 +948,7 @@ static int tcp_packet(struct ip_conntracif (!tcp_in_window (&conntrack->proto.tcp, dir, index, skb, iph, th)) { -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);return -NF_ACCEPT ; } in_window:
@@ -972,7 +971,7 @@ static int tcp_packet(struct ip_conntrac timeout = conntrack->proto.tcp.retrans >= ip_ct_tcp_max_retrans && *tcp_timeouts[new_state] > ip_ct_tcp_timeout_max_retrans ? ip_ct_tcp_timeout_max_retrans : *tcp_timeouts[new_state]; -WRITE_UNLOCK (&tcp_lock); +write_unlock_bh (&tcp_lock);if (!test_bit (IPS_SEEN_REPLY_BIT , &conntrack->status)) {/* If only reply is a RST, we can consider ourselves not to
net/ipv4/netfilter/ip_conntrack_standalone.c +11 -11
@@ -28,8 +28,8 @@#include <net/checksum.h> #include <net/ip.h> -#define ASSERT_READ_LOCK (x) MUST_BE_READ_LOCKED(&ip_conntrack_lock) -#define ASSERT_WRITE_LOCK (x) MUST_BE_WRITE_LOCKED(&ip_conntrack_lock) +#define ASSERT_READ_LOCK (x) +#define ASSERT_WRITE_LOCK (x)#include <linux/netfilter_ipv4/ip_conntrack.h> #include <linux/netfilter_ipv4/ip_conntrack_protocol.h>
@@ -119,7 +119,7 @@ static struct list_head *ct_get_idx(strustatic void *ct_seq_start (struct seq_file *seq,loff_t *pos) { -READ_LOCK (&ip_conntrack_lock); +read_lock_bh (&ip_conntrack_lock);return ct_get_idx (seq, *pos); }
@@ -131,7 +131,7 @@ static void *ct_seq_next(struct seq_filestatic void ct_seq_stop (struct seq_file *s,void *v) { -READ_UNLOCK (&ip_conntrack_lock); +read_unlock_bh (&ip_conntrack_lock); }static int ct_seq_show (struct seq_file *s,void *v)
@@ -140,7 +140,7 @@ static int ct_seq_show(struct seq_file *const struct ip_conntrack *conntrack =tuplehash_to_ctrack (hash);struct ip_conntrack_protocol *proto; -MUST_BE_READ_LOCKED (&ip_conntrack_lock); +ASSERT_READ_LOCK (&ip_conntrack_lock);IP_NF_ASSERT (conntrack);/* we only want to print DIR_ORIGINAL */
@@ -239,7 +239,7 @@ static void *exp_seq_start(struct seq_fi/* strange seq_file api calls stop even if we fail, * thus we need to grab lock since stop unlocks */ -READ_LOCK (&ip_conntrack_lock); +read_lock_bh (&ip_conntrack_lock);if (list_empty (e))return NULL ;
@@ -267,7 +267,7 @@ static void *exp_seq_next(struct seq_filstatic void exp_seq_stop (struct seq_file *s,void *v) { -READ_UNLOCK (&ip_conntrack_lock); +read_unlock_bh (&ip_conntrack_lock); }static int exp_seq_show (struct seq_file *s,void *v)
@@ -921,22 +921,22 @@ int ip_conntrack_protocol_register(struc {int ret =0 ; -WRITE_LOCK (&ip_conntrack_lock); +write_lock_bh (&ip_conntrack_lock);if (ip_ct_protos[proto->proto] != &ip_conntrack_generic_protocol) { ret = -EBUSY ; goto out; } ip_ct_protos[proto->proto] = proto; out: -WRITE_UNLOCK (&ip_conntrack_lock); +write_unlock_bh (&ip_conntrack_lock);return ret; }void ip_conntrack_protocol_unregister (struct ip_conntrack_protocol *proto) { -WRITE_LOCK (&ip_conntrack_lock); +write_lock_bh (&ip_conntrack_lock); ip_ct_protos[proto->proto] = &ip_conntrack_generic_protocol; -WRITE_UNLOCK (&ip_conntrack_lock); +write_unlock_bh (&ip_conntrack_lock);/* Somebody could be still looking at the proto in bh. */ synchronize_net ();
net/ipv4/netfilter/ip_nat_core.c +16 -16
@@ -22,8 +22,8 @@#include <linux/udp.h> #include <linux/jhash.h> -#define ASSERT_READ_LOCK (x) MUST_BE_READ_LOCKED(&ip_nat_lock) -#define ASSERT_WRITE_LOCK (x) MUST_BE_WRITE_LOCKED(&ip_nat_lock) +#define ASSERT_READ_LOCK (x) +#define ASSERT_WRITE_LOCK (x)#include <linux/netfilter_ipv4/ip_conntrack.h> #include <linux/netfilter_ipv4/ip_conntrack_core.h>
@@ -41,7 +41,7 @@ #define DEBUGP(format, args...)#endif -DECLARE_RWLOCK (ip_nat_lock); +DEFINE_RWLOCK (ip_nat_lock);/* Calculated at init based on memory size */ static unsigned int ip_nat_htable_size;
@@ -65,9 +65,9 @@ static void ip_nat_cleanup_conntrack(strif (!(conn->status &IPS_NAT_DONE_MASK ))return ; -WRITE_LOCK (&ip_nat_lock); +write_lock_bh (&ip_nat_lock);list_del (&conn->nat.info.bysource); -WRITE_UNLOCK (&ip_nat_lock); +write_unlock_bh (&ip_nat_lock); }/* We do checksum mangling, so if they were wrong before they're still
@@ -142,7 +142,7 @@ find_appropriate_src(const struct ip_conunsigned int h =hash_by_src (tuple);struct ip_conntrack *ct; -READ_LOCK (&ip_nat_lock); +read_lock_bh (&ip_nat_lock);list_for_each_entry (ct, &bysource[h], nat.info.bysource) {if (same_src (ct, tuple)) {/* Copy source part from reply tuple. */
@@ -151,12 +151,12 @@ find_appropriate_src(const struct ip_con result->dst = tuple->dst;if (in_range (result, range)) { -READ_UNLOCK (&ip_nat_lock); +read_unlock_bh (&ip_nat_lock);return 1 ; } } } -READ_UNLOCK (&ip_nat_lock); +read_unlock_bh (&ip_nat_lock);return 0 ; }
@@ -297,9 +297,9 @@ ip_nat_setup_info(struct ip_conntrack *cunsigned int srchash =hash_by_src (&conntrack->tuplehash[IP_CT_DIR_ORIGINAL ] .tuple); -WRITE_LOCK (&ip_nat_lock); +write_lock_bh (&ip_nat_lock);list_add (&info->bysource, &bysource[srchash]); -WRITE_UNLOCK (&ip_nat_lock); +write_unlock_bh (&ip_nat_lock); }/* It's done. */
@@ -474,23 +474,23 @@ int ip_nat_protocol_register(struct ip_n {int ret =0 ; -WRITE_LOCK (&ip_nat_lock); +write_lock_bh (&ip_nat_lock);if (ip_nat_protos[proto->protonum] != &ip_nat_unknown_protocol) { ret = -EBUSY ; goto out; } ip_nat_protos[proto->protonum] = proto; out: -WRITE_UNLOCK (&ip_nat_lock); +write_unlock_bh (&ip_nat_lock);return ret; }/* Noone stores the protocol anywhere; simply delete it. */ void ip_nat_protocol_unregister (struct ip_nat_protocol *proto) { -WRITE_LOCK (&ip_nat_lock); +write_lock_bh (&ip_nat_lock); ip_nat_protos[proto->protonum] = &ip_nat_unknown_protocol; -WRITE_UNLOCK (&ip_nat_lock); +write_unlock_bh (&ip_nat_lock);/* Someone could be still looking at the proto in a bh. */ synchronize_net ();
@@ -509,13 +509,13 @@ int __init ip_nat_init(void)return -ENOMEM ;/* Sew in builtin protocols. */ -WRITE_LOCK (&ip_nat_lock); +write_lock_bh (&ip_nat_lock);for (i =0 ; i <MAX_IP_NAT_PROTO ; i++) ip_nat_protos[i] = &ip_nat_unknown_protocol; ip_nat_protos[IPPROTO_TCP ] = &ip_nat_protocol_tcp; ip_nat_protos[IPPROTO_UDP ] = &ip_nat_protocol_udp; ip_nat_protos[IPPROTO_ICMP ] = &ip_nat_protocol_icmp; -WRITE_UNLOCK (&ip_nat_lock); +write_unlock_bh (&ip_nat_lock);for (i =0 ; i < ip_nat_htable_size; i++) {INIT_LIST_HEAD (&bysource[i]);
net/ipv4/netfilter/ip_nat_helper.c +5 -5
@@ -28,8 +28,8 @@#include <net/tcp.h> #include <net/udp.h> -#define ASSERT_READ_LOCK (x) MUST_BE_READ_LOCKED(&ip_nat_lock) -#define ASSERT_WRITE_LOCK (x) MUST_BE_WRITE_LOCKED(&ip_nat_lock) +#define ASSERT_READ_LOCK (x) +#define ASSERT_WRITE_LOCK (x)#include <linux/netfilter_ipv4/ip_conntrack.h> #include <linux/netfilter_ipv4/ip_conntrack_helper.h>
@@ -47,7 +47,7 @@#define DUMP_OFFSET (x)#endif -static DECLARE_LOCK (ip_nat_seqofs_lock); +static DEFINE_SPINLOCK (ip_nat_seqofs_lock);/* Setup TCP sequence correction given this change at this sequence */ static inline void
@@ -70,7 +70,7 @@ adjust_tcp_sequence(u32 seq,DEBUGP ("ip_nat_resize_packet: Seq_offset before: " );DUMP_OFFSET (this_way); -LOCK_BH (&ip_nat_seqofs_lock); +spin_lock_bh (&ip_nat_seqofs_lock);/* SYN adjust. If it's uninitialized, or this is after last * correction, record it: we don't handle more than one
@@ -82,7 +82,7 @@ adjust_tcp_sequence(u32 seq, this_way->offset_before = this_way->offset_after; this_way->offset_after += sizediff; } -UNLOCK_BH (&ip_nat_seqofs_lock); +spin_unlock_bh (&ip_nat_seqofs_lock);DEBUGP ("ip_nat_resize_packet: Seq_offset after: " );DUMP_OFFSET (this_way);
net/ipv4/netfilter/ip_nat_rule.c +2 -2
@@ -19,8 +19,8 @@#include <net/route.h> #include <linux/bitops.h> -#define ASSERT_READ_LOCK (x) MUST_BE_READ_LOCKED(&ip_nat_lock) -#define ASSERT_WRITE_LOCK (x) MUST_BE_WRITE_LOCKED(&ip_nat_lock) +#define ASSERT_READ_LOCK (x) +#define ASSERT_WRITE_LOCK (x)#include <linux/netfilter_ipv4/ip_tables.h> #include <linux/netfilter_ipv4/ip_nat.h>
net/ipv4/netfilter/ip_nat_standalone.c +2 -3
@@ -31,8 +31,8 @@#include <net/checksum.h> #include <linux/spinlock.h> -#define ASSERT_READ_LOCK (x) MUST_BE_READ_LOCKED(&ip_nat_lock) -#define ASSERT_WRITE_LOCK (x) MUST_BE_WRITE_LOCKED(&ip_nat_lock) +#define ASSERT_READ_LOCK (x) +#define ASSERT_WRITE_LOCK (x)#include <linux/netfilter_ipv4/ip_nat.h> #include <linux/netfilter_ipv4/ip_nat_rule.h>
@@ -373,7 +373,6 @@ static int init_or_cleanup(int init) cleanup_rule_init:ip_nat_rule_cleanup (); cleanup_nothing: -MUST_BE_READ_WRITE_UNLOCKED (&ip_nat_lock);return ret; }
net/ipv4/netfilter/ip_tables.c +0 -1
@@ -67,7 +67,6 @@ static DECLARE_MUTEX(ipt_mutex);/* Must have mutex */ #define ASSERT_READ_LOCK (x) IP_NF_ASSERT(down_trylock(&ipt_mutex) != 0)#define ASSERT_WRITE_LOCK (x) IP_NF_ASSERT(down_trylock(&ipt_mutex) != 0) -#include <linux/netfilter_ipv4/lockhelp.h> #include <linux/netfilter_ipv4/listhelp.h> #if 0
net/ipv4/netfilter/ipt_CLUSTERIP.c +25 -24
166 lines not on this page · raw message
net/ipv4/netfilter/ipt_MASQUERADE.c +5 -5
@@ -33,7 +33,7 @@ MODULE_DESCRIPTION("iptables MASQUERADE#endif /* Lock protects masq region inside conntrack */ -static DECLARE_RWLOCK (masq_lock); +static DEFINE_RWLOCK (masq_lock);/* FIXME: Multiple targets. --RR */ static int
@@ -103,9 +103,9 @@ masquerade_target(struct sk_buff **pskb,return NF_DROP ; } -WRITE_LOCK (&masq_lock); +write_lock_bh (&masq_lock); ct->nat.masq_index = out->ifindex; -WRITE_UNLOCK (&masq_lock); +write_unlock_bh (&masq_lock);/* Transfer from original range. */ newrange = ((struct ip_nat_range)
@@ -122,9 +122,9 @@ device_cmp(struct ip_conntrack *i, void {int ret; -READ_LOCK (&masq_lock); +read_lock_bh (&masq_lock); ret = (i->nat.masq_index == (int )(long )ifindex); -READ_UNLOCK (&masq_lock); +read_unlock_bh (&masq_lock);return ret; }
net/ipv4/netfilter/ipt_ULOG.c +7 -8
@@ -56,7 +56,6 @@#include <linux/netfilter.h> #include <linux/netfilter_ipv4/ip_tables.h> #include <linux/netfilter_ipv4/ipt_ULOG.h> -#include <linux/netfilter_ipv4/lockhelp.h> #include <net/sock.h> #include <linux/bitops.h>
@@ -99,8 +98,8 @@ typedef struct {static ulog_buff_t ulog_buffers[ULOG_MAXNLGROUPS ];/* array of buffers */ -static struct sock *nflognl;/* our socket */ -static DECLARE_LOCK (ulog_lock);/* spinlock */ +static struct sock *nflognl;/* our socket */ +static DEFINE_SPINLOCK (ulog_lock);/* spinlock */ /* send one ulog_buff_t to userspace */ static void ulog_send (unsigned int nlgroupnum)
@@ -135,9 +134,9 @@ static void ulog_timer(unsigned long dat/* lock to protect against somebody modifying our structure * from ipt_ulog_target at the same time */ -LOCK_BH (&ulog_lock); +spin_lock_bh (&ulog_lock);ulog_send (data); -UNLOCK_BH (&ulog_lock); +spin_unlock_bh (&ulog_lock); }static struct sk_buff *ulog_alloc_skb (unsigned int size)
@@ -193,7 +192,7 @@ static void ipt_ulog_packet(unsigned int ub = &ulog_buffers[groupnum]; -LOCK_BH (&ulog_lock); +spin_lock_bh (&ulog_lock);if (!ub->skb) {if (!(ub->skb =ulog_alloc_skb (size)))
@@ -278,7 +277,7 @@ static void ipt_ulog_packet(unsigned intulog_send (groupnum); } -UNLOCK_BH (&ulog_lock); +spin_unlock_bh (&ulog_lock);return ;
@@ -288,7 +287,7 @@ nlmsg_failure: alloc_failure:PRINTR ("ipt_ULOG: Error building netlink message\n" ); -UNLOCK_BH (&ulog_lock); +spin_unlock_bh (&ulog_lock); } static unsigned int ipt_ulog_target(struct sk_buff **pskb,
net/ipv4/netfilter/ipt_hashlimit.c +8 -9
@@ -37,7 +37,6 @@#include <linux/netfilter_ipv4/ip_tables.h> #include <linux/netfilter_ipv4/ipt_hashlimit.h> -#include <linux/netfilter_ipv4/lockhelp.h> /* FIXME: this is just for IP_NF_ASSERRT */ #include <linux/netfilter_ipv4/ip_conntrack.h>
@@ -92,7 +91,7 @@ struct ipt_hashlimit_htable {struct hlist_head hash[0 ];/* hashtable itself */ }; -static DECLARE_LOCK (hashlimit_lock);/* protects htables list */ +static DEFINE_SPINLOCK (hashlimit_lock);/* protects htables list */ static DECLARE_MUTEX (hlimit_mutex);/* additional checkentry protection */ static HLIST_HEAD (hashlimit_htables);static kmem_cache_t *hashlimit_cachep;
@@ -233,9 +232,9 @@ static int htable_create(struct ipt_hash hinfo->timer.function = htable_gc;add_timer (&hinfo->timer); -LOCK_BH (&hashlimit_lock); +spin_lock_bh (&hashlimit_lock);hlist_add_head (&hinfo->node, &hashlimit_htables); -UNLOCK_BH (&hashlimit_lock); +spin_unlock_bh (&hashlimit_lock);return 0 ; }
@@ -301,15 +300,15 @@ static struct ipt_hashlimit_htable *htabstruct ipt_hashlimit_htable *hinfo;struct hlist_node *pos; -LOCK_BH (&hashlimit_lock); +spin_lock_bh (&hashlimit_lock);hlist_for_each_entry (hinfo, pos, &hashlimit_htables, node) {if (!strcmp (name, hinfo->pde->name)) {atomic_inc (&hinfo->use); -UNLOCK_BH (&hashlimit_lock); +spin_unlock_bh (&hashlimit_lock);return hinfo; } } -UNLOCK_BH (&hashlimit_lock); +spin_unlock_bh (&hashlimit_lock);return NULL ; }
@@ -317,9 +316,9 @@ static struct ipt_hashlimit_htable *htabstatic void htable_put (struct ipt_hashlimit_htable *hinfo) {if (atomic_dec_and_test (&hinfo->use)) { -LOCK_BH (&hashlimit_lock); +spin_lock_bh (&hashlimit_lock);hlist_del (&hinfo->node); -UNLOCK_BH (&hashlimit_lock); +spin_unlock_bh (&hashlimit_lock);htable_destroy (hinfo); } }
net/ipv4/netfilter/ipt_helper.c +2 -2
@@ -53,7 +53,7 @@ match(const struct sk_buff *skb,return ret; } -READ_LOCK (&ip_conntrack_lock); +read_lock_bh (&ip_conntrack_lock);if (!ct->master->helper) {DEBUGP ("ipt_helper: master ct %p has no helper\n" , exp->expectant);
@@ -69,7 +69,7 @@ match(const struct sk_buff *skb, ret ^= !strncmp (ct->master->helper->name, info->name,strlen (ct->master->helper->name)); out_unlock: -READ_UNLOCK (&ip_conntrack_lock); +read_unlock_bh (&ip_conntrack_lock);return ret; }
net/ipv6/netfilter/ip6_tables.c +0 -1
@@ -71,7 +71,6 @@ static DECLARE_MUTEX(ip6t_mutex);/* Must have mutex */ #define ASSERT_READ_LOCK (x) IP_NF_ASSERT(down_trylock(&ip6t_mutex) != 0)#define ASSERT_WRITE_LOCK (x) IP_NF_ASSERT(down_trylock(&ip6t_mutex) != 0) -#include <linux/netfilter_ipv4/lockhelp.h> #include <linux/netfilter_ipv4/listhelp.h> #if 0