aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
Diffstat (limited to 'include/net')
-rw-r--r--include/net/bluetooth/smp.h2
-rw-r--r--include/net/cfg80211.h2
-rw-r--r--include/net/codel.h8
-rw-r--r--include/net/dst.h2
-rw-r--r--include/net/inet_connection_sock.h1
-rw-r--r--include/net/inet_sock.h9
-rw-r--r--include/net/ip.h2
-rw-r--r--include/net/llc.h2
-rw-r--r--include/net/netfilter/nf_conntrack_ecache.h1
-rw-r--r--include/net/scm.h4
-rw-r--r--include/net/sock.h4
-rw-r--r--include/net/tcp.h1
-rw-r--r--include/net/xfrm.h9
13 files changed, 30 insertions, 17 deletions
diff --git a/include/net/bluetooth/smp.h b/include/net/bluetooth/smp.h
index ca356a73492..8b27927b2a5 100644
--- a/include/net/bluetooth/smp.h
+++ b/include/net/bluetooth/smp.h
@@ -136,7 +136,7 @@ struct smp_chan {
136}; 136};
137 137
138/* SMP Commands */ 138/* SMP Commands */
139int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level); 139int smp_conn_security(struct hci_conn *hcon, __u8 sec_level);
140int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb); 140int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb);
141int smp_distribute_keys(struct l2cap_conn *conn, __u8 force); 141int smp_distribute_keys(struct l2cap_conn *conn, __u8 force);
142int smp_user_confirm_reply(struct hci_conn *conn, u16 mgmt_op, __le32 passkey); 142int smp_user_confirm_reply(struct hci_conn *conn, u16 mgmt_op, __le32 passkey);
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 493fa0c7900..3d254e10ff3 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -96,6 +96,7 @@ enum ieee80211_band {
96 * is not permitted. 96 * is not permitted.
97 * @IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel 97 * @IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel
98 * is not permitted. 98 * is not permitted.
99 * @IEEE80211_CHAN_NO_OFDM: OFDM is not allowed on this channel.
99 */ 100 */
100enum ieee80211_channel_flags { 101enum ieee80211_channel_flags {
101 IEEE80211_CHAN_DISABLED = 1<<0, 102 IEEE80211_CHAN_DISABLED = 1<<0,
@@ -104,6 +105,7 @@ enum ieee80211_channel_flags {
104 IEEE80211_CHAN_RADAR = 1<<3, 105 IEEE80211_CHAN_RADAR = 1<<3,
105 IEEE80211_CHAN_NO_HT40PLUS = 1<<4, 106 IEEE80211_CHAN_NO_HT40PLUS = 1<<4,
106 IEEE80211_CHAN_NO_HT40MINUS = 1<<5, 107 IEEE80211_CHAN_NO_HT40MINUS = 1<<5,
108 IEEE80211_CHAN_NO_OFDM = 1<<6,
107}; 109};
108 110
109#define IEEE80211_CHAN_NO_HT40 \ 111#define IEEE80211_CHAN_NO_HT40 \
diff --git a/include/net/codel.h b/include/net/codel.h
index 550debfc240..389cf621161 100644
--- a/include/net/codel.h
+++ b/include/net/codel.h
@@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
305 } 305 }
306 } 306 }
307 } else if (drop) { 307 } else if (drop) {
308 u32 delta;
309
308 if (params->ecn && INET_ECN_set_ce(skb)) { 310 if (params->ecn && INET_ECN_set_ce(skb)) {
309 stats->ecn_mark++; 311 stats->ecn_mark++;
310 } else { 312 } else {
@@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
320 * assume that the drop rate that controlled the queue on the 322 * assume that the drop rate that controlled the queue on the
321 * last cycle is a good starting point to control it now. 323 * last cycle is a good starting point to control it now.
322 */ 324 */
323 if (codel_time_before(now - vars->drop_next, 325 delta = vars->count - vars->lastcount;
326 if (delta > 1 &&
327 codel_time_before(now - vars->drop_next,
324 16 * params->interval)) { 328 16 * params->interval)) {
325 vars->count = (vars->count - vars->lastcount) | 1; 329 vars->count = delta;
326 /* we dont care if rec_inv_sqrt approximation 330 /* we dont care if rec_inv_sqrt approximation
327 * is not very precise : 331 * is not very precise :
328 * Next Newton steps will correct it quadratically. 332 * Next Newton steps will correct it quadratically.
diff --git a/include/net/dst.h b/include/net/dst.h
index baf59789006..621e3513ef5 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -110,7 +110,7 @@ struct dst_entry {
110}; 110};
111 111
112extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old); 112extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old);
113extern const u32 dst_default_metrics[RTAX_MAX]; 113extern const u32 dst_default_metrics[];
114 114
115#define DST_METRICS_READ_ONLY 0x1UL 115#define DST_METRICS_READ_ONLY 0x1UL
116#define __DST_METRICS_PTR(Y) \ 116#define __DST_METRICS_PTR(Y) \
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
index 5ee66f517b4..ba1d3615acb 100644
--- a/include/net/inet_connection_sock.h
+++ b/include/net/inet_connection_sock.h
@@ -39,6 +39,7 @@ struct inet_connection_sock_af_ops {
39 int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); 39 int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl);
40 void (*send_check)(struct sock *sk, struct sk_buff *skb); 40 void (*send_check)(struct sock *sk, struct sk_buff *skb);
41 int (*rebuild_header)(struct sock *sk); 41 int (*rebuild_header)(struct sock *sk);
42 void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb);
42 int (*conn_request)(struct sock *sk, struct sk_buff *skb); 43 int (*conn_request)(struct sock *sk, struct sk_buff *skb);
43 struct sock *(*syn_recv_sock)(struct sock *sk, struct sk_buff *skb, 44 struct sock *(*syn_recv_sock)(struct sock *sk, struct sk_buff *skb,
44 struct request_sock *req, 45 struct request_sock *req,
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index 83b567fe194..613cfa40167 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -249,13 +249,4 @@ static inline __u8 inet_sk_flowi_flags(const struct sock *sk)
249 return flags; 249 return flags;
250} 250}
251 251
252static inline void inet_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
253{
254 struct dst_entry *dst = skb_dst(skb);
255
256 dst_hold(dst);
257 sk->sk_rx_dst = dst;
258 inet_sk(sk)->rx_dst_ifindex = skb->skb_iif;
259}
260
261#endif /* _INET_SOCK_H */ 252#endif /* _INET_SOCK_H */
diff --git a/include/net/ip.h b/include/net/ip.h
index bd5e444a19c..5a5d84d3d2c 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -120,7 +120,7 @@ extern struct sk_buff *__ip_make_skb(struct sock *sk,
120 struct flowi4 *fl4, 120 struct flowi4 *fl4,
121 struct sk_buff_head *queue, 121 struct sk_buff_head *queue,
122 struct inet_cork *cork); 122 struct inet_cork *cork);
123extern int ip_send_skb(struct sk_buff *skb); 123extern int ip_send_skb(struct net *net, struct sk_buff *skb);
124extern int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4); 124extern int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4);
125extern void ip_flush_pending_frames(struct sock *sk); 125extern void ip_flush_pending_frames(struct sock *sk);
126extern struct sk_buff *ip_make_skb(struct sock *sk, 126extern struct sk_buff *ip_make_skb(struct sock *sk,
diff --git a/include/net/llc.h b/include/net/llc.h
index 226c846cab0..f2d0fc57052 100644
--- a/include/net/llc.h
+++ b/include/net/llc.h
@@ -133,7 +133,7 @@ extern int llc_build_and_send_ui_pkt(struct llc_sap *sap, struct sk_buff *skb,
133extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb); 133extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb);
134extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb); 134extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb);
135 135
136extern int llc_station_init(void); 136extern void llc_station_init(void);
137extern void llc_station_exit(void); 137extern void llc_station_exit(void);
138 138
139#ifdef CONFIG_PROC_FS 139#ifdef CONFIG_PROC_FS
diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h
index e1ce1048fe5..4a045cda9c6 100644
--- a/include/net/netfilter/nf_conntrack_ecache.h
+++ b/include/net/netfilter/nf_conntrack_ecache.h
@@ -18,6 +18,7 @@ struct nf_conntrack_ecache {
18 u16 ctmask; /* bitmask of ct events to be delivered */ 18 u16 ctmask; /* bitmask of ct events to be delivered */
19 u16 expmask; /* bitmask of expect events to be delivered */ 19 u16 expmask; /* bitmask of expect events to be delivered */
20 u32 pid; /* netlink pid of destroyer */ 20 u32 pid; /* netlink pid of destroyer */
21 struct timer_list timeout;
21}; 22};
22 23
23static inline struct nf_conntrack_ecache * 24static inline struct nf_conntrack_ecache *
diff --git a/include/net/scm.h b/include/net/scm.h
index 079d7887dac..7dc0854f0b3 100644
--- a/include/net/scm.h
+++ b/include/net/scm.h
@@ -70,9 +70,11 @@ static __inline__ void scm_destroy(struct scm_cookie *scm)
70} 70}
71 71
72static __inline__ int scm_send(struct socket *sock, struct msghdr *msg, 72static __inline__ int scm_send(struct socket *sock, struct msghdr *msg,
73 struct scm_cookie *scm) 73 struct scm_cookie *scm, bool forcecreds)
74{ 74{
75 memset(scm, 0, sizeof(*scm)); 75 memset(scm, 0, sizeof(*scm));
76 if (forcecreds)
77 scm_set_cred(scm, task_tgid(current), current_cred());
76 unix_get_peersec_dgram(sock, scm); 78 unix_get_peersec_dgram(sock, scm);
77 if (msg->msg_controllen <= 0) 79 if (msg->msg_controllen <= 0)
78 return 0; 80 return 0;
diff --git a/include/net/sock.h b/include/net/sock.h
index b3730239bf1..adb7da20b5a 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -218,6 +218,7 @@ struct cg_proto;
218 * @sk_route_nocaps: forbidden route capabilities (e.g NETIF_F_GSO_MASK) 218 * @sk_route_nocaps: forbidden route capabilities (e.g NETIF_F_GSO_MASK)
219 * @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4) 219 * @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4)
220 * @sk_gso_max_size: Maximum GSO segment size to build 220 * @sk_gso_max_size: Maximum GSO segment size to build
221 * @sk_gso_max_segs: Maximum number of GSO segments
221 * @sk_lingertime: %SO_LINGER l_linger setting 222 * @sk_lingertime: %SO_LINGER l_linger setting
222 * @sk_backlog: always used with the per-socket spinlock held 223 * @sk_backlog: always used with the per-socket spinlock held
223 * @sk_callback_lock: used with the callbacks in the end of this struct 224 * @sk_callback_lock: used with the callbacks in the end of this struct
@@ -338,6 +339,7 @@ struct sock {
338 netdev_features_t sk_route_nocaps; 339 netdev_features_t sk_route_nocaps;
339 int sk_gso_type; 340 int sk_gso_type;
340 unsigned int sk_gso_max_size; 341 unsigned int sk_gso_max_size;
342 u16 sk_gso_max_segs;
341 int sk_rcvlowat; 343 int sk_rcvlowat;
342 unsigned long sk_lingertime; 344 unsigned long sk_lingertime;
343 struct sk_buff_head sk_error_queue; 345 struct sk_buff_head sk_error_queue;
@@ -1330,7 +1332,7 @@ static inline bool sk_wmem_schedule(struct sock *sk, int size)
1330} 1332}
1331 1333
1332static inline bool 1334static inline bool
1333sk_rmem_schedule(struct sock *sk, struct sk_buff *skb, unsigned int size) 1335sk_rmem_schedule(struct sock *sk, struct sk_buff *skb, int size)
1334{ 1336{
1335 if (!sk_has_account(sk)) 1337 if (!sk_has_account(sk))
1336 return true; 1338 return true;
diff --git a/include/net/tcp.h b/include/net/tcp.h
index e19124b84cd..1f000ffe707 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -464,6 +464,7 @@ extern int tcp_disconnect(struct sock *sk, int flags);
464void tcp_connect_init(struct sock *sk); 464void tcp_connect_init(struct sock *sk);
465void tcp_finish_connect(struct sock *sk, struct sk_buff *skb); 465void tcp_finish_connect(struct sock *sk, struct sk_buff *skb);
466int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size); 466int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size);
467void inet_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb);
467 468
468/* From syncookies.c */ 469/* From syncookies.c */
469extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; 470extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS];
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index d9509eb29b8..639dd1316d3 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -213,6 +213,9 @@ struct xfrm_state {
213 struct xfrm_lifetime_cur curlft; 213 struct xfrm_lifetime_cur curlft;
214 struct tasklet_hrtimer mtimer; 214 struct tasklet_hrtimer mtimer;
215 215
216 /* used to fix curlft->add_time when changing date */
217 long saved_tmo;
218
216 /* Last used time */ 219 /* Last used time */
217 unsigned long lastused; 220 unsigned long lastused;
218 221
@@ -238,6 +241,7 @@ static inline struct net *xs_net(struct xfrm_state *x)
238 241
239/* xflags - make enum if more show up */ 242/* xflags - make enum if more show up */
240#define XFRM_TIME_DEFER 1 243#define XFRM_TIME_DEFER 1
244#define XFRM_SOFT_EXPIRE 2
241 245
242enum { 246enum {
243 XFRM_STATE_VOID, 247 XFRM_STATE_VOID,
@@ -269,6 +273,9 @@ struct xfrm_replay {
269 int (*check)(struct xfrm_state *x, 273 int (*check)(struct xfrm_state *x,
270 struct sk_buff *skb, 274 struct sk_buff *skb,
271 __be32 net_seq); 275 __be32 net_seq);
276 int (*recheck)(struct xfrm_state *x,
277 struct sk_buff *skb,
278 __be32 net_seq);
272 void (*notify)(struct xfrm_state *x, int event); 279 void (*notify)(struct xfrm_state *x, int event);
273 int (*overflow)(struct xfrm_state *x, struct sk_buff *skb); 280 int (*overflow)(struct xfrm_state *x, struct sk_buff *skb);
274}; 281};
@@ -288,6 +295,8 @@ struct xfrm_policy_afinfo {
288 struct flowi *fl, 295 struct flowi *fl,
289 int reverse); 296 int reverse);
290 int (*get_tos)(const struct flowi *fl); 297 int (*get_tos)(const struct flowi *fl);
298 void (*init_dst)(struct net *net,
299 struct xfrm_dst *dst);
291 int (*init_path)(struct xfrm_dst *path, 300 int (*init_path)(struct xfrm_dst *path,
292 struct dst_entry *dst, 301 struct dst_entry *dst,
293 int nfheader_len); 302 int nfheader_len);