Ignore:
File:
1 edited

Legend:

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

    r8fe2c9bd r59fb782  
    9494        entry_lo_t lo;
    9595        uintptr_t badvaddr;
    96         uintptr_t page;
    9796        pte_t *pte;
    9897       
    9998        badvaddr = cp0_badvaddr_read();
    100         page = ALIGN_DOWN(badvaddr, PAGE_SIZE);
    101 
    102         pte = page_mapping_find(AS, page, true);
     99
     100        pte = page_mapping_find(AS, badvaddr, true);
    103101        if (pte && pte->p) {
    104102                /*
     
    125123        }
    126124
    127         (void) as_page_fault(page, PF_ACCESS_READ, istate);
     125        (void) as_page_fault(badvaddr, PF_ACCESS_READ, istate);
    128126}
    129127
     
    137135        tlb_index_t index;
    138136        uintptr_t badvaddr;
    139         uintptr_t page;
    140137        pte_t *pte;
    141138
     
    161158
    162159        badvaddr = cp0_badvaddr_read();
    163         page = ALIGN_DOWN(badvaddr, PAGE_SIZE);
    164 
    165         pte = page_mapping_find(AS, page, true);
     160
     161        pte = page_mapping_find(AS, badvaddr, true);
    166162        if (pte && pte->p) {
    167163                /*
     
    189185        }
    190186
    191         (void) as_page_fault(page, PF_ACCESS_READ, istate);
     187        (void) as_page_fault(badvaddr, PF_ACCESS_READ, istate);
    192188}
    193189
     
    201197        tlb_index_t index;
    202198        uintptr_t badvaddr;
    203         uintptr_t page;
    204199        pte_t *pte;
    205200
    206201        badvaddr = cp0_badvaddr_read();
    207         page = ALIGN_DOWN(badvaddr, PAGE_SIZE);
    208202
    209203        /*
     
    227221        }
    228222
    229         pte = page_mapping_find(AS, page, true);
     223        pte = page_mapping_find(AS, badvaddr, true);
    230224        if (pte && pte->p && pte->w) {
    231225                /*
     
    254248        }
    255249
    256         (void) as_page_fault(page, PF_ACCESS_WRITE, istate);
     250        (void) as_page_fault(badvaddr, PF_ACCESS_WRITE, istate);
    257251}
    258252
Note: See TracChangeset for help on using the changeset viewer.