]> err.no Git - linux-2.6/commitdiff
[NETFILTER]: x_tables: mark matches and targets __read_mostly
authorPatrick McHardy <kaber@trash.net>
Sun, 8 Jul 2007 05:22:02 +0000 (22:22 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 11 Jul 2007 05:17:15 +0000 (22:17 -0700)
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
73 files changed:
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/arpt_mangle.c
net/ipv4/netfilter/ip_tables.c
net/ipv4/netfilter/ipt_CLUSTERIP.c
net/ipv4/netfilter/ipt_ECN.c
net/ipv4/netfilter/ipt_LOG.c
net/ipv4/netfilter/ipt_MASQUERADE.c
net/ipv4/netfilter/ipt_NETMAP.c
net/ipv4/netfilter/ipt_REDIRECT.c
net/ipv4/netfilter/ipt_REJECT.c
net/ipv4/netfilter/ipt_SAME.c
net/ipv4/netfilter/ipt_TOS.c
net/ipv4/netfilter/ipt_TTL.c
net/ipv4/netfilter/ipt_ULOG.c
net/ipv4/netfilter/ipt_addrtype.c
net/ipv4/netfilter/ipt_ah.c
net/ipv4/netfilter/ipt_ecn.c
net/ipv4/netfilter/ipt_iprange.c
net/ipv4/netfilter/ipt_owner.c
net/ipv4/netfilter/ipt_recent.c
net/ipv4/netfilter/ipt_tos.c
net/ipv4/netfilter/ipt_ttl.c
net/ipv4/netfilter/nf_nat_rule.c
net/ipv6/netfilter/ip6_tables.c
net/ipv6/netfilter/ip6t_HL.c
net/ipv6/netfilter/ip6t_LOG.c
net/ipv6/netfilter/ip6t_REJECT.c
net/ipv6/netfilter/ip6t_ah.c
net/ipv6/netfilter/ip6t_eui64.c
net/ipv6/netfilter/ip6t_frag.c
net/ipv6/netfilter/ip6t_hbh.c
net/ipv6/netfilter/ip6t_hl.c
net/ipv6/netfilter/ip6t_ipv6header.c
net/ipv6/netfilter/ip6t_mh.c
net/ipv6/netfilter/ip6t_owner.c
net/ipv6/netfilter/ip6t_rt.c
net/netfilter/xt_CLASSIFY.c
net/netfilter/xt_CONNMARK.c
net/netfilter/xt_CONNSECMARK.c
net/netfilter/xt_DSCP.c
net/netfilter/xt_MARK.c
net/netfilter/xt_NFLOG.c
net/netfilter/xt_NFQUEUE.c
net/netfilter/xt_NOTRACK.c
net/netfilter/xt_SECMARK.c
net/netfilter/xt_TCPMSS.c
net/netfilter/xt_TRACE.c
net/netfilter/xt_comment.c
net/netfilter/xt_connbytes.c
net/netfilter/xt_connmark.c
net/netfilter/xt_conntrack.c
net/netfilter/xt_dccp.c
net/netfilter/xt_dscp.c
net/netfilter/xt_esp.c
net/netfilter/xt_hashlimit.c
net/netfilter/xt_helper.c
net/netfilter/xt_length.c
net/netfilter/xt_limit.c
net/netfilter/xt_mac.c
net/netfilter/xt_mark.c
net/netfilter/xt_multiport.c
net/netfilter/xt_physdev.c
net/netfilter/xt_pkttype.c
net/netfilter/xt_policy.c
net/netfilter/xt_quota.c
net/netfilter/xt_realm.c
net/netfilter/xt_sctp.c
net/netfilter/xt_state.c
net/netfilter/xt_statistic.c
net/netfilter/xt_string.c
net/netfilter/xt_tcpmss.c
net/netfilter/xt_tcpudp.c
net/netfilter/xt_u32.c

index 1d75a5cd7b4441c8911150fbcd3d88523a3c09ca..e981232942a18017cfbdf79ed2461f8bdc649191 100644 (file)
@@ -1140,13 +1140,13 @@ void arpt_unregister_table(struct arpt_table *table)
 }
 
 /* The built-in targets: standard (NULL) and error. */
