opnsense-src/sys/vm
Mark Johnston 3ea8c7ad90 vm_fault: Shoot down shared mappings in vm_fault_copy_entry()
As in vm_fault_cow(), it's possible, albeit rare, for multiple vm_maps
to share a shadow object.  When copying a page from a backing object
into the shadow, all mappings of the source page must therefore be
removed.  Otherwise, future operations on the object tree may detect
that the source page is fully shadowed and thus can be freed.

Approved by:	so
Security:	FreeBSD-SA-22:11.vm
Reviewed by:	alc, kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D35635

(cherry picked from commit 5c50e900ad)
2022-08-09 15:47:40 -04:00
..
_vm_phys.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
_vm_radix.h
default_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-22 12:38:30 +03:00
device_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-22 12:38:30 +03:00
memguard.c memguard(9): Fix two typos in source code comments 2022-04-09 08:08:00 +02:00
memguard.h LinuxKPI: Implement ksize() function. 2020-08-29 19:26:31 +00:00
phys_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-22 12:38:30 +03:00
pmap.h Add pmap_enter(9) PMAP_ENTER_LARGEPAGE flag and implement it on amd64. 2020-09-09 21:50:24 +00:00
redzone.c redzone: Raise a compile error if KASAN is configured 2021-11-01 10:07:31 -04:00
redzone.h
sg_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-22 12:38:30 +03:00
swap_pager.c swap_pager: Reduce the scope of the object lock in putpages 2022-08-07 22:16:10 -05:00
swap_pager.h swapoff: add one more variant of the syscall 2021-12-20 02:29:11 +02:00
uma.h uma: Add UMA_ZONE_UNMANAGED 2022-02-24 10:59:28 +01:00
uma_core.c uma: Use a taskqueue to execute uma_timeout() 2022-07-25 09:43:44 -04:00
uma_dbg.c
uma_dbg.h
uma_int.h Improve UMA cache reclamation. 2021-05-15 22:10:48 -04:00
vm.h vm: Fix a common typo in a source code comment 2022-06-10 14:25:56 +02:00
vm_domainset.c Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_domainset.h Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_dumpset.h minidump: Use the provided dump bitset 2021-12-03 10:02:03 -04:00
vm_extern.h vm_addr_ok: add power2 invariant check 2022-07-12 11:26:12 -05:00
vm_fault.c vm_fault: Shoot down shared mappings in vm_fault_copy_entry() 2022-08-09 15:47:40 -04:00
vm_glue.c Fix a common typo in syctl descriptions 2021-11-06 08:52:57 +01:00
vm_init.c vm: Initialize the transient buffer mapping arena with M_WAITOK 2022-04-21 09:18:04 -04:00
vm_kern.c Convert vm_page_alloc() callers to use vm_page_alloc_noobj(). 2021-11-03 13:39:36 -04:00
vm_kern.h Remove the VM map zone. 2020-08-17 13:02:01 +00:00
vm_map.c vm_map: Simplify a call to vm_object_allocate_anon() 2022-07-19 09:36:21 -04:00
vm_map.h exec: Reimplement stack address randomization 2022-02-16 11:55:03 -05:00
vm_meter.c vmmeter(): Fix detection of the named swap objects 2022-02-09 02:42:44 +02:00
vm_mmap.c vm_mmap: Remove obsolete code and comments from vm_mmap() 2022-07-27 09:50:55 -04:00
vm_object.c vm_object: Assert that overcommit charge is released in the object dtor 2022-07-19 09:36:32 -04:00
vm_object.h vm_object: Use the vm_object_(set|clear)_flag() helpers 2022-06-21 08:53:24 -04:00
vm_page.c vm_extern: use standard address checkers everywhere 2022-07-12 11:26:03 -05:00
vm_page.h vm/vm_extern.h, vm/vm_page.h: use sys/kassert.h 2022-02-08 08:42:07 +02:00
vm_pageout.c vm: Fix racy checks for swap objects 2022-07-04 09:06:55 -04:00
vm_pageout.h Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_pagequeue.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_pager.c Use dedicated lock name for pbufs 2022-02-07 11:38:49 +02:00
vm_pager.h vm/vm_pager.h: use sys/systm.h header 2022-02-08 08:42:07 +02:00
vm_param.h (fault 3/9) Move map relookup into a dedicated function. 2020-01-23 05:07:01 +00:00
vm_phys.c vm_phys: convert error back to warning 2022-07-12 11:26:05 -05:00
vm_phys.h vm_phys: hide vm_phys_set_pool 2022-07-11 00:41:04 -05:00
vm_radix.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
vm_radix.h Use SMR to provide a safe unlocked lookup for vm_radix. 2020-02-19 19:58:31 +00:00
vm_reserv.c vm_reserv: #include vm_extern.h explicitly, for arm. 2022-07-12 11:26:06 -05:00
vm_reserv.h vm: alloc pages from reserv before breaking it 2022-07-11 00:41:07 -05:00
vm_swapout.c Make vmdaemon timeout configurable 2022-02-14 19:28:56 +00:00
vm_swapout_dummy.c
vm_unix.c Prepare to handle non-trivial errors from vm_map_delete(). 2020-09-09 21:34:31 +00:00
vnode_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-22 12:38:30 +03:00
vnode_pager.h