Changeset 925be4e in mainline for kernel/arch/ia64
- Timestamp:
 - 2009-07-07T21:12:54Z (16 years ago)
 - Branches:
 - lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
 - Children:
 - 1f0db02e
 - Parents:
 - 80a3bd9
 - Location:
 - kernel/arch/ia64
 - Files:
 - 
      
- 3 edited
 
- 
          
  include/mm/tlb.h (modified) (1 diff)
 - 
          
  src/ivt.S (modified) (1 diff)
 - 
          
  src/mm/tlb.c (modified) (1 diff)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
      
kernel/arch/ia64/include/mm/tlb.h
r80a3bd9 r925be4e 93 93 extern void instruction_access_bit_fault(uint64_t vector, istate_t *istate); 94 94 extern void data_access_bit_fault(uint64_t vector, istate_t *istate); 95 extern void data_access_rights_fault(uint64_t vector, istate_t *istate); 95 96 extern void page_not_present(uint64_t vector, istate_t *istate); 96 97  - 
      
kernel/arch/ia64/src/ivt.S
r80a3bd9 r925be4e 537 537 HEAVYWEIGHT_HANDLER 0x5100 538 538 HEAVYWEIGHT_HANDLER 0x5200 539 HEAVYWEIGHT_HANDLER 0x5300 539 HEAVYWEIGHT_HANDLER 0x5300 data_access_rights_fault 540 540 HEAVYWEIGHT_HANDLER 0x5400 general_exception 541 541 HEAVYWEIGHT_HANDLER 0x5500 disabled_fp_register  - 
      
kernel/arch/ia64/src/mm/tlb.c
r80a3bd9 r925be4e 711 711 } 712 712 713 /** Data access rights fault handler. 714 * 715 * @param vector Interruption vector. 716 * @param istate Structure with saved interruption state. 717 */ 718 void data_access_rights_fault(uint64_t vector, istate_t *istate) 719 { 720 region_register rr; 721 rid_t rid; 722 uintptr_t va; 723 pte_t *t; 724 725 va = istate->cr_ifa; /* faulting address */ 726 rr.word = rr_read(VA2VRN(va)); 727 rid = rr.map.rid; 728 729 /* 730 * Assume a write to a read-only page. 731 */ 732 page_table_lock(AS, true); 733 t = page_mapping_find(AS, va); 734 ASSERT(t && t->p); 735 ASSERT(!t->w); 736 if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { 737 fault_if_from_uspace(istate, "Page fault at %p.", va); 738 panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid, 739 istate->cr_iip); 740 } 741 page_table_unlock(AS, true); 742 } 743 713 744 /** Page not present fault handler. 714 745 *  
  Note:
 See   TracChangeset
 for help on using the changeset viewer.
  