Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Patrick McHardy and committed by
David S. Miller
9f15c530 ba9dda3a

+79 -79
+2 -2
net/ipv4/netfilter/arp_tables.c
··· 1140 1140 } 1141 1141 1142 1142 /* The built-in targets: standard (NULL) and error. */ 1143 - static struct arpt_target arpt_standard_target = { 1143 + static struct arpt_target arpt_standard_target __read_mostly = { 1144 1144 .name = ARPT_STANDARD_TARGET, 1145 1145 .targetsize = sizeof(int), 1146 1146 .family = NF_ARP, 1147 1147 }; 1148 1148 1149 - static struct arpt_target arpt_error_target = { 1149 + static struct arpt_target arpt_error_target __read_mostly = { 1150 1150 .name = ARPT_ERROR_TARGET, 1151 1151 .target = arpt_error, 1152 1152 .targetsize = ARPT_FUNCTION_MAXNAMELEN,
+1 -1
net/ipv4/netfilter/arpt_mangle.c
··· 81 81 return true; 82 82 } 83 83 84 - static struct arpt_target arpt_mangle_reg = { 84 + static struct arpt_target arpt_mangle_reg __read_mostly = { 85 85 .name = "mangle", 86 86 .target = target, 87 87 .targetsize = sizeof(struct arpt_mangle),
+3 -3
net/ipv4/netfilter/ip_tables.c
··· 2264 2264 } 2265 2265 2266 2266 /* The built-in targets: standard (NULL) and error. */ 2267 - static struct xt_target ipt_standard_target = { 2267 + static struct xt_target ipt_standard_target __read_mostly = { 2268 2268 .name = IPT_STANDARD_TARGET, 2269 2269 .targetsize = sizeof(int), 2270 2270 .family = AF_INET, ··· 2275 2275 #endif 2276 2276 }; 2277 2277 2278 - static struct xt_target ipt_error_target = { 2278 + static struct xt_target ipt_error_target __read_mostly = { 2279 2279 .name = IPT_ERROR_TARGET, 2280 2280 .target = ipt_error, 2281 2281 .targetsize = IPT_FUNCTION_MAXNAMELEN, ··· 2298 2298 #endif 2299 2299 }; 2300 2300 2301 - static struct xt_match icmp_matchstruct = { 2301 + static struct xt_match icmp_matchstruct __read_mostly = { 2302 2302 .name = "icmp", 2303 2303 .match = icmp_match, 2304 2304 .matchsize = sizeof(struct ipt_icmp),
+1 -1
net/ipv4/netfilter/ipt_CLUSTERIP.c
··· 466 466 nf_ct_l3proto_module_put(target->family); 467 467 } 468 468 469 - static struct xt_target clusterip_tgt = { 469 + static struct xt_target clusterip_tgt __read_mostly = { 470 470 .name = "CLUSTERIP", 471 471 .family = AF_INET, 472 472 .target = target,
+1 -1
net/ipv4/netfilter/ipt_ECN.c
··· 128 128 return true; 129 129 } 130 130 131 - static struct xt_target ipt_ecn_reg = { 131 + static struct xt_target ipt_ecn_reg __read_mostly = { 132 132 .name = "ECN", 133 133 .family = AF_INET, 134 134 .target = target,
+1 -1
net/ipv4/netfilter/ipt_LOG.c
··· 463 463 return true; 464 464 } 465 465 466 - static struct xt_target ipt_log_reg = { 466 + static struct xt_target ipt_log_reg __read_mostly = { 467 467 .name = "LOG", 468 468 .family = AF_INET, 469 469 .target = ipt_log_target,
+1 -1
net/ipv4/netfilter/ipt_MASQUERADE.c
··· 169 169 .notifier_call = masq_inet_event, 170 170 }; 171 171 172 - static struct xt_target masquerade = { 172 + static struct xt_target masquerade __read_mostly = { 173 173 .name = "MASQUERADE", 174 174 .family = AF_INET, 175 175 .target = masquerade_target,
+1 -1
net/ipv4/netfilter/ipt_NETMAP.c
··· 85 85 return nf_nat_setup_info(ct, &newrange, hooknum); 86 86 } 87 87 88 - static struct xt_target target_module = { 88 + static struct xt_target target_module __read_mostly = { 89 89 .name = MODULENAME, 90 90 .family = AF_INET, 91 91 .target = target,
+1 -1
net/ipv4/netfilter/ipt_REDIRECT.c
··· 101 101 return nf_nat_setup_info(ct, &newrange, hooknum); 102 102 } 103 103 104 - static struct xt_target redirect_reg = { 104 + static struct xt_target redirect_reg __read_mostly = { 105 105 .name = "REDIRECT", 106 106 .family = AF_INET, 107 107 .target = redirect_target,
+1 -1
net/ipv4/netfilter/ipt_REJECT.c
··· 240 240 return true; 241 241 } 242 242 243 - static struct xt_target ipt_reject_reg = { 243 + static struct xt_target ipt_reject_reg __read_mostly = { 244 244 .name = "REJECT", 245 245 .family = AF_INET, 246 246 .target = reject,
+1 -1
net/ipv4/netfilter/ipt_SAME.c
··· 161 161 return nf_nat_setup_info(ct, &newrange, hooknum); 162 162 } 163 163 164 - static struct xt_target same_reg = { 164 + static struct xt_target same_reg __read_mostly = { 165 165 .name = "SAME", 166 166 .family = AF_INET, 167 167 .target = same_target,
+1 -1
net/ipv4/netfilter/ipt_TOS.c
··· 63 63 return true; 64 64 } 65 65 66 - static struct xt_target ipt_tos_reg = { 66 + static struct xt_target ipt_tos_reg __read_mostly = { 67 67 .name = "TOS", 68 68 .family = AF_INET, 69 69 .target = target,
+1 -1
net/ipv4/netfilter/ipt_TTL.c
··· 80 80 return true; 81 81 } 82 82 83 - static struct xt_target ipt_TTL = { 83 + static struct xt_target ipt_TTL __read_mostly = { 84 84 .name = "TTL", 85 85 .family = AF_INET, 86 86 .target = ipt_ttl_target,
+1 -1
net/ipv4/netfilter/ipt_ULOG.c
··· 381 381 } 382 382 #endif /* CONFIG_COMPAT */ 383 383 384 - static struct xt_target ipt_ulog_reg = { 384 + static struct xt_target ipt_ulog_reg __read_mostly = { 385 385 .name = "ULOG", 386 386 .family = AF_INET, 387 387 .target = ipt_ulog_target,
+1 -1
net/ipv4/netfilter/ipt_addrtype.c
··· 44 44 return ret; 45 45 } 46 46 47 - static struct xt_match addrtype_match = { 47 + static struct xt_match addrtype_match __read_mostly = { 48 48 .name = "addrtype", 49 49 .family = AF_INET, 50 50 .match = match,
+1 -1
net/ipv4/netfilter/ipt_ah.c
··· 88 88 return true; 89 89 } 90 90 91 - static struct xt_match ah_match = { 91 + static struct xt_match ah_match __read_mostly = { 92 92 .name = "ah", 93 93 .family = AF_INET, 94 94 .match = match,
+1 -1
net/ipv4/netfilter/ipt_ecn.c
··· 111 111 return true; 112 112 } 113 113 114 - static struct xt_match ecn_match = { 114 + static struct xt_match ecn_match __read_mostly = { 115 115 .name = "ecn", 116 116 .family = AF_INET, 117 117 .match = match,
+1 -1
net/ipv4/netfilter/ipt_iprange.c
··· 63 63 return true; 64 64 } 65 65 66 - static struct xt_match iprange_match = { 66 + static struct xt_match iprange_match __read_mostly = { 67 67 .name = "iprange", 68 68 .family = AF_INET, 69 69 .match = match,
+1 -1
net/ipv4/netfilter/ipt_owner.c
··· 68 68 return true; 69 69 } 70 70 71 - static struct xt_match owner_match = { 71 + static struct xt_match owner_match __read_mostly = { 72 72 .name = "owner", 73 73 .family = AF_INET, 74 74 .match = match,
+1 -1
net/ipv4/netfilter/ipt_recent.c
··· 460 460 }; 461 461 #endif /* CONFIG_PROC_FS */ 462 462 463 - static struct xt_match recent_match = { 463 + static struct xt_match recent_match __read_mostly = { 464 464 .name = "recent", 465 465 .family = AF_INET, 466 466 .match = ipt_recent_match,
+1 -1
net/ipv4/netfilter/ipt_tos.c
··· 33 33 return (ip_hdr(skb)->tos == info->tos) ^ info->invert; 34 34 } 35 35 36 - static struct xt_match tos_match = { 36 + static struct xt_match tos_match __read_mostly = { 37 37 .name = "tos", 38 38 .family = AF_INET, 39 39 .match = match,
+1 -1
net/ipv4/netfilter/ipt_ttl.c
··· 44 44 return false; 45 45 } 46 46 47 - static struct xt_match ttl_match = { 47 + static struct xt_match ttl_match __read_mostly = { 48 48 .name = "ttl", 49 49 .family = AF_INET, 50 50 .match = match,
+2 -2
net/ipv4/netfilter/nf_nat_rule.c
··· 228 228 return ret; 229 229 } 230 230 231 - static struct xt_target ipt_snat_reg = { 231 + static struct xt_target ipt_snat_reg __read_mostly = { 232 232 .name = "SNAT", 233 233 .target = ipt_snat_target, 234 234 .targetsize = sizeof(struct nf_nat_multi_range_compat), ··· 238 238 .family = AF_INET, 239 239 }; 240 240 241 - static struct xt_target ipt_dnat_reg = { 241 + static struct xt_target ipt_dnat_reg __read_mostly = { 242 242 .name = "DNAT", 243 243 .target = ipt_dnat_target, 244 244 .targetsize = sizeof(struct nf_nat_multi_range_compat),
+3 -3
net/ipv6/netfilter/ip6_tables.c
··· 1441 1441 } 1442 1442 1443 1443 /* The built-in targets: standard (NULL) and error. */ 1444 - static struct xt_target ip6t_standard_target = { 1444 + static struct xt_target ip6t_standard_target __read_mostly = { 1445 1445 .name = IP6T_STANDARD_TARGET, 1446 1446 .targetsize = sizeof(int), 1447 1447 .family = AF_INET6, 1448 1448 }; 1449 1449 1450 - static struct xt_target ip6t_error_target = { 1450 + static struct xt_target ip6t_error_target __read_mostly = { 1451 1451 .name = IP6T_ERROR_TARGET, 1452 1452 .target = ip6t_error, 1453 1453 .targetsize = IP6T_FUNCTION_MAXNAMELEN, ··· 1464 1464 .get = do_ip6t_get_ctl, 1465 1465 }; 1466 1466 1467 - static struct xt_match icmp6_matchstruct = { 1467 + static struct xt_match icmp6_matchstruct __read_mostly = { 1468 1468 .name = "icmp6", 1469 1469 .match = &icmp6_match, 1470 1470 .matchsize = sizeof(struct ip6t_icmp),
+1 -1
net/ipv6/netfilter/ip6t_HL.c
··· 79 79 return true; 80 80 } 81 81 82 - static struct xt_target ip6t_HL = { 82 + static struct xt_target ip6t_HL __read_mostly = { 83 83 .name = "HL", 84 84 .family = AF_INET6, 85 85 .target = ip6t_hl_target,
+1 -1
net/ipv6/netfilter/ip6t_LOG.c
··· 477 477 return true; 478 478 } 479 479 480 - static struct xt_target ip6t_log_reg = { 480 + static struct xt_target ip6t_log_reg __read_mostly = { 481 481 .name = "LOG", 482 482 .family = AF_INET6, 483 483 .target = ip6t_log_target,
+1 -1
net/ipv6/netfilter/ip6t_REJECT.c
··· 244 244 return true; 245 245 } 246 246 247 - static struct xt_target ip6t_reject_reg = { 247 + static struct xt_target ip6t_reject_reg __read_mostly = { 248 248 .name = "REJECT", 249 249 .family = AF_INET6, 250 250 .target = reject6_target,
+1 -1
net/ipv6/netfilter/ip6t_ah.c
··· 120 120 return true; 121 121 } 122 122 123 - static struct xt_match ah_match = { 123 + static struct xt_match ah_match __read_mostly = { 124 124 .name = "ah", 125 125 .family = AF_INET6, 126 126 .match = match,
+1 -1
net/ipv6/netfilter/ip6t_eui64.c
··· 62 62 return false; 63 63 } 64 64 65 - static struct xt_match eui64_match = { 65 + static struct xt_match eui64_match __read_mostly = { 66 66 .name = "eui64", 67 67 .family = AF_INET6, 68 68 .match = match,
+1 -1
net/ipv6/netfilter/ip6t_frag.c
··· 137 137 return true; 138 138 } 139 139 140 - static struct xt_match frag_match = { 140 + static struct xt_match frag_match __read_mostly = { 141 141 .name = "frag", 142 142 .family = AF_INET6, 143 143 .match = match,
+1 -1
net/ipv6/netfilter/ip6t_hbh.c
··· 193 193 return true; 194 194 } 195 195 196 - static struct xt_match opts_match[] = { 196 + static struct xt_match opts_match[] __read_mostly = { 197 197 { 198 198 .name = "hbh", 199 199 .family = AF_INET6,
+1 -1
net/ipv6/netfilter/ip6t_hl.c
··· 49 49 return false; 50 50 } 51 51 52 - static struct xt_match hl_match = { 52 + static struct xt_match hl_match __read_mostly = { 53 53 .name = "hl", 54 54 .family = AF_INET6, 55 55 .match = match,
+1 -1
net/ipv6/netfilter/ip6t_ipv6header.c
··· 141 141 return true; 142 142 } 143 143 144 - static struct xt_match ip6t_ipv6header_match = { 144 + static struct xt_match ip6t_ipv6header_match __read_mostly = { 145 145 .name = "ipv6header", 146 146 .family = AF_INET6, 147 147 .match = &ipv6header_match,
+1 -1
net/ipv6/netfilter/ip6t_mh.c
··· 89 89 return !(mhinfo->invflags & ~IP6T_MH_INV_MASK); 90 90 } 91 91 92 - static struct xt_match mh_match = { 92 + static struct xt_match mh_match __read_mostly = { 93 93 .name = "mh", 94 94 .family = AF_INET6, 95 95 .checkentry = mh_checkentry,
+1 -1
net/ipv6/netfilter/ip6t_owner.c
··· 68 68 return true; 69 69 } 70 70 71 - static struct xt_match owner_match = { 71 + static struct xt_match owner_match __read_mostly = { 72 72 .name = "owner", 73 73 .family = AF_INET6, 74 74 .match = match,
+1 -1
net/ipv6/netfilter/ip6t_rt.c
··· 224 224 return true; 225 225 } 226 226 227 - static struct xt_match rt_match = { 227 + static struct xt_match rt_match __read_mostly = { 228 228 .name = "rt", 229 229 .family = AF_INET6, 230 230 .match = match,
+1 -1
net/netfilter/xt_CLASSIFY.c
··· 39 39 return XT_CONTINUE; 40 40 } 41 41 42 - static struct xt_target xt_classify_target[] = { 42 + static struct xt_target xt_classify_target[] __read_mostly = { 43 43 { 44 44 .family = AF_INET, 45 45 .name = "CLASSIFY",
+1 -1
net/netfilter/xt_CONNMARK.c
··· 142 142 } 143 143 #endif /* CONFIG_COMPAT */ 144 144 145 - static struct xt_target xt_connmark_target[] = { 145 + static struct xt_target xt_connmark_target[] __read_mostly = { 146 146 { 147 147 .name = "CONNMARK", 148 148 .family = AF_INET,
+1 -1
net/netfilter/xt_CONNSECMARK.c
··· 115 115 nf_ct_l3proto_module_put(target->family); 116 116 } 117 117 118 - static struct xt_target xt_connsecmark_target[] = { 118 + static struct xt_target xt_connsecmark_target[] __read_mostly = { 119 119 { 120 120 .name = "CONNSECMARK", 121 121 .family = AF_INET,
+1 -1
net/netfilter/xt_DSCP.c
··· 81 81 return true; 82 82 } 83 83 84 - static struct xt_target xt_dscp_target[] = { 84 + static struct xt_target xt_dscp_target[] __read_mostly = { 85 85 { 86 86 .name = "DSCP", 87 87 .family = AF_INET,
+1 -1
net/netfilter/xt_MARK.c
··· 133 133 } 134 134 #endif /* CONFIG_COMPAT */ 135 135 136 - static struct xt_target xt_mark_target[] = { 136 + static struct xt_target xt_mark_target[] __read_mostly = { 137 137 { 138 138 .name = "MARK", 139 139 .family = AF_INET,
+1 -1
net/netfilter/xt_NFLOG.c
··· 52 52 return true; 53 53 } 54 54 55 - static struct xt_target xt_nflog_target[] = { 55 + static struct xt_target xt_nflog_target[] __read_mostly = { 56 56 { 57 57 .name = "NFLOG", 58 58 .family = AF_INET,
+1 -1
net/netfilter/xt_NFQUEUE.c
··· 36 36 return NF_QUEUE_NR(tinfo->queuenum); 37 37 } 38 38 39 - static struct xt_target xt_nfqueue_target[] = { 39 + static struct xt_target xt_nfqueue_target[] __read_mostly = { 40 40 { 41 41 .name = "NFQUEUE", 42 42 .family = AF_INET,
+1 -1
net/netfilter/xt_NOTRACK.c
··· 33 33 return XT_CONTINUE; 34 34 } 35 35 36 - static struct xt_target xt_notrack_target[] = { 36 + static struct xt_target xt_notrack_target[] __read_mostly = { 37 37 { 38 38 .name = "NOTRACK", 39 39 .family = AF_INET,
+1 -1
net/netfilter/xt_SECMARK.c
··· 109 109 return true; 110 110 } 111 111 112 - static struct xt_target xt_secmark_target[] = { 112 + static struct xt_target xt_secmark_target[] __read_mostly = { 113 113 { 114 114 .name = "SECMARK", 115 115 .family = AF_INET,
+1 -1
net/netfilter/xt_TCPMSS.c
··· 259 259 } 260 260 #endif 261 261 262 - static struct xt_target xt_tcpmss_reg[] = { 262 + static struct xt_target xt_tcpmss_reg[] __read_mostly = { 263 263 { 264 264 .family = AF_INET, 265 265 .name = "TCPMSS",
+1 -1
net/netfilter/xt_TRACE.c
··· 21 21 return XT_CONTINUE; 22 22 } 23 23 24 - static struct xt_target xt_trace_target[] = { 24 + static struct xt_target xt_trace_target[] __read_mostly = { 25 25 { 26 26 .name = "TRACE", 27 27 .family = AF_INET,
+1 -1
net/netfilter/xt_comment.c
··· 29 29 return true; 30 30 } 31 31 32 - static struct xt_match xt_comment_match[] = { 32 + static struct xt_match xt_comment_match[] __read_mostly = { 33 33 { 34 34 .name = "comment", 35 35 .family = AF_INET,
+1 -1
net/netfilter/xt_connbytes.c
··· 128 128 nf_ct_l3proto_module_put(match->family); 129 129 } 130 130 131 - static struct xt_match xt_connbytes_match[] = { 131 + static struct xt_match xt_connbytes_match[] __read_mostly = { 132 132 { 133 133 .name = "connbytes", 134 134 .family = AF_INET,
+1 -1
net/netfilter/xt_connmark.c
··· 109 109 } 110 110 #endif /* CONFIG_COMPAT */ 111 111 112 - static struct xt_match xt_connmark_match[] = { 112 + static struct xt_match xt_connmark_match[] __read_mostly = { 113 113 { 114 114 .name = "connmark", 115 115 .family = AF_INET,
+1 -1
net/netfilter/xt_conntrack.c
··· 183 183 } 184 184 #endif 185 185 186 - static struct xt_match conntrack_match = { 186 + static struct xt_match conntrack_match __read_mostly = { 187 187 .name = "conntrack", 188 188 .match = match, 189 189 .checkentry = checkentry,
+1 -1
net/netfilter/xt_dccp.c
··· 140 140 && !(info->invflags & ~info->flags); 141 141 } 142 142 143 - static struct xt_match xt_dccp_match[] = { 143 + static struct xt_match xt_dccp_match[] __read_mostly = { 144 144 { 145 145 .name = "dccp", 146 146 .family = AF_INET,
+1 -1
net/netfilter/xt_dscp.c
··· 68 68 return true; 69 69 } 70 70 71 - static struct xt_match xt_dscp_match[] = { 71 + static struct xt_match xt_dscp_match[] __read_mostly = { 72 72 { 73 73 .name = "dscp", 74 74 .family = AF_INET,
+1 -1
net/netfilter/xt_esp.c
··· 91 91 return true; 92 92 } 93 93 94 - static struct xt_match xt_esp_match[] = { 94 + static struct xt_match xt_esp_match[] __read_mostly = { 95 95 { 96 96 .name = "esp", 97 97 .family = AF_INET,
+1 -1
net/netfilter/xt_hashlimit.c
··· 578 578 } 579 579 #endif 580 580 581 - static struct xt_match xt_hashlimit[] = { 581 + static struct xt_match xt_hashlimit[] __read_mostly = { 582 582 { 583 583 .name = "hashlimit", 584 584 .family = AF_INET,
+1 -1
net/netfilter/xt_helper.c
··· 99 99 nf_ct_l3proto_module_put(match->family); 100 100 } 101 101 102 - static struct xt_match xt_helper_match[] = { 102 + static struct xt_match xt_helper_match[] __read_mostly = { 103 103 { 104 104 .name = "helper", 105 105 .family = AF_INET,
+1 -1
net/netfilter/xt_length.c
··· 53 53 return (pktlen >= info->min && pktlen <= info->max) ^ info->invert; 54 54 } 55 55 56 - static struct xt_match xt_length_match[] = { 56 + static struct xt_match xt_length_match[] __read_mostly = { 57 57 { 58 58 .name = "length", 59 59 .family = AF_INET,
+1 -1
net/netfilter/xt_limit.c
··· 173 173 } 174 174 #endif /* CONFIG_COMPAT */ 175 175 176 - static struct xt_match xt_limit_match[] = { 176 + static struct xt_match xt_limit_match[] __read_mostly = { 177 177 { 178 178 .name = "limit", 179 179 .family = AF_INET,
+1 -1
net/netfilter/xt_mac.c
··· 44 44 ^ info->invert); 45 45 } 46 46 47 - static struct xt_match xt_mac_match[] = { 47 + static struct xt_match xt_mac_match[] __read_mostly = { 48 48 { 49 49 .name = "mac", 50 50 .family = AF_INET,
+1 -1
net/netfilter/xt_mark.c
··· 81 81 } 82 82 #endif /* CONFIG_COMPAT */ 83 83 84 - static struct xt_match xt_mark_match[] = { 84 + static struct xt_match xt_mark_match[] __read_mostly = { 85 85 { 86 86 .name = "mark", 87 87 .family = AF_INET,
+1 -1
net/netfilter/xt_multiport.c
··· 228 228 multiinfo->count); 229 229 } 230 230 231 - static struct xt_match xt_multiport_match[] = { 231 + static struct xt_match xt_multiport_match[] __read_mostly = { 232 232 { 233 233 .name = "multiport", 234 234 .family = AF_INET,
+1 -1
net/netfilter/xt_physdev.c
··· 125 125 return true; 126 126 } 127 127 128 - static struct xt_match xt_physdev_match[] = { 128 + static struct xt_match xt_physdev_match[] __read_mostly = { 129 129 { 130 130 .name = "physdev", 131 131 .family = AF_INET,
+1 -1
net/netfilter/xt_pkttype.c
··· 43 43 return (type == info->pkttype) ^ info->invert; 44 44 } 45 45 46 - static struct xt_match xt_pkttype_match[] = { 46 + static struct xt_match xt_pkttype_match[] __read_mostly = { 47 47 { 48 48 .name = "pkttype", 49 49 .family = AF_INET,
+1 -1
net/netfilter/xt_policy.c
··· 164 164 return true; 165 165 } 166 166 167 - static struct xt_match xt_policy_match[] = { 167 + static struct xt_match xt_policy_match[] __read_mostly = { 168 168 { 169 169 .name = "policy", 170 170 .family = AF_INET,
+1 -1
net/netfilter/xt_quota.c
··· 53 53 return true; 54 54 } 55 55 56 - static struct xt_match xt_quota_match[] = { 56 + static struct xt_match xt_quota_match[] __read_mostly = { 57 57 { 58 58 .name = "quota", 59 59 .family = AF_INET,
+1 -1
net/netfilter/xt_realm.c
··· 37 37 return (info->id == (dst->tclassid & info->mask)) ^ info->invert; 38 38 } 39 39 40 - static struct xt_match realm_match = { 40 + static struct xt_match realm_match __read_mostly = { 41 41 .name = "realm", 42 42 .match = match, 43 43 .matchsize = sizeof(struct xt_realm_info),
+1 -1
net/netfilter/xt_sctp.c
··· 172 172 | SCTP_CHUNK_MATCH_ONLY))); 173 173 } 174 174 175 - static struct xt_match xt_sctp_match[] = { 175 + static struct xt_match xt_sctp_match[] __read_mostly = { 176 176 { 177 177 .name = "sctp", 178 178 .family = AF_INET,
+1 -1
net/netfilter/xt_state.c
··· 64 64 nf_ct_l3proto_module_put(match->family); 65 65 } 66 66 67 - static struct xt_match xt_state_match[] = { 67 + static struct xt_match xt_state_match[] __read_mostly = { 68 68 { 69 69 .name = "state", 70 70 .family = AF_INET,
+1 -1
net/netfilter/xt_statistic.c
··· 66 66 return true; 67 67 } 68 68 69 - static struct xt_match xt_statistic_match[] = { 69 + static struct xt_match xt_statistic_match[] __read_mostly = { 70 70 { 71 71 .name = "statistic", 72 72 .family = AF_INET,
+1 -1
net/netfilter/xt_string.c
··· 73 73 textsearch_destroy(STRING_TEXT_PRIV(matchinfo)->config); 74 74 } 75 75 76 - static struct xt_match xt_string_match[] = { 76 + static struct xt_match xt_string_match[] __read_mostly = { 77 77 { 78 78 .name = "string", 79 79 .family = AF_INET,
+1 -1
net/netfilter/xt_tcpmss.c
··· 81 81 return false; 82 82 } 83 83 84 - static struct xt_match xt_tcpmss_match[] = { 84 + static struct xt_match xt_tcpmss_match[] __read_mostly = { 85 85 { 86 86 .name = "tcpmss", 87 87 .family = AF_INET,
+1 -1
net/netfilter/xt_tcpudp.c
··· 194 194 return !(udpinfo->invflags & ~XT_UDP_INV_MASK); 195 195 } 196 196 197 - static struct xt_match xt_tcpudp_match[] = { 197 + static struct xt_match xt_tcpudp_match[] __read_mostly = { 198 198 { 199 199 .name = "tcp", 200 200 .family = AF_INET,
+1 -1
net/netfilter/xt_u32.c
··· 99 99 return ret ^ data->invert; 100 100 } 101 101 102 - static struct xt_match u32_reg[] = { 102 + static struct xt_match u32_reg[] __read_mostly = { 103 103 { 104 104 .name = "u32", 105 105 .family = AF_INET,