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
History
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

back to top