freebsd-skq/sys/vm
Konstantin Belousov 210a688642 When protection of wired read-only mapping is changed to read-write,
install new shadow object behind the map entry and copy the pages
from the underlying objects to it. This makes the mprotect(2) call to
actually perform the requested operation instead of silently do nothing
and return success, that causes SIGSEGV on later write access to the
mapping.

Reuse vm_fault_copy_entry() to do the copying, modifying it to behave
correctly when src_entry == dst_entry.

Reviewed by:	alc
MFC after:	3 weeks
2009-10-27 10:15:58 +00:00
..
default_pager.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
device_pager.c Extend the device pager to support different memory attributes on different 2009-08-28 14:06:55 +00:00
memguard.c Provide the new argument to kmem_suballoc(). 2008-05-10 23:39:27 +00:00
memguard.h
phys_pager.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
pmap.h o Introduce vm_sync_icache() for making the I-cache coherent with 2009-10-21 18:38:02 +00:00
redzone.c Fix REDZONE(9) on amd64 and perhaps other 64 bit targets -- ensure the space 2008-08-13 17:32:48 +00:00
redzone.h
sg_pager.c Mark the fake pages constructed by the OBJT_SG pager valid. This was 2009-08-29 02:17:40 +00:00
swap_pager.c Remove spurious call to priv_check(PRIV_VM_SWAP_NOQUOTA). 2009-10-18 12:55:39 +00:00
swap_pager.h - Move 'struct swdevt' back into swap_pager.h and expose it to userland. 2007-02-07 17:43:11 +00:00
uma_core.c Add support for UMA_SLAB_KERNEL to page_free(). (While I'm here remove an 2009-06-18 07:27:11 +00:00
uma_dbg.c - Make the keg abstraction more complete. Permit a zone to have multiple 2009-01-25 09:11:24 +00:00
uma_dbg.h
uma_int.h - Make the keg abstraction more complete. Permit a zone to have multiple 2009-01-25 09:11:24 +00:00
uma.h - Make the keg abstraction more complete. Permit a zone to have multiple 2009-01-25 09:11:24 +00:00
vm_contig.c Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vm_extern.h o Introduce vm_sync_icache() for making the I-cache coherent with 2009-10-21 18:38:02 +00:00
vm_fault.c When protection of wired read-only mapping is changed to read-write, 2009-10-27 10:15:58 +00:00
vm_glue.c o Introduce vm_sync_icache() for making the I-cache coherent with 2009-10-21 18:38:02 +00:00
vm_init.c Adjust some variables (mostly related to the buffer cache) that hold 2009-03-09 19:35:20 +00:00
vm_kern.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
vm_kern.h Enable the creation of a kmem map larger than 4GB. 2008-07-05 19:34:33 +00:00
vm_map.c When protection of wired read-only mapping is changed to read-write, 2009-10-27 10:15:58 +00:00
vm_map.h Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
vm_meter.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_mmap.c Back out the functional parts from r197537. After r197711, affecting all 2009-10-02 17:51:46 +00:00
vm_object.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_object.h Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_page.c Align and pad the page queue and free page queue locks so that the linker 2009-10-04 18:53:10 +00:00
vm_page.h Align and pad the page queue and free page queue locks so that the linker 2009-10-04 18:53:10 +00:00
vm_pageout.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_pageout.h Move the code for doing out-of-memory grass from vm_pageout_scan() 2008-09-29 19:45:12 +00:00
vm_pager.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_pager.h Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_param.h Fix CTL_VM_NAMES. 2007-10-16 11:32:57 +00:00
vm_phys.c Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vm_phys.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vm_reserv.c Previously, when vm_page_free_toq() was performed on a page belonging to 2009-04-11 09:09:00 +00:00
vm_reserv.h Introduce vm_reserv_reclaim_contig(). This function is used by 2008-04-06 18:09:28 +00:00
vm_unix.c Remove execute permission from the memory allocated by sbrk(). 2009-04-11 22:34:08 +00:00
vm_zeroidle.c Fill in a few sysctl descriptions. 2008-08-03 14:26:15 +00:00
vm.h Extend the device pager to support different memory attributes on different 2009-08-28 14:06:55 +00:00
vnode_pager.c Change the type of uio_resid member of struct uio from int to ssize_t. 2009-06-25 18:46:30 +00:00
vnode_pager.h Do not sleep for vnode lock while holding map lock in vm_fault. Try to 2009-02-08 20:23:46 +00:00