diff options
author | Greg Kroah-Hartman <gregkh@google.com> | 2019-08-11 15:41:31 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2019-08-11 15:41:31 +0200 |
commit | 74c82193e89daaa486f49dc8a4f8ed38f0460159 (patch) | |
tree | 78bfe03cd39cd778d95e1215d8e53a53ff4ebb44 /include/net/tcp.h | |
parent | 89a387f7fc8079d8938c0632b75769b5622ac16b (diff) | |
parent | 3904234bd04fa7c40467e5d8b3301893fae16e87 (diff) |
Merge 4.4.189 into android-4.4
Changes in 4.4.189
arm64: cpufeature: Fix CTR_EL0 field definitions
arm64: cpufeature: Fix feature comparison for CTR_EL0.{CWG,ERG}
netfilter: nfnetlink_acct: validate NFACCT_QUOTA parameter
HID: Add quirk for HP X1200 PIXART OEM mouse
tcp: be more careful in tcp_fragment()
atm: iphase: Fix Spectre v1 vulnerability
net: bridge: delete local fdb on device init failure
net: fix ifindex collision during namespace removal
tipc: compat: allow tipc commands without arguments
net: sched: Fix a possible null-pointer dereference in dequeue_func()
net/mlx5: Use reversed order when unregister devices
bnx2x: Disable multi-cos feature.
compat_ioctl: pppoe: fix PPPOEIOCSFWD handling
block: blk_init_allocated_queue() set q->fq as NULL in the fail case
spi: bcm2835: Fix 3-wire mode if DMA is enabled
x86: cpufeatures: Sort feature word 7
x86/entry/64: Fix context tracking state warning when load_gs_index fails
x86/speculation: Prepare entry code for Spectre v1 swapgs mitigations
x86/speculation: Enable Spectre v1 swapgs mitigations
x86/entry/64: Use JMP instead of JMPQ
x86/speculation/swapgs: Exclude ATOMs from speculation through SWAPGS
Linux 4.4.189
Change-Id: I3d4e7965c8f5547ab025236686ea0d60e0b6e1f4
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r-- | include/net/tcp.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index 26f410310f1c..8f6ba4deadd5 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -1529,6 +1529,23 @@ static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unli tcp_sk(sk)->highest_sack = NULL; } +static inline struct sk_buff *tcp_rtx_queue_head(const struct sock *sk) +{ + struct sk_buff *skb = tcp_write_queue_head(sk); + + if (skb == tcp_send_head(sk)) + skb = NULL; + + return skb; +} + +static inline struct sk_buff *tcp_rtx_queue_tail(const struct sock *sk) +{ + struct sk_buff *skb = tcp_send_head(sk); + + return skb ? tcp_write_queue_prev(sk, skb) : tcp_write_queue_tail(sk); +} + static inline void __tcp_add_write_queue_tail(struct sock *sk, struct sk_buff *skb) { __skb_queue_tail(&sk->sk_write_queue, skb); |