-static struct arpt_target arpt_standard_target = {
+static struct arpt_target arpt_standard_target __read_mostly = {
        .name           = ARPT_STANDARD_TARGET,
        .targetsize     = sizeof(int),
        .family         = NF_ARP,
 };
 
-static struct arpt_target arpt_error_target = {
+static struct arpt_target arpt_error_target __read_mostly = {
        .name           = ARPT_ERROR_TARGET,
        .target         = arpt_error,
        .targetsize     = ARPT_FUNCTION_MAXNAMELEN,
index 497a16e0b0645305b1f786881f1c464c9520d2cc..c4bdab47597f071c35cb73f45570552777c8ad48 100644 (file)
@@ -81,7 +81,7 @@ checkentry(const char *tablename, const void *e, const struct xt_target *target,
        return true;
 }
 
-static struct arpt_target arpt_mangle_reg = {
+static struct arpt_target arpt_mangle_reg __read_mostly = {
        .name           = "mangle",
        .target         = target,
        .targetsize     = sizeof(struct arpt_mangle),
index 650ab52e915799375e597e12e179f50acbb35103..2ba5bd9c8c1bb2087c5ff430f22867ae325463b1 100644 (file)
@@ -2264,7 +2264,7 @@ icmp_checkentry(const char *tablename,
 }
 
 /* The built-in targets: standard (NULL) and error. */
-static struct xt_target ipt_standard_target = {
+static struct xt_target ipt_standard_target __read_mostly = {
        .name           = IPT_STANDARD_TARGET,
        .targetsize     = sizeof(int),
        .family         = AF_INET,
@@ -2275,7 +2275,7 @@ static struct xt_target ipt_standard_target = {
 #endif
 };
 
-static struct xt_target ipt_error_target = {
+static struct xt_target ipt_error_target __read_mostly = {
        .name           = IPT_ERROR_TARGET,
        .target         = ipt_error,
        .targetsize     = IPT_FUNCTION_MAXNAMELEN,
@@ -2298,7 +2298,7 @@ static struct nf_sockopt_ops ipt_sockopts = {
 #endif
 };
 
-static struct xt_match icmp_matchstruct = {
+static struct xt_match icmp_matchstruct __read_mostly = {
        .name           = "icmp",
        .match          = icmp_match,
        .matchsize      = sizeof(struct ipt_icmp),
index 5de13b44b1ca8942181657ae727b55ab94174711..1cef3b09c3261973846969e6cf6ee566caf455f9 100644 (file)
@@ -466,7 +466,7 @@ static void destroy(const struct xt_target *target, void *targinfo)
        nf_ct_l3proto_module_put(target->family);
 }
 
-static struct xt_target clusterip_tgt = {
+static struct xt_target clusterip_tgt __read_mostly = {
        .name           = "CLUSTERIP",
        .family         = AF_INET,
        .target         = target,
index a647c1db86ddc5d45a93f20e5dc5e4cb60f3013a..f1253bd3837f11d78c530351068dc514a3ecfcc1 100644 (file)
@@ -128,7 +128,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target ipt_ecn_reg = {
+static struct xt_target ipt_ecn_reg __read_mostly = {
        .name           = "ECN",
        .family         = AF_INET,
        .target         = target,
index bcc43a625e72988e5f8b6de63f3cec38ccae06d3..9bfce614ec28c10530ac59e0bfde2d7f0b42d6fb 100644 (file)
@@ -463,7 +463,7 @@ static bool ipt_log_checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target ipt_log_reg = {
+static struct xt_target ipt_log_reg __read_mostly = {
        .name           = "LOG",
        .family         = AF_INET,
        .target         = ipt_log_target,
index f136ef7f23f85de9b32cec4efb740edd5678e91f..bc033e0f424d17eb86286ddfd9df6bb63dacbcf1 100644 (file)
@@ -169,7 +169,7 @@ static struct notifier_block masq_inet_notifier = {
        .notifier_call  = masq_inet_event,
 };
 
-static struct xt_target masquerade = {
+static struct xt_target masquerade __read_mostly = {
        .name           = "MASQUERADE",
        .family         = AF_INET,
        .target         = masquerade_target,
index a902c71218bf4639e448c2896ace24b7c004f75d..0a7ce15bbdd0e1d4ebc661b59fc7a074012f49ce 100644 (file)
@@ -85,7 +85,7 @@ target(struct sk_buff **pskb,
        return nf_nat_setup_info(ct, &newrange, hooknum);
 }
 
-static struct xt_target target_module = {
+static struct xt_target target_module __read_mostly = {
        .name           = MODULENAME,
        .family         = AF_INET,
        .target         = target,
index 2a04103b50d18a5668e5e8887e176832e0ec9f02..61e1e4772e3720f042ddab95d8ecc5ed17fd9ad3 100644 (file)
@@ -101,7 +101,7 @@ redirect_target(struct sk_buff **pskb,
        return nf_nat_setup_info(ct, &newrange, hooknum);
 }
 
-static struct xt_target redirect_reg = {
+static struct xt_target redirect_reg __read_mostly = {
        .name           = "REDIRECT",
        .family         = AF_INET,
        .target         = redirect_target,
index 90f7b70937853d3d9f27b0acb6a9423fa35fd227..dd5432c3f36531706e22db44e641f0b1c69251f8 100644 (file)
@@ -240,7 +240,7 @@ static bool check(const char *tablename,
        return true;
 }
 
-static struct xt_target ipt_reject_reg = {
+static struct xt_target ipt_reject_reg __read_mostly = {
        .name           = "REJECT",
        .family         = AF_INET,
        .target         = reject,
index 3649fabc04ea9f8beb147569b6fbe8157caaf0ea..3a0d7dac0af826b208edd490ac25f67d7d9641a9 100644 (file)
@@ -161,7 +161,7 @@ same_target(struct sk_buff **pskb,
        return nf_nat_setup_info(ct, &newrange, hooknum);
 }
 
-static struct xt_target same_reg = {
+static struct xt_target same_reg __read_mostly = {
        .name           = "SAME",
        .family         = AF_INET,
        .target         = same_target,
index ac43e86afbcf5775ee011ee2a96b1ec91e725f99..25f5d0b3906523b9a0e0fc2fd4f0758ce69fb95f 100644 (file)
@@ -63,7 +63,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target ipt_tos_reg = {
+static struct xt_target ipt_tos_reg __read_mostly = {
        .name           = "TOS",
        .family         = AF_INET,
        .target         = target,
index 737830b68adeb92c7e53039f1c3a2b37c43b9588..2b54e7b0cfe84f707b3ee2cbded965d5457b7d44 100644 (file)
@@ -80,7 +80,7 @@ static bool ipt_ttl_checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target ipt_TTL = {
+static struct xt_target ipt_TTL __read_mostly = {
        .name           = "TTL",
        .family         = AF_INET,
        .target         = ipt_ttl_target,
index 5b25ca688784bec4a6821edd6efbedf52472ee99..226750d1f89b2455816039a3321c77acebbd4041 100644 (file)
@@ -381,7 +381,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif /* CONFIG_COMPAT */
 
-static struct xt_target ipt_ulog_reg = {
+static struct xt_target ipt_ulog_reg __read_mostly = {
        .name           = "ULOG",
        .family         = AF_INET,
        .target         = ipt_ulog_target,
index abea446a4437c0656bf2ba013a255258a7ba3e3c..59f01f7ba6b47c20653674d5693b142421d51e0a 100644 (file)
@@ -44,7 +44,7 @@ static bool match(const struct sk_buff *skb,
        return ret;
 }
 
-static struct xt_match addrtype_match = {
+static struct xt_match addrtype_match __read_mostly = {
        .name           = "addrtype",
        .family         = AF_INET,
        .match          = match,
index 49d503cbab09eb72cb4847aeb894cb2028ae7752..61b017fd743c14987fea3038b1781bfb2ee7634d 100644 (file)
@@ -88,7 +88,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match ah_match = {
+static struct xt_match ah_match __read_mostly = {
        .name           = "ah",
        .family         = AF_INET,
        .match          = match,
index 3129e31061625a1ebaf899ec1467de567e9aafd1..d6925c6740692a730c64fc6313bc788fd8a72e45 100644 (file)
@@ -111,7 +111,7 @@ static bool checkentry(const char *tablename, const void *ip_void,
        return true;
 }
 
-static struct xt_match ecn_match = {
+static struct xt_match ecn_match __read_mostly = {
        .name           = "ecn",
        .family         = AF_INET,
        .match          = match,
index 854281c6200880cd41d7e75ad806bc4c54ecf9eb..6a3a033a680835b47164d3f2e157d8a24e56665f 100644 (file)
@@ -63,7 +63,7 @@ match(const struct sk_buff *skb,
        return true;
 }
 
-static struct xt_match iprange_match = {
+static struct xt_match iprange_match __read_mostly = {
        .name           = "iprange",
        .family         = AF_INET,
        .match          = match,
index deea4b8cc05525278654c2f60bdccd17413d194d..b14e77da7a336de78c9db7991e2b5d40bd173888 100644 (file)
@@ -68,7 +68,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match owner_match = {
+static struct xt_match owner_match __read_mostly = {
        .name           = "owner",
        .family         = AF_INET,
        .match          = match,
index 68f7181e412d6336f8b6c4861f9b26b63716c4cd..a7b14f2ae2dc0c433180e0e381354d17ae66fbf6 100644 (file)
@@ -460,7 +460,7 @@ static const struct file_operations recent_fops = {
 };
 #endif /* CONFIG_PROC_FS */
 
-static struct xt_match recent_match = {
+static struct xt_match recent_match __read_mostly = {
        .name           = "recent",
        .family         = AF_INET,
        .match          = ipt_recent_match,
index 67699ae46d370b72e02f2f9b1d637bc783fca289..e740441c973d17c1f684913a6cdba93c223886b3 100644 (file)
@@ -33,7 +33,7 @@ match(const struct sk_buff *skb,
        return (ip_hdr(skb)->tos == info->tos) ^ info->invert;
 }
 
-static struct xt_match tos_match = {
+static struct xt_match tos_match __read_mostly = {
        .name           = "tos",
        .family         = AF_INET,
        .match          = match,
index 59a644db4d74b961560934b36d8e90b79190d78a..a439900a4ba5caa5066946aea2fff7350fde60f0 100644 (file)
@@ -44,7 +44,7 @@ static bool match(const struct sk_buff *skb,
        return false;
 }
 
-static struct xt_match ttl_match = {
+static struct xt_match ttl_match __read_mostly = {
        .name           = "ttl",
        .family         = AF_INET,
        .match          = match,
index ea1a07c74fe3946649544b325453b5b92322ff69..080393a143d7596dfb7ef25276e02846e835da7f 100644 (file)
@@ -228,7 +228,7 @@ int nf_nat_rule_find(struct sk_buff **pskb,
        return ret;
 }
 
-static struct xt_target ipt_snat_reg = {
+static struct xt_target ipt_snat_reg __read_mostly = {
        .name           = "SNAT",
        .target         = ipt_snat_target,
        .targetsize     = sizeof(struct nf_nat_multi_range_compat),
@@ -238,7 +238,7 @@ static struct xt_target ipt_snat_reg = {
        .family         = AF_INET,
 };
 
-static struct xt_target ipt_dnat_reg = {
+static struct xt_target ipt_dnat_reg __read_mostly = {
        .name           = "DNAT",
        .target         = ipt_dnat_target,
        .targetsize     = sizeof(struct nf_nat_multi_range_compat),
index 4f93b79163aacab70a4c1fb14414928e9cb7d621..254c769b750a21b1a8062d469bfbf2fb8e7c8d5b 100644 (file)
@@ -1441,13 +1441,13 @@ icmp6_checkentry(const char *tablename,
 }
 
 /* The built-in targets: standard (NULL) and error. */
-static struct xt_target ip6t_standard_target = {
+static struct xt_target ip6t_standard_target __read_mostly = {
        .name           = IP6T_STANDARD_TARGET,
        .targetsize     = sizeof(int),
        .family         = AF_INET6,
 };
 
-static struct xt_target ip6t_error_target = {
+static struct xt_target ip6t_error_target __read_mostly = {
        .name           = IP6T_ERROR_TARGET,
        .target         = ip6t_error,
        .targetsize     = IP6T_FUNCTION_MAXNAMELEN,
@@ -1464,7 +1464,7 @@ static struct nf_sockopt_ops ip6t_sockopts = {
        .get            = do_ip6t_get_ctl,
 };
 
-static struct xt_match icmp6_matchstruct = {
+static struct xt_match icmp6_matchstruct __read_mostly = {
        .name           = "icmp6",
        .match          = &icmp6_match,
        .matchsize      = sizeof(struct ip6t_icmp),
index 33c4cb8a5c4383d7e48444e90e5e6692a0e0b86f..ad4d94310b8734ab145ef79e443acaa3550e719f 100644 (file)
@@ -79,7 +79,7 @@ static bool ip6t_hl_checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target ip6t_HL = {
+static struct xt_target ip6t_HL __read_mostly = {
        .name           = "HL",
        .family         = AF_INET6,
        .target         = ip6t_hl_target,
index 996168d2ca2590cf2f18d29e301c63ae18098275..540bf14b851c565c2379fef49cef694b1e905d84 100644 (file)
@@ -477,7 +477,7 @@ static bool ip6t_log_checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target ip6t_log_reg = {
+static struct xt_target ip6t_log_reg __read_mostly = {
        .name           = "LOG",
        .family         = AF_INET6,
        .target         = ip6t_log_target,
index 0fa1f2cf9fba5664b2882ec0159f44ffda0936cb..14008dc6a197ae9a93a08aa36341c673d840d308 100644 (file)
@@ -244,7 +244,7 @@ static bool check(const char *tablename,
        return true;
 }
 
-static struct xt_target ip6t_reject_reg = {
+static struct xt_target ip6t_reject_reg __read_mostly = {
        .name           = "REJECT",
        .family         = AF_INET6,
        .target         = reject6_target,
index fbf3d7748dc20e92c9794b9ef71fa5bf929c52dc..a9fe2aa9707203d5bde9a37e903a9594dadaeb39 100644 (file)
@@ -120,7 +120,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match ah_match = {
+static struct xt_match ah_match __read_mostly = {
        .name           = "ah",
        .family         = AF_INET6,
        .match          = match,
index 2af99fc6bdc936448eb6540f3639b71128943208..34ba150bfe5d9089e65301a47648a31747de73ba 100644 (file)
@@ -62,7 +62,7 @@ match(const struct sk_buff *skb,
        return false;
 }
 
-static struct xt_match eui64_match = {
+static struct xt_match eui64_match __read_mostly = {
        .name           = "eui64",
        .family         = AF_INET6,
        .match          = match,
index 65482af711dea98485d53c1622157ee11c065a7f..bb1cfa82b47c779b1d67f80b30f6a572f864764a 100644 (file)
@@ -137,7 +137,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match frag_match = {
+static struct xt_match frag_match __read_mostly = {
        .name           = "frag",
        .family         = AF_INET6,
        .match          = match,
index 8eecac14ddaa9da7107ab05ada358c534b77ccfd..6247d4cdad9909a8f01784456d14965aabeb98b7 100644 (file)
@@ -193,7 +193,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match opts_match[] = {
+static struct xt_match opts_match[] __read_mostly = {
        {
                .name           = "hbh",
                .family         = AF_INET6,
index ddee088f5f10e16c36bf9d31e5a1495ed662888a..ca29ec00dc188f7b2ab3a5021ed9ad6e4a8cb68d 100644 (file)
@@ -49,7 +49,7 @@ static bool match(const struct sk_buff *skb,
        return false;
 }
 
-static struct xt_match hl_match = {
+static struct xt_match hl_match __read_mostly = {
        .name           = "hl",
        .family         = AF_INET6,
        .match          = match,
index ca020ce1c4a3ac2f422e46e96bddca2f8d4f9166..2c65c2f9a4ab116ea3de849f810d554be10f57ad 100644 (file)
@@ -141,7 +141,7 @@ ipv6header_checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match ip6t_ipv6header_match = {
+static struct xt_match ip6t_ipv6header_match __read_mostly = {
        .name           = "ipv6header",
        .family         = AF_INET6,
        .match          = &ipv6header_match,
index e94fdd82f28488bba458f8ba15beb9caf65e5891..0fa714092dc948a0b0c29801f9597884839ba611 100644 (file)
@@ -89,7 +89,7 @@ mh_checkentry(const char *tablename,
        return !(mhinfo->invflags & ~IP6T_MH_INV_MASK);
 }
 
-static struct xt_match mh_match = {
+static struct xt_match mh_match __read_mostly = {
        .name           = "mh",
        .family         = AF_INET6,
        .checkentry     = mh_checkentry,
index d2bf3204aeac29cb952e239d3eff27902e357693..6036613aef368789a6e4fe69de0c0be3e0b43000 100644 (file)
@@ -68,7 +68,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match owner_match = {
+static struct xt_match owner_match __read_mostly = {
        .name           = "owner",
        .family         = AF_INET6,
        .match          = match,
index f86fdcdd8cb81a91011810eb11b59e9acd4dbc1d..549deea264185307753d2785c8ed74bfb1a60eaa 100644 (file)
@@ -224,7 +224,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match rt_match = {
+static struct xt_match rt_match __read_mostly = {
        .name           = "rt",
        .family         = AF_INET6,
        .match          = match,
index 30884833e665b6d7cb721dcb1b4c6015418d84ec..5194285668299d077070d67c0db05091f1e4a0f9 100644 (file)
@@ -39,7 +39,7 @@ target(struct sk_buff **pskb,
        return XT_CONTINUE;
 }
 
-static struct xt_target xt_classify_target[] = {
+static struct xt_target xt_classify_target[] __read_mostly = {
        {
                .family         = AF_INET,
                .name           = "CLASSIFY",
index 4284a59b03e18da35019820c508703550a65d7d8..5a00c5444334fe926bd2a8bc995493c1bea574a0 100644 (file)
@@ -142,7 +142,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif /* CONFIG_COMPAT */
 
-static struct xt_target xt_connmark_target[] = {
+static struct xt_target xt_connmark_target[] __read_mostly = {
        {
                .name           = "CONNMARK",
                .family         = AF_INET,
index 8d5e154013d68c362096fb1af17c6508d8ebab41..63d73138c1b9e6482908a39ad3f1e1e7ceeb5295 100644 (file)
@@ -115,7 +115,7 @@ destroy(const struct xt_target *target, void *targinfo)
        nf_ct_l3proto_module_put(target->family);
 }
 
-static struct xt_target xt_connsecmark_target[] = {
+static struct xt_target xt_connsecmark_target[] __read_mostly = {
        {
                .name           = "CONNSECMARK",
                .family         = AF_INET,
index ed6b524064f0bf4b5319924c85779d961801cc9d..798ab731009d8e97ceb3a2caf4d479abf26dd7db 100644 (file)
@@ -81,7 +81,7 @@ static bool checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_target xt_dscp_target[] = {
+static struct xt_target xt_dscp_target[] __read_mostly = {
        {
                .name           = "DSCP",
                .family         = AF_INET,
index 6b7369fc263f95123b3cd651d00b17729f8cad6e..f30fe0baf7deba176509e36a58bdfc95e6345dda 100644 (file)
@@ -133,7 +133,7 @@ static int compat_to_user_v1(void __user *dst, void *src)
 }
 #endif /* CONFIG_COMPAT */
 
-static struct xt_target xt_mark_target[] = {
+static struct xt_target xt_mark_target[] __read_mostly = {
        {
                .name           = "MARK",
                .family         = AF_INET,
index 20e55d588a3c2fe5fcbe15404129a164b99b7134..d3594c7ccb268b4c49577c828f77a86b5d2b6db8 100644 (file)
@@ -52,7 +52,7 @@ nflog_checkentry(const char *tablename, const void *entry,
        return true;
 }
 
-static struct xt_target xt_nflog_target[] = {
+static struct xt_target xt_nflog_target[] __read_mostly = {
        {
                .name           = "NFLOG",
                .family         = AF_INET,
index 201155b316e0a8452c0e986b309c70d8a1ef219e..13f59f3e8c3814db0f820720794146ffdda74366 100644 (file)
@@ -36,7 +36,7 @@ target(struct sk_buff **pskb,
        return NF_QUEUE_NR(tinfo->queuenum);
 }
 
-static struct xt_target xt_nfqueue_target[] = {
+static struct xt_target xt_nfqueue_target[] __read_mostly = {
        {
                .name           = "NFQUEUE",
                .family         = AF_INET,
index 5085fb3d1e2d292476c8ab690acbb98b9e560b88..b7d6312fccc72b13606d6642103bf84c97326a52 100644 (file)
@@ -33,7 +33,7 @@ target(struct sk_buff **pskb,
        return XT_CONTINUE;
 }
 
-static struct xt_target xt_notrack_target[] = {
+static struct xt_target xt_notrack_target[] __read_mostly = {
        {
                .name           = "NOTRACK",
                .family         = AF_INET,
index f3e78c592f3a475a6063b4e30f0c966129681d76..c83779a941a18c3dd2e889e221266d22713a615d 100644 (file)
@@ -109,7 +109,7 @@ static bool checkentry(const char *tablename, const void *entry,
        return true;
 }
 
-static struct xt_target xt_secmark_target[] = {
+static struct xt_target xt_secmark_target[] __read_mostly = {
        {
                .name           = "SECMARK",
                .family         = AF_INET,
index 6ae6df993aa20db6b2fd34165fdf82699b657a49..d40f7e4b1289362f142afaa17a15f424bae30499 100644 (file)
@@ -259,7 +259,7 @@ xt_tcpmss_checkentry6(const char *tablename,
 }
 #endif
 
-static struct xt_target xt_tcpmss_reg[] = {
+static struct xt_target xt_tcpmss_reg[] __read_mostly = {
        {
                .family         = AF_INET,
                .name           = "TCPMSS",
index b82fc4680344031f0f97cdfa98f2cc1793126f06..4df2dedcc0b575f1d325513761200b3229b6f382 100644 (file)
@@ -21,7 +21,7 @@ target(struct sk_buff **pskb,
        return XT_CONTINUE;
 }
 
-static struct xt_target xt_trace_target[] = {
+static struct xt_target xt_trace_target[] __read_mostly = {
        {
                .name           = "TRACE",
                .family         = AF_INET,
index aa9503ff90ba521dcde36ca17c51ceafb453abd4..64bcdb0fe1e6797d7687fda7dc481478f377164d 100644 (file)
@@ -29,7 +29,7 @@ match(const struct sk_buff *skb,
        return true;
 }
 
-static struct xt_match xt_comment_match[] = {
+static struct xt_match xt_comment_match[] __read_mostly = {
        {
                .name           = "comment",
                .family         = AF_INET,
index d9b2e75fbab290d149de8da829e52dce0ddb889d..dd4d79b8fc9d20ced45ef0cfc8204569fe9492da 100644 (file)
@@ -128,7 +128,7 @@ destroy(const struct xt_match *match, void *matchinfo)
        nf_ct_l3proto_module_put(match->family);
 }
 
-static struct xt_match xt_connbytes_match[] = {
+static struct xt_match xt_connbytes_match[] __read_mostly = {
        {
                .name           = "connbytes",
                .family         = AF_INET,
index 3a6e16d4edcdf27387324cb7dc3cfa84e62bd8b9..e73fa9b46cf7d1a747077c333e92d7ad0809140f 100644 (file)
@@ -109,7 +109,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif /* CONFIG_COMPAT */
 
-static struct xt_match xt_connmark_match[] = {
+static struct xt_match xt_connmark_match[] __read_mostly = {
        {
                .name           = "connmark",
                .family         = AF_INET,
index 9e3ec31f2016dfa60e13626034923e2d0abd546c..ca4b69f020a8a1eb608f395d9b82d05fb07340a5 100644 (file)
@@ -183,7 +183,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif
 
-static struct xt_match conntrack_match = {
+static struct xt_match conntrack_match __read_mostly = {
        .name           = "conntrack",
        .match          = match,
        .checkentry     = checkentry,
index f07a68d445ca0ab8e279268b100213463a3aea1b..83224ec89cc08348205daaf58a7104ea79773e53 100644 (file)
@@ -140,7 +140,7 @@ checkentry(const char *tablename,
                && !(info->invflags & ~info->flags);
 }
 
-static struct xt_match xt_dccp_match[] = {
+static struct xt_match xt_dccp_match[] __read_mostly = {
        {
                .name           = "dccp",
                .family         = AF_INET,
index 35cabca28eff5e8309c1dbb68d630bed7b817a64..dde6d66e0d338aef43cb80d85afd0b6e6ca62376 100644 (file)
@@ -68,7 +68,7 @@ static bool checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match xt_dscp_match[] = {
+static struct xt_match xt_dscp_match[] __read_mostly = {
        {
                .name           = "dscp",
                .family         = AF_INET,
index 1a6ae8a047c72bf5df8ecb7e6614ebdab261aff5..b11378e001b6acb639873491606a62e16de8217d 100644 (file)
@@ -91,7 +91,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match xt_esp_match[] = {
+static struct xt_match xt_esp_match[] __read_mostly = {
        {
                .name           = "esp",
                .family         = AF_INET,
index 094da6e066b8c8965137c8ba280c5d7dac502605..5a6ea9b9108c4daa0288a678a3ddd9bfdf2e16b3 100644 (file)
@@ -578,7 +578,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif
 
-static struct xt_match xt_hashlimit[] = {
+static struct xt_match xt_hashlimit[] __read_mostly = {
        {
                .name           = "hashlimit",
                .family         = AF_INET,
index 047d0046b28cde8bf19c434e5735f58ff95c45ad..d03acb032cc846bd32f1fb4f3591de4ab9bed966 100644 (file)
@@ -99,7 +99,7 @@ destroy(const struct xt_match *match, void *matchinfo)
        nf_ct_l3proto_module_put(match->family);
 }
 
-static struct xt_match xt_helper_match[] = {
+static struct xt_match xt_helper_match[] __read_mostly = {
        {
                .name           = "helper",
                .family         = AF_INET,
index ea4880bd31ea3811e7842a8b07980446ad1929a4..3dad173d9735706608d47b01edf6006a2589c621 100644 (file)
@@ -53,7 +53,7 @@ match6(const struct sk_buff *skb,
        return (pktlen >= info->min && pktlen <= info->max) ^ info->invert;
 }
 
-static struct xt_match xt_length_match[] = {
+static struct xt_match xt_length_match[] __read_mostly = {
        {
                .name           = "length",
                .family         = AF_INET,
index b042419462af77a1da0d964789e182e03591734b..4fcca797150f75d7fc673196476ff101dfeecb05 100644 (file)
@@ -173,7 +173,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif /* CONFIG_COMPAT */
 
-static struct xt_match xt_limit_match[] = {
+static struct xt_match xt_limit_match[] __read_mostly = {
        {
                .name           = "limit",
                .family         = AF_INET,
index 28ec08e7511ba4cdc9c53d6d5e9f247ce9858add..00490d777a0faa81209aca5a220d2651bc0153d2 100644 (file)
@@ -44,7 +44,7 @@ match(const struct sk_buff *skb,
                ^ info->invert);
 }
 
-static struct xt_match xt_mac_match[] = {
+static struct xt_match xt_mac_match[] __read_mostly = {
        {
                .name           = "mac",
                .family         = AF_INET,
index b8ab79452f08ab6b9b4d25420e36c68a90d3cda9..c02a7f8f3925023aebb859d715c42588cb09512f 100644 (file)
@@ -81,7 +81,7 @@ static int compat_to_user(void __user *dst, void *src)
 }
 #endif /* CONFIG_COMPAT */
 
-static struct xt_match xt_mark_match[] = {
+static struct xt_match xt_mark_match[] __read_mostly = {
        {
                .name           = "mark",
                .family         = AF_INET,
index 3d69d6208965f464d9854f56609d22faccb2cd61..e8ae10284acd7e49c74b7ab544412f6ac0cf94f9 100644 (file)
@@ -228,7 +228,7 @@ checkentry6_v1(const char *tablename,
                     multiinfo->count);
 }
 
-static struct xt_match xt_multiport_match[] = {
+static struct xt_match xt_multiport_match[] __read_mostly = {
        {
                .name           = "multiport",
                .family         = AF_INET,
index 467b2dcf7e6bf6b19ba2552e16d4f04acbe81397..f47cab7a696d6c8487afcc98ae75ddbf5c596cc2 100644 (file)
@@ -125,7 +125,7 @@ checkentry(const char *tablename,
        return true;
 }
 
-static struct xt_match xt_physdev_match[] = {
+static struct xt_match xt_physdev_match[] __read_mostly = {
        {
                .name           = "physdev",
                .family         = AF_INET,
index e4c420b5713bb6244c58b8575a5fb106dd94f084..a52925f12f35e58ec25188130e63be13edf623a4 100644 (file)
@@ -43,7 +43,7 @@ static bool match(const struct sk_buff *skb,
        return (type == info->pkttype) ^ info->invert;
 }
 
-static struct xt_match xt_pkttype_match[] = {
+static struct xt_match xt_pkttype_match[] __read_mostly = {
        {
                .name           = "pkttype",
                .family         = AF_INET,
index 5ab6d71f8d05f2870157dd00a430b79bcf3058d2..6d6d3b7fcbb5c18b88f8021a8c096debcceffe86 100644 (file)
@@ -164,7 +164,7 @@ static bool checkentry(const char *tablename, const void *ip_void,
        return true;
 }
 
-static struct xt_match xt_policy_match[] = {
+static struct xt_match xt_policy_match[] __read_mostly = {
        {
                .name           = "policy",
                .family         = AF_INET,
index feb130d14f2caf66f7e1c17c1a32fe79f2cebd92..dae97445b87b498f7e9d770dad26488485d15123 100644 (file)
@@ -53,7 +53,7 @@ checkentry(const char *tablename, const void *entry,
        return true;
 }
 
-static struct xt_match xt_quota_match[] = {
+static struct xt_match xt_quota_match[] __read_mostly = {
        {
                .name           = "quota",
                .family         = AF_INET,
index 44b807d279ada3595ec4327bf247123f6d54e9bd..cc3e76d77a9931f7f697188967465b78d998748b 100644 (file)
@@ -37,7 +37,7 @@ match(const struct sk_buff *skb,
        return (info->id == (dst->tclassid & info->mask)) ^ info->invert;
 }
 
-static struct xt_match realm_match = {
+static struct xt_match realm_match __read_mostly = {
        .name           = "realm",
        .match          = match,
        .matchsize      = sizeof(struct xt_realm_info),
index fefc846188f366b09952bbc9db54f714746a6b9c..c002153b80ab76ef6e3725dfc9dc6d4fce242d69 100644 (file)
@@ -172,7 +172,7 @@ checkentry(const char *tablename,
                                | SCTP_CHUNK_MATCH_ONLY)));
 }
 
-static struct xt_match xt_sctp_match[] = {
+static struct xt_match xt_sctp_match[] __read_mostly = {
        {
                .name           = "sctp",
                .family         = AF_INET,
index 5b9c59aa14d32fe58eea2bb4988154f1911e340d..e0a528df19a78349f29596782c35175fdc7c24d4 100644 (file)
@@ -64,7 +64,7 @@ destroy(const struct xt_match *match, void *matchinfo)
        nf_ct_l3proto_module_put(match->family);
 }
 
-static struct xt_match xt_state_match[] = {
+static struct xt_match xt_state_match[] __read_mostly = {
        {
                .name           = "state",
                .family         = AF_INET,
index 3da4978287f35d3ad3e7764b6434f690bf9af85e..4089dae4e2865ae9f99377d307195ff69127f07b 100644 (file)
@@ -66,7 +66,7 @@ checkentry(const char *tablename, const void *entry,
        return true;
 }
 
-static struct xt_match xt_statistic_match[] = {
+static struct xt_match xt_statistic_match[] __read_mostly = {
        {
                .name           = "statistic",
                .family         = AF_INET,
index ab761b17f81138122e5fa08fd41c8551e5227f2c..864133442cdac6c35f0f50edb81664565bf65b47 100644 (file)
@@ -73,7 +73,7 @@ static void destroy(const struct xt_match *match, void *matchinfo)
        textsearch_destroy(STRING_TEXT_PRIV(matchinfo)->config);
 }
 
-static struct xt_match xt_string_match[] = {
+static struct xt_match xt_string_match[] __read_mostly = {
        {
                .name           = "string",
                .family         = AF_INET,
index e9bfd3dd3c81f4ba52007db5f1ffc169f32db6d9..cd5f6d758c6806b46032e5c264e417ec66931acf 100644 (file)
@@ -81,7 +81,7 @@ dropit:
        return false;
 }
 
-static struct xt_match xt_tcpmss_match[] = {
+static struct xt_match xt_tcpmss_match[] __read_mostly = {
        {
                .name           = "tcpmss",
                .family         = AF_INET,
index 5cb345aeeca8de5a96713b2550ebb502ead9c95f..ab7d845224fce9f7dad1b92f3d6a91d9c7c16411 100644 (file)
@@ -194,7 +194,7 @@ udp_checkentry(const char *tablename,
        return !(udpinfo->invflags & ~XT_UDP_INV_MASK);
 }
 
-static struct xt_match xt_tcpudp_match[] = {
+static struct xt_match xt_tcpudp_match[] __read_mostly = {
        {
                .name           = "tcp",
                .family         = AF_INET,
index 07068751a35cbd7122fb27ea88761c759fc116fe..04b677ae8daee6e39f1f7e947b82fb5b91774516 100644 (file)
@@ -99,7 +99,7 @@ static bool u32_match(const struct sk_buff *skb,
        return ret ^ data->invert;
 }
 
-static struct xt_match u32_reg[] = {
+static struct xt_match u32_reg[] __read_mostly = {
        {
                .name       = "u32",
                .family     = AF_INET,