Commit 9b5b5cff9a6655dbb6d2e2be365bb95eec3950eb
Committed by
David S. Miller
1 parent
fb29644994
Exists in
master
and in
7 other branches
[NET]: Add const markers to various variables.
the patch below marks various variables const in net/; the goal is to move them to the .rodata section so that they can't false-share cachelines with things that get written to, as well as potentially helping gcc a bit with optimisations. (these were found using a gcc patch to warn about such variables) Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 19 changed files with 29 additions and 29 deletions Side-by-side Diff
- net/ipv4/fib_hash.c
- net/ipv4/fib_semantics.c
- net/ipv4/icmp.c
- net/ipv4/ipvs/ip_vs_conn.c
- net/ipv4/ipvs/ip_vs_ctl.c
- net/ipv4/ipvs/ip_vs_proto_tcp.c
- net/ipv4/netfilter/ip_conntrack_amanda.c
- net/ipv4/netfilter/ip_conntrack_ftp.c
- net/ipv4/netfilter/ip_conntrack_irc.c
- net/ipv4/netfilter/ip_conntrack_proto_icmp.c
- net/ipv4/netfilter/ip_conntrack_proto_sctp.c
- net/ipv4/netfilter/ip_conntrack_proto_tcp.c
- net/ipv4/netfilter/ip_tables.c
- net/ipv4/netfilter/ipt_LOG.c
- net/ipv4/proc.c
- net/ipv4/route.c
- net/ipv4/tcp.c
- net/ipv6/icmp.c
- net/ipv6/netfilter/ip6_tables.c
net/ipv4/fib_hash.c
... | ... | @@ -975,7 +975,7 @@ |
975 | 975 | |
976 | 976 | static unsigned fib_flag_trans(int type, u32 mask, struct fib_info *fi) |
977 | 977 | { |
978 | - static unsigned type2flags[RTN_MAX + 1] = { | |
978 | + static const unsigned type2flags[RTN_MAX + 1] = { | |
979 | 979 | [7] = RTF_REJECT, [8] = RTF_REJECT, |
980 | 980 | }; |
981 | 981 | unsigned flags = type2flags[type]; |
net/ipv4/fib_semantics.c
net/ipv4/icmp.c
... | ... | @@ -220,7 +220,7 @@ |
220 | 220 | short error; /* This ICMP is classed as an error message */ |
221 | 221 | }; |
222 | 222 | |
223 | -static struct icmp_control icmp_pointers[NR_ICMP_TYPES+1]; | |
223 | +static const struct icmp_control icmp_pointers[NR_ICMP_TYPES+1]; | |
224 | 224 | |
225 | 225 | /* |
226 | 226 | * The ICMP socket(s). This is the most convenient way to flow control |
... | ... | @@ -994,7 +994,7 @@ |
994 | 994 | /* |
995 | 995 | * This table is the definition of how we handle ICMP. |
996 | 996 | */ |
997 | -static struct icmp_control icmp_pointers[NR_ICMP_TYPES + 1] = { | |
997 | +static const struct icmp_control icmp_pointers[NR_ICMP_TYPES + 1] = { | |
998 | 998 | [ICMP_ECHOREPLY] = { |
999 | 999 | .output_entry = ICMP_MIB_OUTECHOREPS, |
1000 | 1000 | .input_entry = ICMP_MIB_INECHOREPS, |
net/ipv4/ipvs/ip_vs_conn.c
... | ... | @@ -771,7 +771,7 @@ |
771 | 771 | * The drop rate array needs tuning for real environments. |
772 | 772 | * Called from timer bh only => no locking |
773 | 773 | */ |
774 | - static char todrop_rate[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; | |
774 | + static const char todrop_rate[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; | |
775 | 775 | static char todrop_counter[9] = {0}; |
776 | 776 | int i; |
777 | 777 |
net/ipv4/ipvs/ip_vs_ctl.c
... | ... | @@ -1909,7 +1909,7 @@ |
1909 | 1909 | #define DAEMON_ARG_LEN (sizeof(struct ip_vs_daemon_user)) |
1910 | 1910 | #define MAX_ARG_LEN SVCDEST_ARG_LEN |
1911 | 1911 | |
1912 | -static unsigned char set_arglen[SET_CMDID(IP_VS_SO_SET_MAX)+1] = { | |
1912 | +static const unsigned char set_arglen[SET_CMDID(IP_VS_SO_SET_MAX)+1] = { | |
1913 | 1913 | [SET_CMDID(IP_VS_SO_SET_ADD)] = SERVICE_ARG_LEN, |
1914 | 1914 | [SET_CMDID(IP_VS_SO_SET_EDIT)] = SERVICE_ARG_LEN, |
1915 | 1915 | [SET_CMDID(IP_VS_SO_SET_DEL)] = SERVICE_ARG_LEN, |
... | ... | @@ -2180,7 +2180,7 @@ |
2180 | 2180 | #define GET_TIMEOUT_ARG_LEN (sizeof(struct ip_vs_timeout_user)) |
2181 | 2181 | #define GET_DAEMON_ARG_LEN (sizeof(struct ip_vs_daemon_user) * 2) |
2182 | 2182 | |
2183 | -static unsigned char get_arglen[GET_CMDID(IP_VS_SO_GET_MAX)+1] = { | |
2183 | +static const unsigned char get_arglen[GET_CMDID(IP_VS_SO_GET_MAX)+1] = { | |
2184 | 2184 | [GET_CMDID(IP_VS_SO_GET_VERSION)] = 64, |
2185 | 2185 | [GET_CMDID(IP_VS_SO_GET_INFO)] = GET_INFO_ARG_LEN, |
2186 | 2186 | [GET_CMDID(IP_VS_SO_GET_SERVICES)] = GET_SERVICES_ARG_LEN, |
net/ipv4/ipvs/ip_vs_proto_tcp.c
... | ... | @@ -251,7 +251,7 @@ |
251 | 251 | #define TCP_DIR_OUTPUT 4 |
252 | 252 | #define TCP_DIR_INPUT_ONLY 8 |
253 | 253 | |
254 | -static int tcp_state_off[IP_VS_DIR_LAST] = { | |
254 | +static const int tcp_state_off[IP_VS_DIR_LAST] = { | |
255 | 255 | [IP_VS_DIR_INPUT] = TCP_DIR_INPUT, |
256 | 256 | [IP_VS_DIR_OUTPUT] = TCP_DIR_OUTPUT, |
257 | 257 | [IP_VS_DIR_INPUT_ONLY] = TCP_DIR_INPUT_ONLY, |
net/ipv4/netfilter/ip_conntrack_amanda.c
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | module_param(master_timeout, int, 0600); |
38 | 38 | MODULE_PARM_DESC(master_timeout, "timeout for the master connection"); |
39 | 39 | |
40 | -static char *conns[] = { "DATA ", "MESG ", "INDEX " }; | |
40 | +static const char *conns[] = { "DATA ", "MESG ", "INDEX " }; | |
41 | 41 | |
42 | 42 | /* This is slow, but it's simple. --RR */ |
43 | 43 | static char *amanda_buffer; |
net/ipv4/netfilter/ip_conntrack_ftp.c
... | ... | @@ -55,7 +55,7 @@ |
55 | 55 | static int try_eprt(const char *, size_t, u_int32_t [], char); |
56 | 56 | static int try_epsv_response(const char *, size_t, u_int32_t [], char); |
57 | 57 | |
58 | -static struct ftp_search { | |
58 | +static const struct ftp_search { | |
59 | 59 | enum ip_conntrack_dir dir; |
60 | 60 | const char *pattern; |
61 | 61 | size_t plen; |
net/ipv4/netfilter/ip_conntrack_irc.c
... | ... | @@ -59,7 +59,7 @@ |
59 | 59 | module_param(dcc_timeout, int, 0400); |
60 | 60 | MODULE_PARM_DESC(dcc_timeout, "timeout on for unestablished DCC channels"); |
61 | 61 | |
62 | -static char *dccprotos[] = { "SEND ", "CHAT ", "MOVE ", "TSEND ", "SCHAT " }; | |
62 | +static const char *dccprotos[] = { "SEND ", "CHAT ", "MOVE ", "TSEND ", "SCHAT " }; | |
63 | 63 | #define MINMATCHLEN 5 |
64 | 64 | |
65 | 65 | #if 0 |
net/ipv4/netfilter/ip_conntrack_proto_icmp.c
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | const struct ip_conntrack_tuple *orig) |
52 | 52 | { |
53 | 53 | /* Add 1; spaces filled with 0. */ |
54 | - static u_int8_t invmap[] | |
54 | + static const u_int8_t invmap[] | |
55 | 55 | = { [ICMP_ECHO] = ICMP_ECHOREPLY + 1, |
56 | 56 | [ICMP_ECHOREPLY] = ICMP_ECHO + 1, |
57 | 57 | [ICMP_TIMESTAMP] = ICMP_TIMESTAMPREPLY + 1, |
... | ... | @@ -110,7 +110,7 @@ |
110 | 110 | return NF_ACCEPT; |
111 | 111 | } |
112 | 112 | |
113 | -static u_int8_t valid_new[] = { | |
113 | +static const u_int8_t valid_new[] = { | |
114 | 114 | [ICMP_ECHO] = 1, |
115 | 115 | [ICMP_TIMESTAMP] = 1, |
116 | 116 | [ICMP_INFO_REQUEST] = 1, |
net/ipv4/netfilter/ip_conntrack_proto_sctp.c
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 | static unsigned long ip_ct_sctp_timeout_shutdown_recd = 300 SECS / 1000; |
66 | 66 | static unsigned long ip_ct_sctp_timeout_shutdown_ack_sent = 3 SECS; |
67 | 67 | |
68 | -static unsigned long * sctp_timeouts[] | |
68 | +static const unsigned long * sctp_timeouts[] | |
69 | 69 | = { NULL, /* SCTP_CONNTRACK_NONE */ |
70 | 70 | &ip_ct_sctp_timeout_closed, /* SCTP_CONNTRACK_CLOSED */ |
71 | 71 | &ip_ct_sctp_timeout_cookie_wait, /* SCTP_CONNTRACK_COOKIE_WAIT */ |
... | ... | @@ -118,7 +118,7 @@ |
118 | 118 | */ |
119 | 119 | |
120 | 120 | /* SCTP conntrack state transitions */ |
121 | -static enum sctp_conntrack sctp_conntracks[2][9][SCTP_CONNTRACK_MAX] = { | |
121 | +static const enum sctp_conntrack sctp_conntracks[2][9][SCTP_CONNTRACK_MAX] = { | |
122 | 122 | { |
123 | 123 | /* ORIGINAL */ |
124 | 124 | /* sNO, sCL, sCW, sCE, sES, sSS, sSR, sSA */ |
net/ipv4/netfilter/ip_conntrack_proto_tcp.c
... | ... | @@ -99,7 +99,7 @@ |
99 | 99 | to ~13-30min depending on RTO. */ |
100 | 100 | unsigned long ip_ct_tcp_timeout_max_retrans = 5 MINS; |
101 | 101 | |
102 | -static unsigned long * tcp_timeouts[] | |
102 | +static const unsigned long * tcp_timeouts[] | |
103 | 103 | = { NULL, /* TCP_CONNTRACK_NONE */ |
104 | 104 | &ip_ct_tcp_timeout_syn_sent, /* TCP_CONNTRACK_SYN_SENT, */ |
105 | 105 | &ip_ct_tcp_timeout_syn_recv, /* TCP_CONNTRACK_SYN_RECV, */ |
... | ... | @@ -170,7 +170,7 @@ |
170 | 170 | * if they are invalid |
171 | 171 | * or we do not support the request (simultaneous open) |
172 | 172 | */ |
173 | -static enum tcp_conntrack tcp_conntracks[2][6][TCP_CONNTRACK_MAX] = { | |
173 | +static const enum tcp_conntrack tcp_conntracks[2][6][TCP_CONNTRACK_MAX] = { | |
174 | 174 | { |
175 | 175 | /* ORIGINAL */ |
176 | 176 | /* sNO, sSS, sSR, sES, sFW, sCW, sLA, sTW, sCL, sLI */ |
... | ... | @@ -817,7 +817,7 @@ |
817 | 817 | #define TH_CWR 0x80 |
818 | 818 | |
819 | 819 | /* table of valid flag combinations - ECE and CWR are always valid */ |
820 | -static u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG) + 1] = | |
820 | +static const u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG) + 1] = | |
821 | 821 | { |
822 | 822 | [TH_SYN] = 1, |
823 | 823 | [TH_SYN|TH_ACK] = 1, |
net/ipv4/netfilter/ip_tables.c
... | ... | @@ -1892,7 +1892,7 @@ |
1892 | 1892 | return pos; |
1893 | 1893 | } |
1894 | 1894 | |
1895 | -static struct { char *name; get_info_t *get_info; } ipt_proc_entry[] = | |
1895 | +static const struct { char *name; get_info_t *get_info; } ipt_proc_entry[] = | |
1896 | 1896 | { { "ip_tables_names", ipt_get_tables }, |
1897 | 1897 | { "ip_tables_targets", ipt_get_targets }, |
1898 | 1898 | { "ip_tables_matches", ipt_get_matches }, |
net/ipv4/netfilter/ipt_LOG.c
... | ... | @@ -197,7 +197,7 @@ |
197 | 197 | } |
198 | 198 | case IPPROTO_ICMP: { |
199 | 199 | struct icmphdr _icmph, *ich; |
200 | - static size_t required_len[NR_ICMP_TYPES+1] | |
200 | + static const size_t required_len[NR_ICMP_TYPES+1] | |
201 | 201 | = { [ICMP_ECHOREPLY] = 4, |
202 | 202 | [ICMP_DEST_UNREACH] |
203 | 203 | = 8 + sizeof(struct iphdr), |
net/ipv4/proc.c
... | ... | @@ -98,7 +98,7 @@ |
98 | 98 | } |
99 | 99 | |
100 | 100 | /* snmp items */ |
101 | -static struct snmp_mib snmp4_ipstats_list[] = { | |
101 | +static const struct snmp_mib snmp4_ipstats_list[] = { | |
102 | 102 | SNMP_MIB_ITEM("InReceives", IPSTATS_MIB_INRECEIVES), |
103 | 103 | SNMP_MIB_ITEM("InHdrErrors", IPSTATS_MIB_INHDRERRORS), |
104 | 104 | SNMP_MIB_ITEM("InAddrErrors", IPSTATS_MIB_INADDRERRORS), |
... | ... | @@ -119,7 +119,7 @@ |
119 | 119 | SNMP_MIB_SENTINEL |
120 | 120 | }; |
121 | 121 | |
122 | -static struct snmp_mib snmp4_icmp_list[] = { | |
122 | +static const struct snmp_mib snmp4_icmp_list[] = { | |
123 | 123 | SNMP_MIB_ITEM("InMsgs", ICMP_MIB_INMSGS), |
124 | 124 | SNMP_MIB_ITEM("InErrors", ICMP_MIB_INERRORS), |
125 | 125 | SNMP_MIB_ITEM("InDestUnreachs", ICMP_MIB_INDESTUNREACHS), |
... | ... | @@ -149,7 +149,7 @@ |
149 | 149 | SNMP_MIB_SENTINEL |
150 | 150 | }; |
151 | 151 | |
152 | -static struct snmp_mib snmp4_tcp_list[] = { | |
152 | +static const struct snmp_mib snmp4_tcp_list[] = { | |
153 | 153 | SNMP_MIB_ITEM("RtoAlgorithm", TCP_MIB_RTOALGORITHM), |
154 | 154 | SNMP_MIB_ITEM("RtoMin", TCP_MIB_RTOMIN), |
155 | 155 | SNMP_MIB_ITEM("RtoMax", TCP_MIB_RTOMAX), |
... | ... | @@ -167,7 +167,7 @@ |
167 | 167 | SNMP_MIB_SENTINEL |
168 | 168 | }; |
169 | 169 | |
170 | -static struct snmp_mib snmp4_udp_list[] = { | |
170 | +static const struct snmp_mib snmp4_udp_list[] = { | |
171 | 171 | SNMP_MIB_ITEM("InDatagrams", UDP_MIB_INDATAGRAMS), |
172 | 172 | SNMP_MIB_ITEM("NoPorts", UDP_MIB_NOPORTS), |
173 | 173 | SNMP_MIB_ITEM("InErrors", UDP_MIB_INERRORS), |
... | ... | @@ -175,7 +175,7 @@ |
175 | 175 | SNMP_MIB_SENTINEL |
176 | 176 | }; |
177 | 177 | |
178 | -static struct snmp_mib snmp4_net_list[] = { | |
178 | +static const struct snmp_mib snmp4_net_list[] = { | |
179 | 179 | SNMP_MIB_ITEM("SyncookiesSent", LINUX_MIB_SYNCOOKIESSENT), |
180 | 180 | SNMP_MIB_ITEM("SyncookiesRecv", LINUX_MIB_SYNCOOKIESRECV), |
181 | 181 | SNMP_MIB_ITEM("SyncookiesFailed", LINUX_MIB_SYNCOOKIESFAILED), |
net/ipv4/route.c
... | ... | @@ -1371,7 +1371,7 @@ |
1371 | 1371 | * are needed for AMPRnet AX.25 paths. |
1372 | 1372 | */ |
1373 | 1373 | |
1374 | -static unsigned short mtu_plateau[] = | |
1374 | +static const unsigned short mtu_plateau[] = | |
1375 | 1375 | {32000, 17914, 8166, 4352, 2002, 1492, 576, 296, 216, 128 }; |
1376 | 1376 | |
1377 | 1377 | static __inline__ unsigned short guess_mtu(unsigned short old_mtu) |
net/ipv4/tcp.c
... | ... | @@ -1413,7 +1413,7 @@ |
1413 | 1413 | * closed. |
1414 | 1414 | */ |
1415 | 1415 | |
1416 | -static unsigned char new_state[16] = { | |
1416 | +static const unsigned char new_state[16] = { | |
1417 | 1417 | /* current state: new state: action: */ |
1418 | 1418 | /* (Invalid) */ TCP_CLOSE, |
1419 | 1419 | /* TCP_ESTABLISHED */ TCP_FIN_WAIT1 | TCP_ACTION_FIN, |
net/ipv6/icmp.c
net/ipv6/netfilter/ip6_tables.c
... | ... | @@ -1972,7 +1972,7 @@ |
1972 | 1972 | return pos; |
1973 | 1973 | } |
1974 | 1974 | |
1975 | -static struct { char *name; get_info_t *get_info; } ip6t_proc_entry[] = | |
1975 | +static const struct { char *name; get_info_t *get_info; } ip6t_proc_entry[] = | |
1976 | 1976 | { { "ip6_tables_names", ip6t_get_tables }, |
1977 | 1977 | { "ip6_tables_targets", ip6t_get_targets }, |
1978 | 1978 | { "ip6_tables_matches", ip6t_get_matches }, |