Ignore:
File:
1 edited

Legend:

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

    rc15b374 rd99c1d2  
    2727 */
    2828
    29 /** @addtogroup sparc64mm
     29/** @addtogroup sparc64mm       
    3030 * @{
    3131 */
     
    5858static void dtlb_pte_copy(pte_t *, size_t, bool);
    5959static void itlb_pte_copy(pte_t *, size_t);
    60 static void do_fast_instruction_access_mmu_miss_fault(istate_t *, uintptr_t,
    61     const char *);
     60static void do_fast_instruction_access_mmu_miss_fault(istate_t *, const char *);
    6261static void do_fast_data_access_mmu_miss_fault(istate_t *, tlb_tag_access_reg_t,
    6362    const char *);
     
    223222                 * Forward the page fault to the address space page fault
    224223                 * handler.
    225                  */
     224                 */             
    226225                page_table_unlock(AS, true);
    227226                if (as_page_fault(page_16k, PF_ACCESS_EXEC, istate) ==
    228227                    AS_PF_FAULT) {
    229228                        do_fast_instruction_access_mmu_miss_fault(istate,
    230                             istate->tpc, __func__);
     229                            __func__);
    231230                }
    232231        }
     
    259258                        /* NULL access in kernel */
    260259                        do_fast_data_access_mmu_miss_fault(istate, tag,
    261                             "Dereferencing NULL pointer.");
     260                            __func__);
    262261                } else if (page_8k >= end_of_identity) {
    263262                        /*
     
    439438
    440439void do_fast_instruction_access_mmu_miss_fault(istate_t *istate,
    441     uintptr_t va, const char *str)
    442 {
    443         fault_if_from_uspace(istate, "%s, Address=%p.", str, va);
    444         panic_memtrap(istate, PF_ACCESS_EXEC, va, str);
     440    const char *str)
     441{
     442        fault_if_from_uspace(istate, "%s.", str);
     443        dump_istate(istate);
     444        panic("%s.", str);
    445445}
    446446
     
    451451
    452452        va = tag.vpn << MMU_PAGE_WIDTH;
    453         fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va,
    454             tag.context);
    455         panic_memtrap(istate, PF_ACCESS_UNKNOWN, va, str);
     453        if (tag.context) {
     454                fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va,
     455                    tag.context);
     456        }
     457        dump_istate(istate);
     458        printf("Faulting page: %p, ASID=%d.\n", va, tag.context);
     459        panic("%s.", str);
    456460}
    457461
     
    462466
    463467        va = tag.vpn << MMU_PAGE_WIDTH;
    464         fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va,
    465             tag.context);
    466         panic_memtrap(istate, PF_ACCESS_WRITE, va, str);
     468
     469        if (tag.context) {
     470                fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va,
     471                    tag.context);
     472        }
     473        printf("Faulting page: %p, ASID=%d\n", va, tag.context);
     474        dump_istate(istate);
     475        panic("%s.", str);
    467476}
    468477
Note: See TracChangeset for help on using the changeset viewer.