freebsd-src/sys
Richard Scheffenegger bc7ee8e5bc Address panic with PRR due to missed initialization of recover_fs
Summary:
When using the base stack in conjunction with RACK, it appears that
infrequently, ++tp->t_dupacks is instantly larger than tcprexmtthresh.

This leaves the recover flightsize (sackhint.recover_fs) uninitialized,
leading to a div/0 panic.

Address this by properly initializing the variable just prior to first
use, if it is not properly initialized.

In order to prevent stale information from a prior recovery to
negatively impact the PRR calculations in this event, also clear
recover_fs once loss recovery is finished.

Finally, improve the readability of the initialization of recover_fs
when t_dupacks == tcprexmtthresh by adjusting the indentation and
using the max(1, snd_nxt - snd_una) macro.

Reviewers: rrs, kbowling, tuexen, jtl, #transport, gnn!, jmg, manu, #manpages

Reviewed By: rrs, kbowling, #transport

Subscribers: bdrewery, andrew, rpokala, ae, emaste, bz, bcran, #linuxkpi, imp, melifaro

Differential Revision: https://reviews.freebsd.org/D28114
2021-01-20 12:06:34 +01:00
..
amd64 linux: map EBUSY returned by ptrace into ESRCH 2021-01-19 11:21:55 +00:00
arm make maximum interrupt number tunable on ARM, ARM64, MIPS, and RISC-V 2021-01-18 16:36:39 -08:00
arm64 arm64, riscv: Set VM_KMEM_SIZE_SCALE to 1 2021-01-19 20:34:36 -05:00
bsm
cam
cddl riscv: fix kernel build 2021-01-15 11:57:04 -04:00
compat linux: remove spurious newline. 2021-01-19 09:56:45 +00:00
conf newvers.sh: add support for gitup(1) 2021-01-20 10:48:27 +01:00
contrib Re-apply f81b2b9a8a to the new device-tree import 2021-01-15 20:07:13 +01:00
crypto aesni: Ensure that key schedules are aligned 2021-01-18 17:07:56 -05:00
ddb ddb: add ability to print user registers 2021-01-08 14:53:06 -04:00
dev ixl: Permit 802.1ad frames to pass though the chip 2021-01-19 16:01:09 +01:00
dts Switch to the new device-tree vendor tree 2021-01-15 20:08:39 +01:00
fs tmpfs_reclaim: detach unlinked node on dereferencing. 2021-01-14 14:51:37 +02:00
gdb
geom
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 wl(4): remove obsolete header 2021-01-17 00:03:17 +01:00
isa
kern Emit uprintf() output for initproc if there is no controlling terminal 2021-01-20 09:54:46 +00:00
kgssapi
libkern
mips make maximum interrupt number tunable on ARM, ARM64, MIPS, and RISC-V 2021-01-18 16:36:39 -08:00
modules htu21: driver for HTU21D I2C temperature and humidity sensor 2021-01-19 15:08:51 +02:00
net Fix panic on vnet creation if fib algo has been set to fixed value. 2021-01-17 20:32:25 +00:00
net80211
netgraph netgraph/ng_one2main: Clarification in comments about copy mode 2021-01-18 14:10:34 +01:00
netinet Address panic with PRR due to missed initialization of recover_fs 2021-01-20 12:06:34 +01:00
netinet6 Create new in6_purgeifaddr() which purges bound ifa prefix if 2021-01-17 20:32:25 +00:00
netipsec Convert unmapped mbufs before computing checksums in IPsec. 2021-01-19 11:52:00 -08:00
netpfil pf: Don't hold PF_RULES_WLOCK during copyin() on DIOCRCLRTSTATS 2021-01-13 19:49:42 +01:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed
opencrypto opencrypto: Add comments describing the new crypto_session layout 2021-01-19 21:32:33 -05:00
powerpc Split out the NODEBUG options to a common file 2021-01-14 16:57:53 +00:00
riscv arm64, riscv: Set VM_KMEM_SIZE_SCALE to 1 2021-01-19 20:34:36 -05:00
rpc nfs-over-tls: handle res.gid.gid_val correctly for memory allocation 2021-01-12 13:59:52 -08:00
security Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sys make maximum interrupt number tunable on ARM, ARM64, MIPS, and RISC-V 2021-01-18 16:36:39 -08:00
teken
tests Enable running fib tests inside vnet jail. 2021-01-17 20:32:26 +00:00
tools Switch to the new device-tree vendor tree 2021-01-15 20:08:39 +01:00
ufs Eliminate a locking panic when cleaning up UFS snapshots after a 2021-01-15 16:36:42 -08:00
vm vm_map_protect(): remove not needed recalculations of new_prot, new_maxprot 2021-01-14 10:02:43 +02:00
x86 x86 busdma_bounce: use malloc_domainset_aligned(9). 2021-01-17 19:29:05 +02:00
xdr
xen xen: remove .swp file from public headers 2021-01-11 18:14:11 +01:00
Makefile