Changeset 9aed144 in mainline for kernel/arch/ia64/src/mm/tlb.c
- Timestamp:
- 2011-11-25T23:35:22Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1c01e6c
- Parents:
- 50177dcd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/tlb.c
r50177dcd r9aed144 480 480 va = istate->cr_ifa; /* faulting address */ 481 481 482 page_table_lock(AS, true);483 482 t = page_mapping_find(AS, va, true); 484 483 if (t) { … … 488 487 */ 489 488 itc_pte_copy(t); 490 page_table_unlock(AS, true);491 489 } else { 492 490 /* 493 491 * Forward the page fault to address space page fault handler. 494 492 */ 495 page_table_unlock(AS, true);496 493 if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { 497 494 fault_if_from_uspace(istate, "Page fault at %p.", … … 598 595 599 596 600 page_table_lock(AS, true);601 597 pte_t *entry = page_mapping_find(AS, va, true); 602 598 if (entry) { … … 606 602 */ 607 603 dtc_pte_copy(entry); 608 page_table_unlock(AS, true);609 604 } else { 610 page_table_unlock(AS, true);611 605 if (try_memmap_io_insertion(va, istate)) 612 606 return; … … 650 644 va = istate->cr_ifa; /* faulting address */ 651 645 652 page_table_lock(AS, true);653 646 t = page_mapping_find(AS, va, true); 654 647 ASSERT((t) && (t->p)); … … 667 660 } 668 661 } 669 page_table_unlock(AS, true);670 662 } 671 663 … … 683 675 va = istate->cr_ifa; /* faulting address */ 684 676 685 page_table_lock(AS, true);686 677 t = page_mapping_find(AS, va, true); 687 678 ASSERT((t) && (t->p)); … … 700 691 } 701 692 } 702 page_table_unlock(AS, true);703 693 } 704 694 … … 716 706 va = istate->cr_ifa; /* faulting address */ 717 707 718 page_table_lock(AS, true);719 708 t = page_mapping_find(AS, va, true); 720 709 ASSERT((t) && (t->p)); … … 733 722 } 734 723 } 735 page_table_unlock(AS, true);736 724 } 737 725 … … 752 740 * Assume a write to a read-only page. 753 741 */ 754 page_table_lock(AS, true);755 742 t = page_mapping_find(AS, va, true); 756 743 ASSERT((t) && (t->p)); … … 761 748 panic_memtrap(istate, PF_ACCESS_WRITE, va, NULL); 762 749 } 763 page_table_unlock(AS, true);764 750 } 765 751 … … 777 763 va = istate->cr_ifa; /* faulting address */ 778 764 779 page_table_lock(AS, true);780 765 t = page_mapping_find(AS, va, true); 781 766 ASSERT(t); … … 790 775 else 791 776 dtc_pte_copy(t); 792 page_table_unlock(AS, true);793 777 } else { 794 page_table_unlock(AS, true);795 778 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 796 779 fault_if_from_uspace(istate, "Page fault at %p.",
Note:
See TracChangeset
for help on using the changeset viewer.