Commit 9b5b5cff9a6655dbb6d2e2be365bb95eec3950eb

Authored by Arjan van de Ven
Committed by David S. Miller
1 parent fb29644994

[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

... ... @@ -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
... ... @@ -83,7 +83,7 @@
83 83 #define endfor_nexthops(fi) }
84 84  
85 85  
86   -static struct
  86 +static const struct
87 87 {
88 88 int error;
89 89 u8 scope;
... ... @@ -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),
... ... @@ -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),
... ... @@ -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)
... ... @@ -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,
... ... @@ -751,7 +751,7 @@
751 751 inet6_del_protocol(&icmpv6_protocol, IPPROTO_ICMPV6);
752 752 }
753 753  
754   -static struct icmp6_err {
  754 +static const struct icmp6_err {
755 755 int err;
756 756 int fatal;
757 757 } tab_unreach[] = {
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 },