FreeBSD src
Go to file
Mark Johnston d0443e2b98 vm_fault: Fix a racy copy of page valid bits
We do not hold the object lock or a page busy lock when copying src_m's
validity state.  Prior to commit 45d72c7d7f we marked dst_m as fully
valid.

Use the source object's read lock to ensure that valid bits are not
concurrently cleared.

Reviewed by:	alc, kib
Fixes:		45d72c7d7f ("vm_fault_copy_entry: accept invalid source pages.")
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D35471
2022-06-14 18:18:09 -04:00
.cirrus-ci
.github .github: Add a build on Ubuntu 22.04 using llvm 14. 2022-06-09 10:20:03 -07:00
bin sleep.1: Fix mdoc style 2022-05-25 10:11:33 +02:00
cddl zfs: merge openzfs/zfs@b9d98453f 2022-06-03 18:17:53 +02:00
contrib Merge llvm-project release/14.x llvmorg-14.0.5-0-gc12386ae247c 2022-06-12 20:53:16 +02:00
crypto sshd_config: clarify password authentication options 2022-06-08 16:20:46 -04:00
etc Merge llvm-project release/14.x llvmorg-14.0.5-0-gc12386ae247c 2022-06-12 20:53:16 +02:00
gnu
include include/i386: fix release builds 2022-06-13 21:37:34 +01:00
kerberos5
lib utimensat(2): Remove description of compatibility code 2022-06-12 22:57:31 +02:00
libexec rc.d/ntpd: Restart ntpd when resuming from sleep. 2022-06-14 10:42:51 -07:00
release EC2: Enable ephemeral swap by default 2022-06-08 15:50:30 -07:00
rescue Fix conflict between libnvpair and libnv when building rescue binaries. 2022-05-24 23:59:33 +03:00
sbin Remove mips-specific Makefiles for /sbin and /usr/sbin 2022-06-14 10:15:03 -03:00
secure OpenSSL: Merge OpenSSL 1.1.1o 2022-05-03 15:12:42 -04:00
share rtw88: split driver up into a core and pci part 2022-06-12 18:35:58 +00:00
stand stand: Fix a common typo in source code comments 2022-06-05 09:49:51 +02:00
sys vm_fault: Fix a racy copy of page valid bits 2022-06-14 18:18:09 -04:00
targets bintrans: move files to a new directory 2022-04-18 10:53:11 +02:00
tests ktls_test: Permit an option to skip tests not using ifnet TLS. 2022-06-14 10:35:01 -07:00
tools stress2: Added a syzkaller reproducer. Enable all reaper tests 2022-06-14 06:59:32 +02:00
usr.bin truss: Make control message header parsing more robust 2022-06-14 12:00:59 -04:00
usr.sbin pmcannotate: Don't increment end address passed to objdump -d. 2022-06-14 10:52:54 -07:00
.arcconfig
.arclint
.cirrus.yml Cirrus-CI: update image to FreeBSD 13.1 (latest release) 2022-06-02 15:25:36 -04:00
.clang-format
.gitattributes
.gitignore gitignore: Ignore compile_commands.events.json 2022-05-30 10:43:25 -04:00
COPYRIGHT Welcome 2022, update copyrights. 2022-01-01 09:49:49 -07:00
LOCKS
MAINTAINERS Remove myself from bhyve maintenance; ENOTIME. 2021-11-19 07:09:30 +10:00
Makefile Switch to GCC 9 for the GCC tinderbox. 2022-05-20 10:16:57 -07:00
Makefile.inc1 amd64: add an i386 include directory 2022-06-13 18:35:38 +01:00
Makefile.libcompat Makefile.libcompat: Sort 2022-02-02 14:34:29 -07:00
Makefile.sys.inc
ObsoleteFiles.inc Merge llvm-project release/14.x llvmorg-14.0.5-0-gc12386ae247c 2022-06-12 20:53:16 +02:00
README.md vendor/bc: import of version 5.3.0 2022-06-11 11:50:28 +02:00
RELNOTES RELNOTES: Add an entry for boottrace(4) 2022-03-29 13:35:14 +02:00
UPDATING LinuxKPI: move pm_message_t from kernel.h to pm.h 2022-06-10 14:05:12 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory.

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), FreeBSD handbook on building userland, and Handbook for kernels for more information, including setting make(1) variables.

Source Roadmap:

Directory Description
bin System/user commands.
cddl Various commands and libraries under the Common Development and Distribution License.
contrib Packages contributed by 3rd parties.
crypto Cryptography stuff (see crypto/README).
etc Template files for /etc.
gnu Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see gnu/COPYING and gnu/COPYING.LIB for more information.
include System include files.
kerberos5 Kerberos5 (Heimdal) package.
lib System libraries.
libexec System daemons.
release Release building Makefile & associated tools.
rescue Build system for statically linked /rescue utilities.
sbin System commands.
secure Cryptographic libraries and commands.
share Shared resources.
stand Boot loader sources.
sys Kernel sources.
sys/arch/conf Kernel configuration files. GENERIC is the configuration used in release builds. NOTES contains documentation of all possible entries.
tests Regression tests which can be run by Kyua. See tests/README for additional information.
tools Utilities for regression testing and miscellaneous tasks.
usr.bin User commands.
usr.sbin System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see FreeBSD Handbook.