diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/9p/9p.h | 54 | ||||
-rw-r--r-- | include/net/9p/client.h | 4 | ||||
-rw-r--r-- | include/net/af_unix.h | 2 | ||||
-rw-r--r-- | include/net/caif/caif_dev.h | 4 | ||||
-rw-r--r-- | include/net/caif/caif_shm.h | 26 | ||||
-rw-r--r-- | include/net/caif/caif_spi.h | 2 | ||||
-rw-r--r-- | include/net/caif/cfcnfg.h | 8 | ||||
-rw-r--r-- | include/net/cfg80211.h | 2 | ||||
-rw-r--r-- | include/net/dn.h | 2 | ||||
-rw-r--r-- | include/net/dst.h | 2 | ||||
-rw-r--r-- | include/net/dst_ops.h | 1 | ||||
-rw-r--r-- | include/net/fib_rules.h | 2 | ||||
-rw-r--r-- | include/net/garp.h | 2 | ||||
-rw-r--r-- | include/net/inetpeer.h | 2 | ||||
-rw-r--r-- | include/net/ip.h | 4 | ||||
-rw-r--r-- | include/net/ip6_tunnel.h | 2 | ||||
-rw-r--r-- | include/net/ip_fib.h | 2 | ||||
-rw-r--r-- | include/net/ipip.h | 6 | ||||
-rw-r--r-- | include/net/neighbour.h | 2 | ||||
-rw-r--r-- | include/net/net_namespace.h | 2 | ||||
-rw-r--r-- | include/net/netlink.h | 2 | ||||
-rw-r--r-- | include/net/protocol.h | 4 | ||||
-rw-r--r-- | include/net/sock.h | 6 | ||||
-rw-r--r-- | include/net/tcp.h | 6 | ||||
-rw-r--r-- | include/net/udp.h | 4 | ||||
-rw-r--r-- | include/net/xfrm.h | 4 |
26 files changed, 124 insertions, 33 deletions
diff --git a/include/net/9p/9p.h b/include/net/9p/9p.h index a8de812ccbc8..071fd7a8d781 100644 --- a/include/net/9p/9p.h +++ b/include/net/9p/9p.h | |||
@@ -86,6 +86,8 @@ do { \ | |||
86 | 86 | ||
87 | /** | 87 | /** |
88 | * enum p9_msg_t - 9P message types | 88 | * enum p9_msg_t - 9P message types |
89 | * @P9_TLERROR: not used | ||
90 | * @P9_RLERROR: response for any failed request for 9P2000.L | ||
89 | * @P9_TSTATFS: file system status request | 91 | * @P9_TSTATFS: file system status request |
90 | * @P9_RSTATFS: file system status response | 92 | * @P9_RSTATFS: file system status response |
91 | * @P9_TSYMLINK: make symlink request | 93 | * @P9_TSYMLINK: make symlink request |
@@ -137,6 +139,8 @@ do { \ | |||
137 | */ | 139 | */ |
138 | 140 | ||
139 | enum p9_msg_t { | 141 | enum p9_msg_t { |
142 | P9_TLERROR = 6, | ||
143 | P9_RLERROR, | ||
140 | P9_TSTATFS = 8, | 144 | P9_TSTATFS = 8, |
141 | P9_RSTATFS, | 145 | P9_RSTATFS, |
142 | P9_TLOPEN = 12, | 146 | P9_TLOPEN = 12, |
@@ -149,6 +153,8 @@ enum p9_msg_t { | |||
149 | P9_RMKNOD, | 153 | P9_RMKNOD, |
150 | P9_TRENAME = 20, | 154 | P9_TRENAME = 20, |
151 | P9_RRENAME, | 155 | P9_RRENAME, |
156 | P9_TREADLINK = 22, | ||
157 | P9_RREADLINK, | ||
152 | P9_TGETATTR = 24, | 158 | P9_TGETATTR = 24, |
153 | P9_RGETATTR, | 159 | P9_RGETATTR, |
154 | P9_TSETATTR = 26, | 160 | P9_TSETATTR = 26, |
@@ -159,6 +165,12 @@ enum p9_msg_t { | |||
159 | P9_RXATTRCREATE, | 165 | P9_RXATTRCREATE, |
160 | P9_TREADDIR = 40, | 166 | P9_TREADDIR = 40, |
161 | P9_RREADDIR, | 167 | P9_RREADDIR, |
168 | P9_TFSYNC = 50, | ||
169 | P9_RFSYNC, | ||
170 | P9_TLOCK = 52, | ||
171 | P9_RLOCK, | ||
172 | P9_TGETLOCK = 54, | ||
173 | P9_RGETLOCK, | ||
162 | P9_TLINK = 70, | 174 | P9_TLINK = 70, |
163 | P9_RLINK, | 175 | P9_RLINK, |
164 | P9_TMKDIR = 72, | 176 | P9_TMKDIR = 72, |
@@ -458,6 +470,48 @@ struct p9_iattr_dotl { | |||
458 | u64 mtime_nsec; | 470 | u64 mtime_nsec; |
459 | }; | 471 | }; |
460 | 472 | ||
473 | #define P9_LOCK_SUCCESS 0 | ||
474 | #define P9_LOCK_BLOCKED 1 | ||
475 | #define P9_LOCK_ERROR 2 | ||
476 | #define P9_LOCK_GRACE 3 | ||
477 | |||
478 | #define P9_LOCK_FLAGS_BLOCK 1 | ||
479 | #define P9_LOCK_FLAGS_RECLAIM 2 | ||
480 | |||
481 | /* struct p9_flock: POSIX lock structure | ||
482 | * @type - type of lock | ||
483 | * @flags - lock flags | ||
484 | * @start - starting offset of the lock | ||
485 | * @length - number of bytes | ||
486 | * @proc_id - process id which wants to take lock | ||
487 | * @client_id - client id | ||
488 | */ | ||
489 | |||
490 | struct p9_flock { | ||
491 | u8 type; | ||
492 | u32 flags; | ||
493 | u64 start; | ||
494 | u64 length; | ||
495 | u32 proc_id; | ||
496 | char *client_id; | ||
497 | }; | ||
498 | |||
499 | /* struct p9_getlock: getlock structure | ||
500 | * @type - type of lock | ||
501 | * @start - starting offset of the lock | ||
502 | * @length - number of bytes | ||
503 | * @proc_id - process id which wants to take lock | ||
504 | * @client_id - client id | ||
505 | */ | ||
506 | |||
507 | struct p9_getlock { | ||
508 | u8 type; | ||
509 | u64 start; | ||
510 | u64 length; | ||
511 | u32 proc_id; | ||
512 | char *client_id; | ||
513 | }; | ||
514 | |||
461 | /* Structures for Protocol Operations */ | 515 | /* Structures for Protocol Operations */ |
462 | struct p9_tstatfs { | 516 | struct p9_tstatfs { |
463 | u32 fid; | 517 | u32 fid; |
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index 7f63d5ab7b44..83ba6a4d58a3 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h | |||
@@ -229,6 +229,7 @@ int p9_client_symlink(struct p9_fid *fid, char *name, char *symname, gid_t gid, | |||
229 | int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode, | 229 | int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode, |
230 | gid_t gid, struct p9_qid *qid); | 230 | gid_t gid, struct p9_qid *qid); |
231 | int p9_client_clunk(struct p9_fid *fid); | 231 | int p9_client_clunk(struct p9_fid *fid); |
232 | int p9_client_fsync(struct p9_fid *fid, int datasync); | ||
232 | int p9_client_remove(struct p9_fid *fid); | 233 | int p9_client_remove(struct p9_fid *fid); |
233 | int p9_client_read(struct p9_fid *fid, char *data, char __user *udata, | 234 | int p9_client_read(struct p9_fid *fid, char *data, char __user *udata, |
234 | u64 offset, u32 count); | 235 | u64 offset, u32 count); |
@@ -248,6 +249,8 @@ int p9_client_mknod_dotl(struct p9_fid *oldfid, char *name, int mode, | |||
248 | dev_t rdev, gid_t gid, struct p9_qid *); | 249 | dev_t rdev, gid_t gid, struct p9_qid *); |
249 | int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode, | 250 | int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode, |
250 | gid_t gid, struct p9_qid *); | 251 | gid_t gid, struct p9_qid *); |
252 | int p9_client_lock_dotl(struct p9_fid *fid, struct p9_flock *flock, u8 *status); | ||
253 | int p9_client_getlock_dotl(struct p9_fid *fid, struct p9_getlock *fl); | ||
251 | struct p9_req_t *p9_tag_lookup(struct p9_client *, u16); | 254 | struct p9_req_t *p9_tag_lookup(struct p9_client *, u16); |
252 | void p9_client_cb(struct p9_client *c, struct p9_req_t *req); | 255 | void p9_client_cb(struct p9_client *c, struct p9_req_t *req); |
253 | 256 | ||
@@ -259,5 +262,6 @@ int p9_is_proto_dotu(struct p9_client *clnt); | |||
259 | int p9_is_proto_dotl(struct p9_client *clnt); | 262 | int p9_is_proto_dotl(struct p9_client *clnt); |
260 | struct p9_fid *p9_client_xattrwalk(struct p9_fid *, const char *, u64 *); | 263 | struct p9_fid *p9_client_xattrwalk(struct p9_fid *, const char *, u64 *); |
261 | int p9_client_xattrcreate(struct p9_fid *, const char *, u64, int); | 264 | int p9_client_xattrcreate(struct p9_fid *, const char *, u64, int); |
265 | int p9_client_readlink(struct p9_fid *fid, char **target); | ||
262 | 266 | ||
263 | #endif /* NET_9P_CLIENT_H */ | 267 | #endif /* NET_9P_CLIENT_H */ |
diff --git a/include/net/af_unix.h b/include/net/af_unix.h index 90c9e2872f27..18e5c3f67580 100644 --- a/include/net/af_unix.h +++ b/include/net/af_unix.h | |||
@@ -10,6 +10,7 @@ extern void unix_inflight(struct file *fp); | |||
10 | extern void unix_notinflight(struct file *fp); | 10 | extern void unix_notinflight(struct file *fp); |
11 | extern void unix_gc(void); | 11 | extern void unix_gc(void); |
12 | extern void wait_for_unix_gc(void); | 12 | extern void wait_for_unix_gc(void); |
13 | extern struct sock *unix_get_socket(struct file *filp); | ||
13 | 14 | ||
14 | #define UNIX_HASH_SIZE 256 | 15 | #define UNIX_HASH_SIZE 256 |
15 | 16 | ||
@@ -56,6 +57,7 @@ struct unix_sock { | |||
56 | spinlock_t lock; | 57 | spinlock_t lock; |
57 | unsigned int gc_candidate : 1; | 58 | unsigned int gc_candidate : 1; |
58 | unsigned int gc_maybe_cycle : 1; | 59 | unsigned int gc_maybe_cycle : 1; |
60 | unsigned char recursion_level; | ||
59 | struct socket_wq peer_wq; | 61 | struct socket_wq peer_wq; |
60 | }; | 62 | }; |
61 | #define unix_sk(__sk) ((struct unix_sock *)__sk) | 63 | #define unix_sk(__sk) ((struct unix_sock *)__sk) |
diff --git a/include/net/caif/caif_dev.h b/include/net/caif/caif_dev.h index 6da573c75d54..8eff83b95366 100644 --- a/include/net/caif/caif_dev.h +++ b/include/net/caif/caif_dev.h | |||
@@ -28,7 +28,7 @@ struct caif_param { | |||
28 | * @sockaddr: Socket address to connect. | 28 | * @sockaddr: Socket address to connect. |
29 | * @priority: Priority of the connection. | 29 | * @priority: Priority of the connection. |
30 | * @link_selector: Link selector (high bandwidth or low latency) | 30 | * @link_selector: Link selector (high bandwidth or low latency) |
31 | * @link_name: Name of the CAIF Link Layer to use. | 31 | * @ifindex: kernel index of the interface. |
32 | * @param: Connect Request parameters (CAIF_SO_REQ_PARAM). | 32 | * @param: Connect Request parameters (CAIF_SO_REQ_PARAM). |
33 | * | 33 | * |
34 | * This struct is used when connecting a CAIF channel. | 34 | * This struct is used when connecting a CAIF channel. |
@@ -39,7 +39,7 @@ struct caif_connect_request { | |||
39 | struct sockaddr_caif sockaddr; | 39 | struct sockaddr_caif sockaddr; |
40 | enum caif_channel_priority priority; | 40 | enum caif_channel_priority priority; |
41 | enum caif_link_selector link_selector; | 41 | enum caif_link_selector link_selector; |
42 | char link_name[16]; | 42 | int ifindex; |
43 | struct caif_param param; | 43 | struct caif_param param; |
44 | }; | 44 | }; |
45 | 45 | ||
diff --git a/include/net/caif/caif_shm.h b/include/net/caif/caif_shm.h new file mode 100644 index 000000000000..5bcce55438cf --- /dev/null +++ b/include/net/caif/caif_shm.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson AB 2010 | ||
3 | * Contact: Sjur Brendeland / sjur.brandeland@stericsson.com | ||
4 | * Author: Amarnath Revanna / amarnath.bangalore.revanna@stericsson.com | ||
5 | * License terms: GNU General Public License (GPL) version 2 | ||
6 | */ | ||
7 | |||
8 | #ifndef CAIF_SHM_H_ | ||
9 | #define CAIF_SHM_H_ | ||
10 | |||
11 | struct shmdev_layer { | ||
12 | u32 shm_base_addr; | ||
13 | u32 shm_total_sz; | ||
14 | u32 shm_id; | ||
15 | u32 shm_loopback; | ||
16 | void *hmbx; | ||
17 | int (*pshmdev_mbxsend) (u32 shm_id, u32 mbx_msg); | ||
18 | int (*pshmdev_mbxsetup) (void *pshmdrv_cb, | ||
19 | struct shmdev_layer *pshm_dev, void *pshm_drv); | ||
20 | struct net_device *pshm_netdev; | ||
21 | }; | ||
22 | |||
23 | extern int caif_shmcore_probe(struct shmdev_layer *pshm_dev); | ||
24 | extern void caif_shmcore_remove(struct net_device *pshm_netdev); | ||
25 | |||
26 | #endif | ||
diff --git a/include/net/caif/caif_spi.h b/include/net/caif/caif_spi.h index ce4570dff020..87c3d11b8e55 100644 --- a/include/net/caif/caif_spi.h +++ b/include/net/caif/caif_spi.h | |||
@@ -121,6 +121,8 @@ struct cfspi { | |||
121 | wait_queue_head_t wait; | 121 | wait_queue_head_t wait; |
122 | spinlock_t lock; | 122 | spinlock_t lock; |
123 | bool flow_stop; | 123 | bool flow_stop; |
124 | bool slave; | ||
125 | bool slave_talked; | ||
124 | #ifdef CONFIG_DEBUG_FS | 126 | #ifdef CONFIG_DEBUG_FS |
125 | enum cfspi_state dbg_state; | 127 | enum cfspi_state dbg_state; |
126 | u16 pcmd; | 128 | u16 pcmd; |
diff --git a/include/net/caif/cfcnfg.h b/include/net/caif/cfcnfg.h index bd646faffa47..f688478bfb84 100644 --- a/include/net/caif/cfcnfg.h +++ b/include/net/caif/cfcnfg.h | |||
@@ -139,10 +139,10 @@ struct dev_info *cfcnfg_get_phyid(struct cfcnfg *cnfg, | |||
139 | enum cfcnfg_phy_preference phy_pref); | 139 | enum cfcnfg_phy_preference phy_pref); |
140 | 140 | ||
141 | /** | 141 | /** |
142 | * cfcnfg_get_named() - Get the Physical Identifier of CAIF Link Layer | 142 | * cfcnfg_get_id_from_ifi() - Get the Physical Identifier of ifindex, |
143 | * it matches caif physical id with the kernel interface id. | ||
143 | * @cnfg: Configuration object | 144 | * @cnfg: Configuration object |
144 | * @name: Name of the Physical Layer (Caif Link Layer) | 145 | * @ifi: ifindex obtained from socket.c bindtodevice. |
145 | */ | 146 | */ |
146 | int cfcnfg_get_named(struct cfcnfg *cnfg, char *name); | 147 | int cfcnfg_get_id_from_ifi(struct cfcnfg *cnfg, int ifi); |
147 | |||
148 | #endif /* CFCNFG_H_ */ | 148 | #endif /* CFCNFG_H_ */ |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 2a7936d7851d..97b8b7c9b63c 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -1355,7 +1355,7 @@ enum wiphy_flags { | |||
1355 | WIPHY_FLAG_4ADDR_AP = BIT(5), | 1355 | WIPHY_FLAG_4ADDR_AP = BIT(5), |
1356 | WIPHY_FLAG_4ADDR_STATION = BIT(6), | 1356 | WIPHY_FLAG_4ADDR_STATION = BIT(6), |
1357 | WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), | 1357 | WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), |
1358 | WIPHY_FLAG_IBSS_RSN = BIT(7), | 1358 | WIPHY_FLAG_IBSS_RSN = BIT(8), |
1359 | }; | 1359 | }; |
1360 | 1360 | ||
1361 | struct mac_address { | 1361 | struct mac_address { |
diff --git a/include/net/dn.h b/include/net/dn.h index e5469f7b67a3..a514a3cf4573 100644 --- a/include/net/dn.h +++ b/include/net/dn.h | |||
@@ -225,7 +225,7 @@ extern int decnet_di_count; | |||
225 | extern int decnet_dr_count; | 225 | extern int decnet_dr_count; |
226 | extern int decnet_no_fc_max_cwnd; | 226 | extern int decnet_no_fc_max_cwnd; |
227 | 227 | ||
228 | extern int sysctl_decnet_mem[3]; | 228 | extern long sysctl_decnet_mem[3]; |
229 | extern int sysctl_decnet_wmem[3]; | 229 | extern int sysctl_decnet_wmem[3]; |
230 | extern int sysctl_decnet_rmem[3]; | 230 | extern int sysctl_decnet_rmem[3]; |
231 | 231 | ||
diff --git a/include/net/dst.h b/include/net/dst.h index a217c838ec0d..ffe9cb719c0e 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -95,7 +95,7 @@ struct dst_entry { | |||
95 | unsigned long lastuse; | 95 | unsigned long lastuse; |
96 | union { | 96 | union { |
97 | struct dst_entry *next; | 97 | struct dst_entry *next; |
98 | struct rtable *rt_next; | 98 | struct rtable __rcu *rt_next; |
99 | struct rt6_info *rt6_next; | 99 | struct rt6_info *rt6_next; |
100 | struct dn_route *dn_next; | 100 | struct dn_route *dn_next; |
101 | }; | 101 | }; |
diff --git a/include/net/dst_ops.h b/include/net/dst_ops.h index 1fa5306e3e23..51665b3461b8 100644 --- a/include/net/dst_ops.h +++ b/include/net/dst_ops.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _NET_DST_OPS_H | 2 | #define _NET_DST_OPS_H |
3 | #include <linux/types.h> | 3 | #include <linux/types.h> |
4 | #include <linux/percpu_counter.h> | 4 | #include <linux/percpu_counter.h> |
5 | #include <linux/cache.h> | ||
5 | 6 | ||
6 | struct dst_entry; | 7 | struct dst_entry; |
7 | struct kmem_cachep; | 8 | struct kmem_cachep; |
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index 106f3097d384..075f1e3a0fed 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h | |||
@@ -20,7 +20,7 @@ struct fib_rule { | |||
20 | u32 table; | 20 | u32 table; |
21 | u8 action; | 21 | u8 action; |
22 | u32 target; | 22 | u32 target; |
23 | struct fib_rule * ctarget; | 23 | struct fib_rule __rcu *ctarget; |
24 | char iifname[IFNAMSIZ]; | 24 | char iifname[IFNAMSIZ]; |
25 | char oifname[IFNAMSIZ]; | 25 | char oifname[IFNAMSIZ]; |
26 | struct rcu_head rcu; | 26 | struct rcu_head rcu; |
diff --git a/include/net/garp.h b/include/net/garp.h index 825f172caba9..f4c295984c45 100644 --- a/include/net/garp.h +++ b/include/net/garp.h | |||
@@ -107,7 +107,7 @@ struct garp_applicant { | |||
107 | }; | 107 | }; |
108 | 108 | ||
109 | struct garp_port { | 109 | struct garp_port { |
110 | struct garp_applicant *applicants[GARP_APPLICATION_MAX + 1]; | 110 | struct garp_applicant __rcu *applicants[GARP_APPLICATION_MAX + 1]; |
111 | }; | 111 | }; |
112 | 112 | ||
113 | extern int garp_register_application(struct garp_application *app); | 113 | extern int garp_register_application(struct garp_application *app); |
diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h index 417d0c894f29..fe239bfe5f7f 100644 --- a/include/net/inetpeer.h +++ b/include/net/inetpeer.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | struct inet_peer { | 16 | struct inet_peer { |
17 | /* group together avl_left,avl_right,v4daddr to speedup lookups */ | 17 | /* group together avl_left,avl_right,v4daddr to speedup lookups */ |
18 | struct inet_peer *avl_left, *avl_right; | 18 | struct inet_peer __rcu *avl_left, *avl_right; |
19 | __be32 v4daddr; /* peer's address */ | 19 | __be32 v4daddr; /* peer's address */ |
20 | __u32 avl_height; | 20 | __u32 avl_height; |
21 | struct list_head unused; | 21 | struct list_head unused; |
diff --git a/include/net/ip.h b/include/net/ip.h index dbee3fe260e1..86e2b182a0c0 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -59,7 +59,7 @@ struct ipcm_cookie { | |||
59 | #define IPCB(skb) ((struct inet_skb_parm*)((skb)->cb)) | 59 | #define IPCB(skb) ((struct inet_skb_parm*)((skb)->cb)) |
60 | 60 | ||
61 | struct ip_ra_chain { | 61 | struct ip_ra_chain { |
62 | struct ip_ra_chain *next; | 62 | struct ip_ra_chain __rcu *next; |
63 | struct sock *sk; | 63 | struct sock *sk; |
64 | union { | 64 | union { |
65 | void (*destructor)(struct sock *); | 65 | void (*destructor)(struct sock *); |
@@ -68,7 +68,7 @@ struct ip_ra_chain { | |||
68 | struct rcu_head rcu; | 68 | struct rcu_head rcu; |
69 | }; | 69 | }; |
70 | 70 | ||
71 | extern struct ip_ra_chain *ip_ra_chain; | 71 | extern struct ip_ra_chain __rcu *ip_ra_chain; |
72 | 72 | ||
73 | /* IP flags. */ | 73 | /* IP flags. */ |
74 | #define IP_CE 0x8000 /* Flag: "Congestion" */ | 74 | #define IP_CE 0x8000 /* Flag: "Congestion" */ |
diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h index fc94ec568a50..fc73e667b50e 100644 --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h | |||
@@ -13,7 +13,7 @@ | |||
13 | /* IPv6 tunnel */ | 13 | /* IPv6 tunnel */ |
14 | 14 | ||
15 | struct ip6_tnl { | 15 | struct ip6_tnl { |
16 | struct ip6_tnl *next; /* next tunnel in list */ | 16 | struct ip6_tnl __rcu *next; /* next tunnel in list */ |
17 | struct net_device *dev; /* virtual device associated with tunnel */ | 17 | struct net_device *dev; /* virtual device associated with tunnel */ |
18 | struct ip6_tnl_parm parms; /* tunnel configuration parameters */ | 18 | struct ip6_tnl_parm parms; /* tunnel configuration parameters */ |
19 | struct flowi fl; /* flowi template for xmit */ | 19 | struct flowi fl; /* flowi template for xmit */ |
diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index ba3666d31766..07bdb5e9e8ac 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h | |||
@@ -158,6 +158,8 @@ extern int fib_table_flush(struct fib_table *table); | |||
158 | extern void fib_table_select_default(struct fib_table *table, | 158 | extern void fib_table_select_default(struct fib_table *table, |
159 | const struct flowi *flp, | 159 | const struct flowi *flp, |
160 | struct fib_result *res); | 160 | struct fib_result *res); |
161 | extern void fib_free_table(struct fib_table *tb); | ||
162 | |||
161 | 163 | ||
162 | 164 | ||
163 | #ifndef CONFIG_IP_MULTIPLE_TABLES | 165 | #ifndef CONFIG_IP_MULTIPLE_TABLES |
diff --git a/include/net/ipip.h b/include/net/ipip.h index 58abbf966b0c..a32654d52730 100644 --- a/include/net/ipip.h +++ b/include/net/ipip.h | |||
@@ -16,7 +16,7 @@ struct ip_tunnel_6rd_parm { | |||
16 | }; | 16 | }; |
17 | 17 | ||
18 | struct ip_tunnel { | 18 | struct ip_tunnel { |
19 | struct ip_tunnel *next; | 19 | struct ip_tunnel __rcu *next; |
20 | struct net_device *dev; | 20 | struct net_device *dev; |
21 | 21 | ||
22 | int err_count; /* Number of arrived ICMP errors */ | 22 | int err_count; /* Number of arrived ICMP errors */ |
@@ -34,12 +34,12 @@ struct ip_tunnel { | |||
34 | #ifdef CONFIG_IPV6_SIT_6RD | 34 | #ifdef CONFIG_IPV6_SIT_6RD |
35 | struct ip_tunnel_6rd_parm ip6rd; | 35 | struct ip_tunnel_6rd_parm ip6rd; |
36 | #endif | 36 | #endif |
37 | struct ip_tunnel_prl_entry *prl; /* potential router list */ | 37 | struct ip_tunnel_prl_entry __rcu *prl; /* potential router list */ |
38 | unsigned int prl_count; /* # of entries in PRL */ | 38 | unsigned int prl_count; /* # of entries in PRL */ |
39 | }; | 39 | }; |
40 | 40 | ||
41 | struct ip_tunnel_prl_entry { | 41 | struct ip_tunnel_prl_entry { |
42 | struct ip_tunnel_prl_entry *next; | 42 | struct ip_tunnel_prl_entry __rcu *next; |
43 | __be32 addr; | 43 | __be32 addr; |
44 | u16 flags; | 44 | u16 flags; |
45 | struct rcu_head rcu_head; | 45 | struct rcu_head rcu_head; |
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 55590ab16b3e..6beb1ffc2b7f 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h | |||
@@ -303,7 +303,7 @@ static inline void neigh_confirm(struct neighbour *neigh) | |||
303 | 303 | ||
304 | static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) | 304 | static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) |
305 | { | 305 | { |
306 | unsigned long now = ACCESS_ONCE(jiffies); | 306 | unsigned long now = jiffies; |
307 | 307 | ||
308 | if (neigh->used != now) | 308 | if (neigh->used != now) |
309 | neigh->used = now; | 309 | neigh->used = now; |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 65af9a07cf76..1bf812b21fb7 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -88,7 +88,7 @@ struct net { | |||
88 | #ifdef CONFIG_WEXT_CORE | 88 | #ifdef CONFIG_WEXT_CORE |
89 | struct sk_buff_head wext_nlevents; | 89 | struct sk_buff_head wext_nlevents; |
90 | #endif | 90 | #endif |
91 | struct net_generic *gen; | 91 | struct net_generic __rcu *gen; |
92 | 92 | ||
93 | /* Note : following structs are cache line aligned */ | 93 | /* Note : following structs are cache line aligned */ |
94 | #ifdef CONFIG_XFRM | 94 | #ifdef CONFIG_XFRM |
diff --git a/include/net/netlink.h b/include/net/netlink.h index f3b201d335b3..9801c55de5d6 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h | |||
@@ -384,7 +384,7 @@ static inline int nlmsg_parse(const struct nlmsghdr *nlh, int hdrlen, | |||
384 | * | 384 | * |
385 | * Returns the first attribute which matches the specified type. | 385 | * Returns the first attribute which matches the specified type. |
386 | */ | 386 | */ |
387 | static inline struct nlattr *nlmsg_find_attr(struct nlmsghdr *nlh, | 387 | static inline struct nlattr *nlmsg_find_attr(const struct nlmsghdr *nlh, |
388 | int hdrlen, int attrtype) | 388 | int hdrlen, int attrtype) |
389 | { | 389 | { |
390 | return nla_find(nlmsg_attrdata(nlh, hdrlen), | 390 | return nla_find(nlmsg_attrdata(nlh, hdrlen), |
diff --git a/include/net/protocol.h b/include/net/protocol.h index f1effdd3c265..dc07495bce4c 100644 --- a/include/net/protocol.h +++ b/include/net/protocol.h | |||
@@ -89,10 +89,10 @@ struct inet_protosw { | |||
89 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ | 89 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ |
90 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ | 90 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ |
91 | 91 | ||
92 | extern const struct net_protocol *inet_protos[MAX_INET_PROTOS]; | 92 | extern const struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS]; |
93 | 93 | ||
94 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) | 94 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) |
95 | extern const struct inet6_protocol *inet6_protos[MAX_INET_PROTOS]; | 95 | extern const struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS]; |
96 | #endif | 96 | #endif |
97 | 97 | ||
98 | extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num); | 98 | extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num); |
diff --git a/include/net/sock.h b/include/net/sock.h index 73a4f9702a65..a6338d039857 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -301,7 +301,7 @@ struct sock { | |||
301 | const struct cred *sk_peer_cred; | 301 | const struct cred *sk_peer_cred; |
302 | long sk_rcvtimeo; | 302 | long sk_rcvtimeo; |
303 | long sk_sndtimeo; | 303 | long sk_sndtimeo; |
304 | struct sk_filter *sk_filter; | 304 | struct sk_filter __rcu *sk_filter; |
305 | void *sk_protinfo; | 305 | void *sk_protinfo; |
306 | struct timer_list sk_timer; | 306 | struct timer_list sk_timer; |
307 | ktime_t sk_stamp; | 307 | ktime_t sk_stamp; |
@@ -762,7 +762,7 @@ struct proto { | |||
762 | 762 | ||
763 | /* Memory pressure */ | 763 | /* Memory pressure */ |
764 | void (*enter_memory_pressure)(struct sock *sk); | 764 | void (*enter_memory_pressure)(struct sock *sk); |
765 | atomic_t *memory_allocated; /* Current allocated memory. */ | 765 | atomic_long_t *memory_allocated; /* Current allocated memory. */ |
766 | struct percpu_counter *sockets_allocated; /* Current number of sockets. */ | 766 | struct percpu_counter *sockets_allocated; /* Current number of sockets. */ |
767 | /* | 767 | /* |
768 | * Pressure flag: try to collapse. | 768 | * Pressure flag: try to collapse. |
@@ -771,7 +771,7 @@ struct proto { | |||
771 | * is strict, actions are advisory and have some latency. | 771 | * is strict, actions are advisory and have some latency. |
772 | */ | 772 | */ |
773 | int *memory_pressure; | 773 | int *memory_pressure; |
774 | int *sysctl_mem; | 774 | long *sysctl_mem; |
775 | int *sysctl_wmem; | 775 | int *sysctl_wmem; |
776 | int *sysctl_rmem; | 776 | int *sysctl_rmem; |
777 | int max_header; | 777 | int max_header; |
diff --git a/include/net/tcp.h b/include/net/tcp.h index 4fee0424af7e..e36c874c7fb1 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -224,7 +224,7 @@ extern int sysctl_tcp_fack; | |||
224 | extern int sysctl_tcp_reordering; | 224 | extern int sysctl_tcp_reordering; |
225 | extern int sysctl_tcp_ecn; | 225 | extern int sysctl_tcp_ecn; |
226 | extern int sysctl_tcp_dsack; | 226 | extern int sysctl_tcp_dsack; |
227 | extern int sysctl_tcp_mem[3]; | 227 | extern long sysctl_tcp_mem[3]; |
228 | extern int sysctl_tcp_wmem[3]; | 228 | extern int sysctl_tcp_wmem[3]; |
229 | extern int sysctl_tcp_rmem[3]; | 229 | extern int sysctl_tcp_rmem[3]; |
230 | extern int sysctl_tcp_app_win; | 230 | extern int sysctl_tcp_app_win; |
@@ -247,7 +247,7 @@ extern int sysctl_tcp_cookie_size; | |||
247 | extern int sysctl_tcp_thin_linear_timeouts; | 247 | extern int sysctl_tcp_thin_linear_timeouts; |
248 | extern int sysctl_tcp_thin_dupack; | 248 | extern int sysctl_tcp_thin_dupack; |
249 | 249 | ||
250 | extern atomic_t tcp_memory_allocated; | 250 | extern atomic_long_t tcp_memory_allocated; |
251 | extern struct percpu_counter tcp_sockets_allocated; | 251 | extern struct percpu_counter tcp_sockets_allocated; |
252 | extern int tcp_memory_pressure; | 252 | extern int tcp_memory_pressure; |
253 | 253 | ||
@@ -280,7 +280,7 @@ static inline bool tcp_too_many_orphans(struct sock *sk, int shift) | |||
280 | } | 280 | } |
281 | 281 | ||
282 | if (sk->sk_wmem_queued > SOCK_MIN_SNDBUF && | 282 | if (sk->sk_wmem_queued > SOCK_MIN_SNDBUF && |
283 | atomic_read(&tcp_memory_allocated) > sysctl_tcp_mem[2]) | 283 | atomic_long_read(&tcp_memory_allocated) > sysctl_tcp_mem[2]) |
284 | return true; | 284 | return true; |
285 | return false; | 285 | return false; |
286 | } | 286 | } |
diff --git a/include/net/udp.h b/include/net/udp.h index 200b82848c9a..bb967dd59bf7 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
@@ -105,10 +105,10 @@ static inline struct udp_hslot *udp_hashslot2(struct udp_table *table, | |||
105 | 105 | ||
106 | extern struct proto udp_prot; | 106 | extern struct proto udp_prot; |
107 | 107 | ||
108 | extern atomic_t udp_memory_allocated; | 108 | extern atomic_long_t udp_memory_allocated; |
109 | 109 | ||
110 | /* sysctl variables for udp */ | 110 | /* sysctl variables for udp */ |
111 | extern int sysctl_udp_mem[3]; | 111 | extern long sysctl_udp_mem[3]; |
112 | extern int sysctl_udp_rmem_min; | 112 | extern int sysctl_udp_rmem_min; |
113 | extern int sysctl_udp_wmem_min; | 113 | extern int sysctl_udp_wmem_min; |
114 | 114 | ||
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index f28d7c9b9f8d..bcfb6b24b019 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -1264,7 +1264,7 @@ struct xfrm_tunnel { | |||
1264 | int (*handler)(struct sk_buff *skb); | 1264 | int (*handler)(struct sk_buff *skb); |
1265 | int (*err_handler)(struct sk_buff *skb, u32 info); | 1265 | int (*err_handler)(struct sk_buff *skb, u32 info); |
1266 | 1266 | ||
1267 | struct xfrm_tunnel *next; | 1267 | struct xfrm_tunnel __rcu *next; |
1268 | int priority; | 1268 | int priority; |
1269 | }; | 1269 | }; |
1270 | 1270 | ||
@@ -1272,7 +1272,7 @@ struct xfrm6_tunnel { | |||
1272 | int (*handler)(struct sk_buff *skb); | 1272 | int (*handler)(struct sk_buff *skb); |
1273 | int (*err_handler)(struct sk_buff *skb, struct inet6_skb_parm *opt, | 1273 | int (*err_handler)(struct sk_buff *skb, struct inet6_skb_parm *opt, |
1274 | u8 type, u8 code, int offset, __be32 info); | 1274 | u8 type, u8 code, int offset, __be32 info); |
1275 | struct xfrm6_tunnel *next; | 1275 | struct xfrm6_tunnel __rcu *next; |
1276 | int priority; | 1276 | int priority; |
1277 | }; | 1277 | }; |
1278 | 1278 | ||