aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_stacks/bbr.c
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2021-06-06 20:40:45 +0000
committerMark Johnston <markj@FreeBSD.org>2021-06-14 20:25:15 +0000
commitfa3cfd1a845a33dbee88fcd80599c3ecc3268e26 (patch)
treeebbd54c5a8d09ef8dc8d8713021d92c728c5dabe /sys/netinet/tcp_stacks/bbr.c
parent129fb0fb02828adf71d457bb20aab48b7d88b287 (diff)
downloadsrc-fa3cfd1a845a33dbee88fcd80599c3ecc3268e26.tar.gz
src-fa3cfd1a845a33dbee88fcd80599c3ecc3268e26.zip
arm64: Fix pmap_copy()'s handling of 2MB mappings
When copying mappings from parent to child, we clear the accessed and dirty bits. This is done for both 4KB and 2MB PTEs. However, pmap_demote_l2() asserts that writable superpages must be dirty. This is to avoid races with the MMU setting the dirty bit during promotion and demotion. pmap_copy() can create clean, writable superpage mappings, so it violates this assertion. Modify pmap_copy() to preserve the accessed and dirty bits when copying 2MB mappings, like we do on amd64. Fixes: ca2cae0b4dd Reported by: Jenkins via mhorne Reviewed by: alc, kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D30643 (cherry picked from commit 4e4035ef1fb5e2f9da6b658ffae8a54862b4d018)
Diffstat (limited to 'sys/netinet/tcp_stacks/bbr.c')
0 files changed, 0 insertions, 0 deletions