Lines Matching refs:tfh
322 struct gru_tlb_fault_handle *tfh, in gru_preload_tlb() argument
342 if (ret || tfh_write_only(tfh, gpa, GAA_RAM, vaddr, asid, write, in gru_preload_tlb()
347 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, in gru_preload_tlb()
366 struct gru_tlb_fault_handle *tfh, in gru_try_dropin() argument
385 cbe = gru_tfh_to_cbe(tfh); in gru_try_dropin()
394 if (tfh->status != TFHSTATUS_EXCEPTION) { in gru_try_dropin()
395 gru_flush_cache(tfh); in gru_try_dropin()
397 if (tfh->status != TFHSTATUS_EXCEPTION) in gru_try_dropin()
401 if (tfh->state == TFHSTATE_IDLE) in gru_try_dropin()
403 if (tfh->state == TFHSTATE_MISS_FMM && cbk) in gru_try_dropin()
406 write = (tfh->cause & TFHCAUSE_TLB_MOD) != 0; in gru_try_dropin()
407 vaddr = tfh->missvaddr; in gru_try_dropin()
408 asid = tfh->missasid; in gru_try_dropin()
409 indexway = tfh->indexway; in gru_try_dropin()
437 gru_preload_tlb(gru, gts, atomic, vaddr, asid, write, tlb_preload_count, tfh, cbe); in gru_try_dropin()
443 tfh_write_restart(tfh, gpa, GAA_RAM, vaddr, asid, write, in gru_try_dropin()
448 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, vaddr, asid, in gru_try_dropin()
456 gru_dbg(grudev, "FAILED no_asid tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr); in gru_try_dropin()
458 tfh_user_polling_mode(tfh); in gru_try_dropin()
460 gru_flush_cache(tfh); in gru_try_dropin()
466 tfh_user_polling_mode(tfh); in gru_try_dropin()
469 gru_dbg(grudev, "FAILED upm tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr); in gru_try_dropin()
474 gru_flush_cache(tfh); in gru_try_dropin()
477 gru_dbg(grudev, "FAILED fmm tfh: 0x%p, state %d\n", tfh, tfh->state); in gru_try_dropin()
482 gru_flush_cache(tfh); in gru_try_dropin()
488 tfh, tfh->status, tfh->state); in gru_try_dropin()
493 gru_flush_cache(tfh); in gru_try_dropin()
498 gru_dbg(grudev, "FAILED idle tfh: 0x%p, state %d\n", tfh, tfh->state); in gru_try_dropin()
503 tfh_exception(tfh); in gru_try_dropin()
506 gru_dbg(grudev, "FAILED inval tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr); in gru_try_dropin()
512 tfh_user_polling_mode(tfh); in gru_try_dropin()
514 gru_flush_cache(tfh); in gru_try_dropin()
518 tfh, vaddr); in gru_try_dropin()
533 struct gru_tlb_fault_handle *tfh = NULL; in gru_intr() local
563 tfh = get_tfh_by_index(gru, cbrnum); in gru_intr()
564 prefetchw(tfh); /* Helps on hdw, required for emulator */ in gru_intr()
572 ctxnum = tfh->ctxnum; in gru_intr()
588 gru_try_dropin(gru, gts, tfh, NULL); in gru_intr()
591 tfh_user_polling_mode(tfh); in gru_intr()
623 struct gru_tlb_fault_handle *tfh, in gru_user_dropin() argument
633 prefetchw(tfh); /* Helps on hdw, required for emulator */ in gru_user_dropin()
634 ret = gru_try_dropin(gts->ts_gru, gts, tfh, cb); in gru_user_dropin()
648 struct gru_tlb_fault_handle *tfh; in gru_handle_user_call_os() local
681 tfh = get_tfh_by_index(gts->ts_gru, cbrnum); in gru_handle_user_call_os()
684 ret = gru_user_dropin(gts, tfh, cbk); in gru_handle_user_call_os()