diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/flow.h | 6 | ||||
-rw-r--r-- | include/net/iucv/iucv.h | 2 | ||||
-rw-r--r-- | include/net/tcp.h | 9 | ||||
-rw-r--r-- | include/net/xfrm.h | 23 |
4 files changed, 36 insertions, 4 deletions
diff --git a/include/net/flow.h b/include/net/flow.h index ce4b10d8b412..f3cc1f812619 100644 --- a/include/net/flow.h +++ b/include/net/flow.h | |||
@@ -97,4 +97,10 @@ extern void *flow_cache_lookup(struct flowi *key, u16 family, u8 dir, | |||
97 | extern void flow_cache_flush(void); | 97 | extern void flow_cache_flush(void); |
98 | extern atomic_t flow_cache_genid; | 98 | extern atomic_t flow_cache_genid; |
99 | 99 | ||
100 | static inline int flow_cache_uli_match(struct flowi *fl1, struct flowi *fl2) | ||
101 | { | ||
102 | return (fl1->proto == fl2->proto && | ||
103 | !memcmp(&fl1->uli_u, &fl2->uli_u, sizeof(fl1->uli_u))); | ||
104 | } | ||
105 | |||
100 | #endif | 106 | #endif |
diff --git a/include/net/iucv/iucv.h b/include/net/iucv/iucv.h index 746e7416261e..fd70adbb3566 100644 --- a/include/net/iucv/iucv.h +++ b/include/net/iucv/iucv.h | |||
@@ -16,7 +16,7 @@ | |||
16 | * completed a register, it can exploit the other functions. | 16 | * completed a register, it can exploit the other functions. |
17 | * For furthur reference on all IUCV functionality, refer to the | 17 | * For furthur reference on all IUCV functionality, refer to the |
18 | * CP Programming Services book, also available on the web thru | 18 | * CP Programming Services book, also available on the web thru |
19 | * www.ibm.com/s390/vm/pubs, manual # SC24-5760 | 19 | * www.vm.ibm.com/pubs, manual # SC24-6084 |
20 | * | 20 | * |
21 | * Definition of Return Codes | 21 | * Definition of Return Codes |
22 | * - All positive return codes including zero are reflected back | 22 | * - All positive return codes including zero are reflected back |
diff --git a/include/net/tcp.h b/include/net/tcp.h index a385797f160a..ef8f9d4dae85 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -736,9 +736,7 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk) | |||
736 | 736 | ||
737 | static inline void tcp_sync_left_out(struct tcp_sock *tp) | 737 | static inline void tcp_sync_left_out(struct tcp_sock *tp) |
738 | { | 738 | { |
739 | if (tp->rx_opt.sack_ok && | 739 | BUG_ON(tp->sacked_out + tp->lost_out > tp->packets_out); |
740 | (tp->sacked_out >= tp->packets_out - tp->lost_out)) | ||
741 | tp->sacked_out = tp->packets_out - tp->lost_out; | ||
742 | tp->left_out = tp->sacked_out + tp->lost_out; | 740 | tp->left_out = tp->sacked_out + tp->lost_out; |
743 | } | 741 | } |
744 | 742 | ||
@@ -1201,9 +1199,14 @@ static inline struct sk_buff *tcp_send_head(struct sock *sk) | |||
1201 | 1199 | ||
1202 | static inline void tcp_advance_send_head(struct sock *sk, struct sk_buff *skb) | 1200 | static inline void tcp_advance_send_head(struct sock *sk, struct sk_buff *skb) |
1203 | { | 1201 | { |
1202 | struct tcp_sock *tp = tcp_sk(sk); | ||
1203 | |||
1204 | sk->sk_send_head = skb->next; | 1204 | sk->sk_send_head = skb->next; |
1205 | if (sk->sk_send_head == (struct sk_buff *)&sk->sk_write_queue) | 1205 | if (sk->sk_send_head == (struct sk_buff *)&sk->sk_write_queue) |
1206 | sk->sk_send_head = NULL; | 1206 | sk->sk_send_head = NULL; |
1207 | /* Don't override Nagle indefinately with F-RTO */ | ||
1208 | if (tp->frto_counter == 2) | ||
1209 | tp->frto_counter = 3; | ||
1207 | } | 1210 | } |
1208 | 1211 | ||
1209 | static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unlinked) | 1212 | static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unlinked) |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 8287081d77f2..66c2d3eec03c 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -423,6 +423,18 @@ struct xfrm_sadinfo | |||
423 | u32 sadhmcnt; /* max allowed hash bkts */ | 423 | u32 sadhmcnt; /* max allowed hash bkts */ |
424 | u32 sadcnt; /* current running count */ | 424 | u32 sadcnt; /* current running count */ |
425 | }; | 425 | }; |
426 | |||
427 | struct xfrm_spdinfo | ||
428 | { | ||
429 | u32 incnt; | ||
430 | u32 outcnt; | ||
431 | u32 fwdcnt; | ||
432 | u32 inscnt; | ||
433 | u32 outscnt; | ||
434 | u32 fwdscnt; | ||
435 | u32 spdhcnt; | ||
436 | u32 spdhmcnt; | ||
437 | }; | ||
426 | #ifdef CONFIG_AUDITSYSCALL | 438 | #ifdef CONFIG_AUDITSYSCALL |
427 | extern void xfrm_audit_log(uid_t auid, u32 secid, int type, int result, | 439 | extern void xfrm_audit_log(uid_t auid, u32 secid, int type, int result, |
428 | struct xfrm_policy *xp, struct xfrm_state *x); | 440 | struct xfrm_policy *xp, struct xfrm_state *x); |
@@ -591,6 +603,10 @@ struct xfrm_dst | |||
591 | struct rt6_info rt6; | 603 | struct rt6_info rt6; |
592 | } u; | 604 | } u; |
593 | struct dst_entry *route; | 605 | struct dst_entry *route; |
606 | #ifdef CONFIG_XFRM_SUB_POLICY | ||
607 | struct flowi *origin; | ||
608 | struct xfrm_selector *partner; | ||
609 | #endif | ||
594 | u32 genid; | 610 | u32 genid; |
595 | u32 route_mtu_cached; | 611 | u32 route_mtu_cached; |
596 | u32 child_mtu_cached; | 612 | u32 child_mtu_cached; |
@@ -603,6 +619,12 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) | |||
603 | dst_release(xdst->route); | 619 | dst_release(xdst->route); |
604 | if (likely(xdst->u.dst.xfrm)) | 620 | if (likely(xdst->u.dst.xfrm)) |
605 | xfrm_state_put(xdst->u.dst.xfrm); | 621 | xfrm_state_put(xdst->u.dst.xfrm); |
622 | #ifdef CONFIG_XFRM_SUB_POLICY | ||
623 | kfree(xdst->origin); | ||
624 | xdst->origin = NULL; | ||
625 | kfree(xdst->partner); | ||
626 | xdst->partner = NULL; | ||
627 | #endif | ||
606 | } | 628 | } |
607 | 629 | ||
608 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); | 630 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); |
@@ -946,6 +968,7 @@ extern struct xfrm_state *xfrm_find_acq_byseq(u32 seq); | |||
946 | extern int xfrm_state_delete(struct xfrm_state *x); | 968 | extern int xfrm_state_delete(struct xfrm_state *x); |
947 | extern void xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info); | 969 | extern void xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info); |
948 | extern void xfrm_sad_getinfo(struct xfrm_sadinfo *si); | 970 | extern void xfrm_sad_getinfo(struct xfrm_sadinfo *si); |
971 | extern void xfrm_spd_getinfo(struct xfrm_spdinfo *si); | ||
949 | extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq); | 972 | extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq); |
950 | extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq); | 973 | extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq); |
951 | extern void xfrm_replay_notify(struct xfrm_state *x, int event); | 974 | extern void xfrm_replay_notify(struct xfrm_state *x, int event); |