Changes in kernel/arch/ia64/src/mm/tlb.c [f72c2f5:c15b374] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/tlb.c
rf72c2f5 rc15b374 475 475 void alternate_instruction_tlb_fault(uint64_t vector, istate_t *istate) 476 476 { 477 region_register_t rr; 478 rid_t rid; 477 479 uintptr_t va; 478 480 pte_t *t; 479 481 480 482 va = istate->cr_ifa; /* faulting address */ 483 rr.word = rr_read(VA2VRN(va)); 484 rid = rr.map.rid; 481 485 482 486 page_table_lock(AS, true); … … 495 499 page_table_unlock(AS, true); 496 500 if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { 497 fault_if_from_uspace(istate, "Page fault at %p.", 498 (void *) va); 501 fault_if_from_uspace(istate, "Page fault at %p.", va); 499 502 panic_memtrap(istate, PF_ACCESS_EXEC, va, NULL); 500 503 } … … 553 556 } else { 554 557 fault_if_from_uspace(istate, 555 "IO access fault at %p.", (void *)va);558 "IO access fault at %p.", va); 556 559 } 557 560 } … … 617 620 */ 618 621 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 619 fault_if_from_uspace(istate, "Page fault at %p.", 620 (void *) va); 622 fault_if_from_uspace(istate, "Page fault at %p.", va); 621 623 panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, NULL); 622 624 } … … 645 647 void data_dirty_bit_fault(uint64_t vector, istate_t *istate) 646 648 { 649 region_register_t rr; 650 rid_t rid; 647 651 uintptr_t va; 648 652 pte_t *t; 649 653 650 654 va = istate->cr_ifa; /* faulting address */ 655 rr.word = rr_read(VA2VRN(va)); 656 rid = rr.map.rid; 651 657 652 658 page_table_lock(AS, true); … … 662 668 } else { 663 669 if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { 664 fault_if_from_uspace(istate, "Page fault at %p.", 665 (void *) va); 670 fault_if_from_uspace(istate, "Page fault at %p.", va); 666 671 panic_memtrap(istate, PF_ACCESS_WRITE, va, NULL); 667 672 } … … 678 683 void instruction_access_bit_fault(uint64_t vector, istate_t *istate) 679 684 { 685 region_register_t rr; 686 rid_t rid; 680 687 uintptr_t va; 681 688 pte_t *t; 682 689 683 690 va = istate->cr_ifa; /* faulting address */ 691 rr.word = rr_read(VA2VRN(va)); 692 rid = rr.map.rid; 684 693 685 694 page_table_lock(AS, true); … … 695 704 } else { 696 705 if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { 697 fault_if_from_uspace(istate, "Page fault at %p.", 698 (void *) va); 706 fault_if_from_uspace(istate, "Page fault at %p.", va); 699 707 panic_memtrap(istate, PF_ACCESS_EXEC, va, NULL); 700 708 } … … 711 719 void data_access_bit_fault(uint64_t vector, istate_t *istate) 712 720 { 721 region_register_t rr; 722 rid_t rid; 713 723 uintptr_t va; 714 724 pte_t *t; 715 725 716 726 va = istate->cr_ifa; /* faulting address */ 727 rr.word = rr_read(VA2VRN(va)); 728 rid = rr.map.rid; 717 729 718 730 page_table_lock(AS, true); … … 728 740 } else { 729 741 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 730 fault_if_from_uspace(istate, "Page fault at %p.", 731 (void *) va); 742 fault_if_from_uspace(istate, "Page fault at %p.", va); 732 743 panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, NULL); 733 744 } … … 744 755 void data_access_rights_fault(uint64_t vector, istate_t *istate) 745 756 { 757 region_register_t rr; 758 rid_t rid; 746 759 uintptr_t va; 747 760 pte_t *t; 748 761 749 762 va = istate->cr_ifa; /* faulting address */ 763 rr.word = rr_read(VA2VRN(va)); 764 rid = rr.map.rid; 750 765 751 766 /* … … 757 772 ASSERT(!t->w); 758 773 if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { 759 fault_if_from_uspace(istate, "Page fault at %p.", 760 (void *) va); 774 fault_if_from_uspace(istate, "Page fault at %p.", va); 761 775 panic_memtrap(istate, PF_ACCESS_WRITE, va, NULL); 762 776 } … … 772 786 void page_not_present(uint64_t vector, istate_t *istate) 773 787 { 788 region_register_t rr; 789 rid_t rid; 774 790 uintptr_t va; 775 791 pte_t *t; 776 792 777 793 va = istate->cr_ifa; /* faulting address */ 794 rr.word = rr_read(VA2VRN(va)); 795 rid = rr.map.rid; 778 796 779 797 page_table_lock(AS, true); … … 794 812 page_table_unlock(AS, true); 795 813 if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { 796 fault_if_from_uspace(istate, "Page fault at %p.", 797 (void *) va); 814 fault_if_from_uspace(istate, "Page fault at %p.", va); 798 815 panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, NULL); 799 816 }
Note:
See TracChangeset
for help on using the changeset viewer.