Changeset 89c57b6 in mainline for kernel/arch/ia64/src/mm/tlb.c


Ignore:
Timestamp:
2011-04-13T14:45:41Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
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.
Message:

Merge mainline changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/mm/tlb.c

    rcefb126 r89c57b6  
    475475void alternate_instruction_tlb_fault(uint64_t vector, istate_t *istate)
    476476{
    477         region_register_t rr;
    478         rid_t rid;
    479477        uintptr_t va;
    480478        pte_t *t;
    481479       
    482480        va = istate->cr_ifa; /* faulting address */
    483         rr.word = rr_read(VA2VRN(va));
    484         rid = rr.map.rid;
    485481       
    486482        page_table_lock(AS, true);
     
    499495                page_table_unlock(AS, true);
    500496                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);
    504500                }
    505501        }
     
    557553                        } else {
    558554                                fault_if_from_uspace(istate,
    559                                     "IO access fault at %p.", va);
     555                                    "IO access fault at %p.", (void *) va);
    560556                        }
    561557                }
     
    621617                 */
    622618                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);
    626622                }
    627623        }
     
    649645void data_dirty_bit_fault(uint64_t vector, istate_t *istate)
    650646{
    651         region_register_t rr;
    652         rid_t rid;
    653647        uintptr_t va;
    654648        pte_t *t;
    655649       
    656650        va = istate->cr_ifa;  /* faulting address */
    657         rr.word = rr_read(VA2VRN(va));
    658         rid = rr.map.rid;
    659651       
    660652        page_table_lock(AS, true);
     
    670662        } else {
    671663                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);
    675667                }
    676668        }
     
    686678void instruction_access_bit_fault(uint64_t vector, istate_t *istate)
    687679{
    688         region_register_t rr;
    689         rid_t rid;
    690680        uintptr_t va;
    691681        pte_t *t;
    692682       
    693683        va = istate->cr_ifa;  /* faulting address */
    694         rr.word = rr_read(VA2VRN(va));
    695         rid = rr.map.rid;
    696684       
    697685        page_table_lock(AS, true);
     
    707695        } else {
    708696                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);
    712700                }
    713701        }
     
    723711void data_access_bit_fault(uint64_t vector, istate_t *istate)
    724712{
    725         region_register_t rr;
    726         rid_t rid;
    727713        uintptr_t va;
    728714        pte_t *t;
    729715       
    730716        va = istate->cr_ifa;  /* faulting address */
    731         rr.word = rr_read(VA2VRN(va));
    732         rid = rr.map.rid;
    733717       
    734718        page_table_lock(AS, true);
     
    744728        } else {
    745729                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);
    749733                }
    750734        }
     
    760744void data_access_rights_fault(uint64_t vector, istate_t *istate)
    761745{
    762         region_register_t rr;
    763         rid_t rid;
    764746        uintptr_t va;
    765747        pte_t *t;
    766748       
    767749        va = istate->cr_ifa;  /* faulting address */
    768         rr.word = rr_read(VA2VRN(va));
    769         rid = rr.map.rid;
    770750       
    771751        /*
     
    777757        ASSERT(!t->w);
    778758        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);
    781762        }
    782763        page_table_unlock(AS, true);
     
    791772void page_not_present(uint64_t vector, istate_t *istate)
    792773{
    793         region_register_t rr;
    794         rid_t rid;
    795774        uintptr_t va;
    796775        pte_t *t;
    797776       
    798777        va = istate->cr_ifa;  /* faulting address */
    799         rr.word = rr_read(VA2VRN(va));
    800         rid = rr.map.rid;
    801778       
    802779        page_table_lock(AS, true);
     
    817794                page_table_unlock(AS, true);
    818795                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);
    822799                }
    823800        }
Note: See TracChangeset for help on using the changeset viewer.