Changeset 89c57b6 in mainline for kernel/arch/ia64/src/mm/tlb.c
- Timestamp:
- 2011-04-13T14:45:41Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 88634420
- Parents:
- cefb126 (diff), 17279ead (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/tlb.c
rcefb126 r89c57b6 475 475 void alternate_instruction_tlb_fault(uint64_t vector, istate_t *istate) 476 476 { 477 region_register_t rr;478 rid_t rid;479 477 uintptr_t va; 480 478 pte_t *t; 481 479 482 480 va = istate->cr_ifa; /* faulting address */ 483 rr.word = rr_read(VA2VRN(va));484 rid = rr.map.rid;485 481 486 482 page_table_lock(AS, true); … … 499 495 page_table_unlock(AS, true); 500 496 if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { 501 fault_if_from_uspace(istate, "Page fault at %p.", va);502 panic_memtrap(istate, PF_ACCESS_EXEC, va,503 "Page fault.");497 fault_if_from_uspace(istate, "Page fault at %p.", 498 (void *) va); 499 panic_memtrap(istate, PF_ACCESS_EXEC, va, NULL); 504 500 } 505 501 } … … 557 553 } else { 558 554 fault_if_from_uspace(istate, 559 "IO access fault at %p.", va);555 "IO access fault at %p.", (void *) va); 560 556 } 561 557 } … … 621 617 */ 622 618 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 623 fault_if_from_uspace(istate, "Page fault at %p.", va);624 panic_memtrap(istate, PF_ACCESS_READ, va,625 "Page fault.");619 fault_if_from_uspace(istate, "Page fault at %p.", 620 (void *) va); 621 panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, NULL); 626 622 } 627 623 } … … 649 645 void data_dirty_bit_fault(uint64_t vector, istate_t *istate) 650 646 { 651 region_register_t rr;652 rid_t rid;653 647 uintptr_t va; 654 648 pte_t *t; 655 649 656 650 va = istate->cr_ifa; /* faulting address */ 657 rr.word = rr_read(VA2VRN(va));658 rid = rr.map.rid;659 651 660 652 page_table_lock(AS, true); … … 670 662 } else { 671 663 if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { 672 fault_if_from_uspace(istate, "Page fault at %p.", va);673 panic_memtrap(istate, PF_ACCESS_WRITE, va,674 "Page fault.");664 fault_if_from_uspace(istate, "Page fault at %p.", 665 (void *) va); 666 panic_memtrap(istate, PF_ACCESS_WRITE, va, NULL); 675 667 } 676 668 } … … 686 678 void instruction_access_bit_fault(uint64_t vector, istate_t *istate) 687 679 { 688 region_register_t rr;689 rid_t rid;690 680 uintptr_t va; 691 681 pte_t *t; 692 682 693 683 va = istate->cr_ifa; /* faulting address */ 694 rr.word = rr_read(VA2VRN(va));695 rid = rr.map.rid;696 684 697 685 page_table_lock(AS, true); … … 707 695 } else { 708 696 if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { 709 fault_if_from_uspace(istate, "Page fault at %p.", va);710 panic_memtrap(istate, PF_ACCESS_EXEC, va,711 "Page fault.");697 fault_if_from_uspace(istate, "Page fault at %p.", 698 (void *) va); 699 panic_memtrap(istate, PF_ACCESS_EXEC, va, NULL); 712 700 } 713 701 } … … 723 711 void data_access_bit_fault(uint64_t vector, istate_t *istate) 724 712 { 725 region_register_t rr;726 rid_t rid;727 713 uintptr_t va; 728 714 pte_t *t; 729 715 730 716 va = istate->cr_ifa; /* faulting address */ 731 rr.word = rr_read(VA2VRN(va));732 rid = rr.map.rid;733 717 734 718 page_table_lock(AS, true); … … 744 728 } else { 745 729 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 746 fault_if_from_uspace(istate, "Page fault at %p.", va);747 panic_memtrap(istate, PF_ACCESS_READ, va,748 "Page fault.");730 fault_if_from_uspace(istate, "Page fault at %p.", 731 (void *) va); 732 panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, NULL); 749 733 } 750 734 } … … 760 744 void data_access_rights_fault(uint64_t vector, istate_t *istate) 761 745 { 762 region_register_t rr;763 rid_t rid;764 746 uintptr_t va; 765 747 pte_t *t; 766 748 767 749 va = istate->cr_ifa; /* faulting address */ 768 rr.word = rr_read(VA2VRN(va));769 rid = rr.map.rid;770 750 771 751 /* … … 777 757 ASSERT(!t->w); 778 758 if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { 779 fault_if_from_uspace(istate, "Page fault at %p.", va); 780 panic_memtrap(istate, PF_ACCESS_WRITE, va, "Page fault."); 759 fault_if_from_uspace(istate, "Page fault at %p.", 760 (void *) va); 761 panic_memtrap(istate, PF_ACCESS_WRITE, va, NULL); 781 762 } 782 763 page_table_unlock(AS, true); … … 791 772 void page_not_present(uint64_t vector, istate_t *istate) 792 773 { 793 region_register_t rr;794 rid_t rid;795 774 uintptr_t va; 796 775 pte_t *t; 797 776 798 777 va = istate->cr_ifa; /* faulting address */ 799 rr.word = rr_read(VA2VRN(va));800 rid = rr.map.rid;801 778 802 779 page_table_lock(AS, true); … … 817 794 page_table_unlock(AS, true); 818 795 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 819 fault_if_from_uspace(istate, "Page fault at %p.", va);820 panic_memtrap(istate, PF_ACCESS_READ, va,821 "Page fault.");796 fault_if_from_uspace(istate, "Page fault at %p.", 797 (void *) va); 798 panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, NULL); 822 799 } 823 800 }
Note:
See TracChangeset
for help on using the changeset viewer.