vm_fault.c (a7163bb962b66afb768707fa0b5ad6773d755503) | vm_fault.c (d3f8534e99e2b2846a882e617648b2abc17406dd) |
---|---|
1/*- 2 * SPDX-License-Identifier: (BSD-4-Clause AND MIT-CMU) 3 * 4 * Copyright (c) 1991, 1993 5 * The Regents of the University of California. All rights reserved. 6 * Copyright (c) 1994 John S. Dyson 7 * All rights reserved. 8 * Copyright (c) 1994 David Greenman --- 363 unchanged lines hidden (view full) --- 372 vm_page_lock(m); 373 vm_page_deactivate(m); 374 vm_page_unlock(m); 375 vm_page_xunbusy(m); 376 } 377} 378 379static int | 1/*- 2 * SPDX-License-Identifier: (BSD-4-Clause AND MIT-CMU) 3 * 4 * Copyright (c) 1991, 1993 5 * The Regents of the University of California. All rights reserved. 6 * Copyright (c) 1994 John S. Dyson 7 * All rights reserved. 8 * Copyright (c) 1994 David Greenman --- 363 unchanged lines hidden (view full) --- 372 vm_page_lock(m); 373 vm_page_deactivate(m); 374 vm_page_unlock(m); 375 vm_page_xunbusy(m); 376 } 377} 378 379static int |
380vm_fault_populate(struct faultstate *fs, vm_offset_t vaddr, vm_prot_t prot, 381 int fault_type, int fault_flags, boolean_t wired, vm_page_t *m_hold) | 380vm_fault_populate(struct faultstate *fs, vm_prot_t prot, int fault_type, 381 int fault_flags, boolean_t wired, vm_page_t *m_hold) |
382{ 383 vm_page_t m; 384 vm_pindex_t map_first, map_last, pager_first, pager_last, pidx; 385 int rv; 386 387 MPASS(fs->object == fs->first_object); 388 VM_OBJECT_ASSERT_WLOCKED(fs->first_object); 389 MPASS(fs->first_object->paging_in_progress > 0); --- 345 unchanged lines hidden (view full) --- 735 if (fs.pindex >= fs.object->size) { 736 unlock_and_deallocate(&fs); 737 return (KERN_PROTECTION_FAILURE); 738 } 739 740 if (fs.object == fs.first_object && 741 (fs.first_object->flags & OBJ_POPULATE) != 0 && 742 fs.first_object->shadow_count == 0) { | 382{ 383 vm_page_t m; 384 vm_pindex_t map_first, map_last, pager_first, pager_last, pidx; 385 int rv; 386 387 MPASS(fs->object == fs->first_object); 388 VM_OBJECT_ASSERT_WLOCKED(fs->first_object); 389 MPASS(fs->first_object->paging_in_progress > 0); --- 345 unchanged lines hidden (view full) --- 735 if (fs.pindex >= fs.object->size) { 736 unlock_and_deallocate(&fs); 737 return (KERN_PROTECTION_FAILURE); 738 } 739 740 if (fs.object == fs.first_object && 741 (fs.first_object->flags & OBJ_POPULATE) != 0 && 742 fs.first_object->shadow_count == 0) { |
743 rv = vm_fault_populate(&fs, vaddr, prot, 744 fault_type, fault_flags, wired, m_hold); | 743 rv = vm_fault_populate(&fs, prot, fault_type, 744 fault_flags, wired, m_hold); |
745 switch (rv) { 746 case KERN_SUCCESS: 747 case KERN_FAILURE: 748 unlock_and_deallocate(&fs); 749 return (rv); 750 case KERN_RESOURCE_SHORTAGE: 751 unlock_and_deallocate(&fs); 752 goto RetryFault; --- 1025 unchanged lines hidden --- | 745 switch (rv) { 746 case KERN_SUCCESS: 747 case KERN_FAILURE: 748 unlock_and_deallocate(&fs); 749 return (rv); 750 case KERN_RESOURCE_SHORTAGE: 751 unlock_and_deallocate(&fs); 752 goto RetryFault; --- 1025 unchanged lines hidden --- |