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); |
