Revision b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0 authored by Yuchung Cheng on 24 September 2010, 13:22:06 UTC, committed by David S. Miller on 27 September 2010, 21:55:57 UTC
When TCP uses FACK algorithm to mark lost packets in tcp_mark_head_lost(), if the number of packets in the (TSO) skb is greater than the number of packets that should be marked lost, TCP incorrectly exits the loop and marks no packets lost in the skb. This underestimates tp->lost_out and affects the recovery/retransmission. This patch fargments the skb and marks the correct amount of packets lost. Signed-off-by: Yuchung Cheng <ycheng@google.com> Acked-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 3fd6c88
File | Mode | Size |
---|---|---|
debug | ||
gcov | ||
irq | ||
power | ||
time | ||
trace | ||
.gitignore | -rw-r--r-- | 63 bytes |
Kconfig.freezer | -rw-r--r-- | 52 bytes |
Kconfig.hz | -rw-r--r-- | 1.7 KB |
Kconfig.locks | -rw-r--r-- | 4.5 KB |
Kconfig.preempt | -rw-r--r-- | 2.0 KB |
Makefile | -rw-r--r-- | 5.0 KB |
acct.c | -rw-r--r-- | 17.1 KB |
async.c | -rw-r--r-- | 9.0 KB |
audit.c | -rw-r--r-- | 39.4 KB |
audit.h | -rw-r--r-- | 5.8 KB |
audit_tree.c | -rw-r--r-- | 21.8 KB |
audit_watch.c | -rw-r--r-- | 14.5 KB |
auditfilter.c | -rw-r--r-- | 32.8 KB |
auditsc.c | -rw-r--r-- | 65.8 KB |
backtracetest.c | -rw-r--r-- | 2.1 KB |
bounds.c | -rw-r--r-- | 530 bytes |
capability.c | -rw-r--r-- | 8.1 KB |
cgroup.c | -rw-r--r-- | 127.0 KB |
cgroup_freezer.c | -rw-r--r-- | 9.8 KB |
compat.c | -rw-r--r-- | 27.9 KB |
configs.c | -rw-r--r-- | 2.8 KB |
cpu.c | -rw-r--r-- | 13.7 KB |
cpuset.c | -rw-r--r-- | 74.1 KB |
cred.c | -rw-r--r-- | 21.6 KB |
delayacct.c | -rw-r--r-- | 4.9 KB |
dma.c | -rw-r--r-- | 3.6 KB |
early_res.c | -rw-r--r-- | 13.9 KB |
elfcore.c | -rw-r--r-- | 459 bytes |
exec_domain.c | -rw-r--r-- | 4.3 KB |
exit.c | -rw-r--r-- | 43.7 KB |
extable.c | -rw-r--r-- | 3.2 KB |
fork.c | -rw-r--r-- | 41.6 KB |
freezer.c | -rw-r--r-- | 3.8 KB |
futex.c | -rw-r--r-- | 68.1 KB |
futex_compat.c | -rw-r--r-- | 4.5 KB |
groups.c | -rw-r--r-- | 6.0 KB |
hrtimer.c | -rw-r--r-- | 45.8 KB |
hung_task.c | -rw-r--r-- | 5.1 KB |
hw_breakpoint.c | -rw-r--r-- | 14.4 KB |
itimer.c | -rw-r--r-- | 7.3 KB |
kallsyms.c | -rw-r--r-- | 12.9 KB |
kexec.c | -rw-r--r-- | 38.8 KB |
kfifo.c | -rw-r--r-- | 12.8 KB |
kmod.c | -rw-r--r-- | 11.8 KB |
kprobes.c | -rw-r--r-- | 50.0 KB |
ksysfs.c | -rw-r--r-- | 4.9 KB |
kthread.c | -rw-r--r-- | 11.0 KB |
latencytop.c | -rw-r--r-- | 7.7 KB |
lockdep.c | -rw-r--r-- | 91.5 KB |
lockdep_internals.h | -rw-r--r-- | 4.5 KB |
lockdep_proc.c | -rw-r--r-- | 17.2 KB |
lockdep_states.h | -rw-r--r-- | 233 bytes |
module.c | -rw-r--r-- | 82.2 KB |
mutex-debug.c | -rw-r--r-- | 2.9 KB |
mutex-debug.h | -rw-r--r-- | 1.7 KB |
mutex.c | -rw-r--r-- | 13.4 KB |
mutex.h | -rw-r--r-- | 1.3 KB |
notifier.c | -rw-r--r-- | 16.9 KB |
ns_cgroup.c | -rw-r--r-- | 2.5 KB |
nsproxy.c | -rw-r--r-- | 5.3 KB |
padata.c | -rw-r--r-- | 27.5 KB |
panic.c | -rw-r--r-- | 9.9 KB |
params.c | -rw-r--r-- | 20.4 KB |
perf_event.c | -rw-r--r-- | 133.6 KB |
pid.c | -rw-r--r-- | 13.7 KB |
pid_namespace.c | -rw-r--r-- | 4.4 KB |
pm_qos_params.c | -rw-r--r-- | 11.7 KB |
posix-cpu-timers.c | -rw-r--r-- | 42.6 KB |
posix-timers.c | -rw-r--r-- | 29.2 KB |
printk.c | -rw-r--r-- | 39.0 KB |
profile.c | -rw-r--r-- | 16.6 KB |
ptrace.c | -rw-r--r-- | 20.0 KB |
range.c | -rw-r--r-- | 2.9 KB |
rcupdate.c | -rw-r--r-- | 7.8 KB |
rcutiny.c | -rw-r--r-- | 7.5 KB |
rcutiny_plugin.h | -rw-r--r-- | 1.3 KB |
rcutorture.c | -rw-r--r-- | 38.5 KB |
rcutree.c | -rw-r--r-- | 57.0 KB |
rcutree.h | -rw-r--r-- | 15.2 KB |
rcutree_plugin.h | -rw-r--r-- | 31.9 KB |
rcutree_trace.c | -rw-r--r-- | 9.5 KB |
relay.c | -rw-r--r-- | 32.7 KB |
res_counter.c | -rw-r--r-- | 3.8 KB |
resource.c | -rw-r--r-- | 23.4 KB |
rtmutex-debug.c | -rw-r--r-- | 5.8 KB |
rtmutex-debug.h | -rw-r--r-- | 1.4 KB |
rtmutex-tester.c | -rw-r--r-- | 9.1 KB |
rtmutex.c | -rw-r--r-- | 29.4 KB |
rtmutex.h | -rw-r--r-- | 1.1 KB |
rtmutex_common.h | -rw-r--r-- | 3.7 KB |
rwsem.c | -rw-r--r-- | 2.6 KB |
sched.c | -rw-r--r-- | 220.2 KB |
sched_clock.c | -rw-r--r-- | 8.0 KB |
sched_cpupri.c | -rw-r--r-- | 5.4 KB |
sched_cpupri.h | -rw-r--r-- | 931 bytes |
sched_debug.c | -rw-r--r-- | 11.1 KB |
sched_fair.c | -rw-r--r-- | 99.6 KB |
sched_features.h | -rw-r--r-- | 1.6 KB |
sched_idletask.c | -rw-r--r-- | 2.6 KB |
sched_rt.c | -rw-r--r-- | 40.4 KB |
sched_stats.h | -rw-r--r-- | 10.3 KB |
seccomp.c | -rw-r--r-- | 1.6 KB |
semaphore.c | -rw-r--r-- | 7.2 KB |
signal.c | -rw-r--r-- | 69.2 KB |
smp.c | -rw-r--r-- | 13.4 KB |
softirq.c | -rw-r--r-- | 21.2 KB |
spinlock.c | -rw-r--r-- | 9.5 KB |
srcu.c | -rw-r--r-- | 9.7 KB |
stacktrace.c | -rw-r--r-- | 896 bytes |
stop_machine.c | -rw-r--r-- | 12.9 KB |
sys.c | -rw-r--r-- | 40.9 KB |
sys_ni.c | -rw-r--r-- | 5.2 KB |
sysctl.c | -rw-r--r-- | 68.4 KB |
sysctl_binary.c | -rw-r--r-- | 51.9 KB |
sysctl_check.c | -rw-r--r-- | 4.4 KB |
taskstats.c | -rw-r--r-- | 13.8 KB |
test_kprobes.c | -rw-r--r-- | 8.4 KB |
time.c | -rw-r--r-- | 18.5 KB |
timeconst.pl | -rw-r--r-- | 7.2 KB |
timer.c | -rw-r--r-- | 47.4 KB |
tracepoint.c | -rw-r--r-- | 15.9 KB |
tsacct.c | -rw-r--r-- | 4.3 KB |
uid16.c | -rw-r--r-- | 5.3 KB |
up.c | -rw-r--r-- | 413 bytes |
user-return-notifier.c | -rw-r--r-- | 1.3 KB |
user.c | -rw-r--r-- | 4.7 KB |
user_namespace.c | -rw-r--r-- | 3.2 KB |
utsname.c | -rw-r--r-- | 1.6 KB |
utsname_sysctl.c | -rw-r--r-- | 2.5 KB |
wait.c | -rw-r--r-- | 8.2 KB |
watchdog.c | -rw-r--r-- | 13.4 KB |
workqueue.c | -rw-r--r-- | 97.2 KB |
workqueue_sched.h | -rw-r--r-- | 311 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...