Rev 2231 | Rev 2745 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2231 | Rev 2462 | ||
|---|---|---|---|
| Line 223... | Line 223... | ||
| 223 | * handler. |
223 | * handler. |
| 224 | */ |
224 | */ |
| 225 | page_table_unlock(AS, true); |
225 | page_table_unlock(AS, true); |
| 226 | if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { |
226 | if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) { |
| 227 | do_fast_instruction_access_mmu_miss_fault(istate, |
227 | do_fast_instruction_access_mmu_miss_fault(istate, |
| 228 | __FUNCTION__); |
228 | __func__); |
| 229 | } |
229 | } |
| 230 | } |
230 | } |
| 231 | } |
231 | } |
| 232 | 232 | ||
| 233 | /** DTLB miss handler. |
233 | /** DTLB miss handler. |
| Line 251... | Line 251... | ||
| 251 | 251 | ||
| 252 | if (tag.context == ASID_KERNEL) { |
252 | if (tag.context == ASID_KERNEL) { |
| 253 | if (!tag.vpn) { |
253 | if (!tag.vpn) { |
| 254 | /* NULL access in kernel */ |
254 | /* NULL access in kernel */ |
| 255 | do_fast_data_access_mmu_miss_fault(istate, tag, |
255 | do_fast_data_access_mmu_miss_fault(istate, tag, |
| 256 | __FUNCTION__); |
256 | __func__); |
| 257 | } |
257 | } |
| 258 | do_fast_data_access_mmu_miss_fault(istate, tag, "Unexpected " |
258 | do_fast_data_access_mmu_miss_fault(istate, tag, "Unexpected " |
| 259 | "kernel page fault."); |
259 | "kernel page fault."); |
| 260 | } |
260 | } |
| 261 | 261 | ||
| Line 278... | Line 278... | ||
| 278 | * handler. |
278 | * handler. |
| 279 | */ |
279 | */ |
| 280 | page_table_unlock(AS, true); |
280 | page_table_unlock(AS, true); |
| 281 | if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { |
281 | if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) { |
| 282 | do_fast_data_access_mmu_miss_fault(istate, tag, |
282 | do_fast_data_access_mmu_miss_fault(istate, tag, |
| 283 | __FUNCTION__); |
283 | __func__); |
| 284 | } |
284 | } |
| 285 | } |
285 | } |
| 286 | } |
286 | } |
| 287 | 287 | ||
| 288 | /** DTLB protection fault handler. |
288 | /** DTLB protection fault handler. |
| Line 324... | Line 324... | ||
| 324 | * handler. |
324 | * handler. |
| 325 | */ |
325 | */ |
| 326 | page_table_unlock(AS, true); |
326 | page_table_unlock(AS, true); |
| 327 | if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { |
327 | if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) { |
| 328 | do_fast_data_access_protection_fault(istate, tag, |
328 | do_fast_data_access_protection_fault(istate, tag, |
| 329 | __FUNCTION__); |
329 | __func__); |
| 330 | } |
330 | } |
| 331 | } |
331 | } |
| 332 | } |
332 | } |
| 333 | 333 | ||
| 334 | /** Print contents of both TLBs. */ |
334 | /** Print contents of both TLBs. */ |