40 lines
1.4 KiB
Diff
40 lines
1.4 KiB
Diff
diff --git a/Makefile b/Makefile
|
|
index c0feac2..435a3d7 100644
|
|
diff --git a/kernel/exit.c b/kernel/exit.c
|
|
index 993369e..096c27d 100644
|
|
--- a/kernel/exit.c
|
|
+++ b/kernel/exit.c
|
|
@@ -1362,8 +1362,7 @@ static int wait_task_stopped(struct task_struct *p, int delayed_group_leader,
|
|
int why = (p->ptrace & PT_PTRACED) ? CLD_TRAPPED : CLD_STOPPED;
|
|
|
|
exit_code = p->exit_code;
|
|
- if (unlikely(!exit_code) ||
|
|
- unlikely(p->state & TASK_TRACED))
|
|
+ if (unlikely(!exit_code) || unlikely(p->exit_state))
|
|
goto bail_ref;
|
|
return wait_noreap_copyout(p, pid, uid,
|
|
why, (exit_code << 8) | 0x7f,
|
|
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
|
|
index f893e90..c9298a7 100644
|
|
--- a/net/ipv4/tcp_input.c
|
|
+++ b/net/ipv4/tcp_input.c
|
|
@@ -1012,6 +1012,9 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
|
|
if (before(TCP_SKB_CB(ack_skb)->ack_seq, prior_snd_una - tp->max_window))
|
|
return 0;
|
|
|
|
+ if (!tp->packets_out)
|
|
+ goto out;
|
|
+
|
|
/* SACK fastpath:
|
|
* if the only SACK change is the increase of the end_seq of
|
|
* the first block then only apply that SACK block
|
|
@@ -1280,6 +1283,8 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
|
|
(!tp->frto_highmark || after(tp->snd_una, tp->frto_highmark)))
|
|
tcp_update_reordering(sk, ((tp->fackets_out + 1) - reord), 0);
|
|
|
|
+out:
|
|
+
|
|
#if FASTRETRANS_DEBUG > 0
|
|
BUG_TRAP((int)tp->sacked_out >= 0);
|
|
BUG_TRAP((int)tp->lost_out >= 0);
|