freebsd-dev/sys
Mark Johnston be801aaaef Fix a race in release_page().
Since r354156 we may call release_page() without the page's object lock
held, specifically following the page copy during a CoW fault.
release_page() must therefore unbusy the page only after scheduling the
requeue, to avoid racing with a free of the page.  Previously, the
object lock prevented this race from occurring.

Add some assertions that were helpful in tracking this down.

Reported by:	pho, syzkaller
Tested by:	pho
Reviewed by:	alc, jeff, kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D22234
2019-11-06 16:59:16 +00:00
..
amd64 amd64: Store %cr3 into pcpu saved_ucr3 on double fault. 2019-11-03 11:52:50 +00:00
arm arm: allwinner: aw_mmc: Check if the regulator support the voltage 2019-11-06 14:58:25 +00:00
arm64 regulator: Add regulator_check_voltage function 2019-11-06 14:55:24 +00:00
bsm
cam Remove lock from CTL camsim frontend. 2019-11-03 00:13:23 +00:00
cddl Add vfs.zfs.zio.taskq_batch_pct tunable. 2019-11-05 15:19:05 +00:00
compat Enable device class group attributes in the LinuxKPI. 2019-11-04 14:19:09 +00:00
conf r354264 did mix up the directory path 2019-11-02 21:52:45 +00:00
contrib zstd: Add an Xlist and document use during import 2019-11-06 06:50:02 +00:00
crypto Fix the armv8 crypto driver after r354170. 2019-10-30 10:41:10 +00:00
ddb ddb(4): Add some support for lexing IPv6 addresses 2019-09-09 16:32:23 +00:00
dev regulator: Add regulator_check_voltage function 2019-11-06 14:55:24 +00:00
dts
fs Replace OBJ_MIGHTBEDIRTY with a system using atomics. Remove the TMPFS_DIRTY 2019-10-29 21:06:34 +00:00
gdb gdb(4): Implement support for NoAckMode 2019-10-17 22:37:25 +00:00
geom Make all the gnop parameters optional in the request from userland, 2019-10-16 21:49:44 +00:00
gnu arm: dts: ti: Fix mmc3 instance by setting it to disabled 2019-10-07 08:11:49 +00:00
i386 linux: futex_mtx should follow futex_list 2019-10-18 12:25:33 +00:00
isa
kern Some more taskqueue optimizations. 2019-11-01 22:49:44 +00:00
kgssapi
libkern Rename the macros to extract a single arm64 ID field. 2019-10-30 10:06:57 +00:00
mips Remove an outdated assertion. 2019-11-04 21:06:06 +00:00
modules Downgrade the firmware images imported in r354201. 2019-11-03 03:23:27 +00:00
net net: add ETHER_IS_ZERO macro similar to ETHER_IS_BROADCAST 2019-11-05 00:12:21 +00:00
net80211 Don't use if_maddr_rlock() in 802.11, use epoch(9) directly instead. 2019-10-10 23:55:33 +00:00
netgraph Fix regression from r353026. Pointer was increased instead of value 2019-11-02 03:09:17 +00:00
netinet Properly set VNET when nuking recvif from fragment queues. 2019-10-25 18:54:06 +00:00
netinet6 In nd6_timer() enter the network epoch earlier. The defrouter_del() may 2019-11-04 17:35:37 +00:00
netipsec Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
netpfil pf: Must be in NET_EPOCH to call icmp_error 2019-10-18 03:36:26 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed VLAN_TRUNKDEV() requires epochification in ibcore after r353292. 2019-10-16 08:56:07 +00:00
opencrypto kTLS support for TLS 1.3 2019-09-27 19:17:40 +00:00
powerpc powerpc/booke: Fix pmap_mapdev_attr() for multi-TLB1 entry mappings 2019-11-06 04:40:12 +00:00
riscv RISC-V: Remove EARLY_AP_STARTUP from GENERIC 2019-11-02 19:33:02 +00:00
rpc
security Define macro VM_MAP_ENTRY_FOREACH for enumerating the entries in a vm_map. 2019-10-08 07:14:21 +00:00
sparc64 Split out a more generic debugnet(4) from netdump(4) 2019-10-17 16:23:03 +00:00
sys Enable device class group attributes in the LinuxKPI. 2019-11-04 14:19:09 +00:00
teken Adjust teken to allow build as part of loader 2019-09-05 18:07:40 +00:00
tests
tools fw_stub.awk: use @generated tag in generated files 2019-09-11 13:35:22 +00:00
ufs Replace OBJ_MIGHTBEDIRTY with a system using atomics. Remove the TMPFS_DIRTY 2019-10-29 21:06:34 +00:00
vm Fix a race in release_page(). 2019-11-06 16:59:16 +00:00
x86 Add tunable to allow interrupts on hyperthreaded cores 2019-11-04 19:30:19 +00:00
xdr
xen
Makefile