[NETFILTER]: x_tables: mark matches and targets __read_mostly

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Patrick McHardy 2007-07-07 22:22:02 -07:00 коммит произвёл David S. Miller
Родитель ba9dda3ab5
Коммит 9f15c5302d
73 изменённых файлов: 79 добавлений и 79 удалений

Просмотреть файл

@ -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,

Просмотреть файл

@ -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),

Просмотреть файл

@ -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),

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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),

Просмотреть файл

@ -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),

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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",

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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",

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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),

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,