Lines Matching refs:tfh
313 struct gru_tlb_fault_handle *tfh, in gru_preload_tlb() argument
333 if (ret || tfh_write_only(tfh, gpa, GAA_RAM, vaddr, asid, write, in gru_preload_tlb()
338 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, in gru_preload_tlb()
357 struct gru_tlb_fault_handle *tfh, in gru_try_dropin() argument
376 cbe = gru_tfh_to_cbe(tfh); in gru_try_dropin()
385 if (tfh->status != TFHSTATUS_EXCEPTION) { in gru_try_dropin()
386 gru_flush_cache(tfh); in gru_try_dropin()
388 if (tfh->status != TFHSTATUS_EXCEPTION) in gru_try_dropin()
392 if (tfh->state == TFHSTATE_IDLE) in gru_try_dropin()
394 if (tfh->state == TFHSTATE_MISS_FMM && cbk) in gru_try_dropin()
397 write = (tfh->cause & TFHCAUSE_TLB_MOD) != 0; in gru_try_dropin()
398 vaddr = tfh->missvaddr; in gru_try_dropin()
399 asid = tfh->missasid; in gru_try_dropin()
400 indexway = tfh->indexway; in gru_try_dropin()
428 gru_preload_tlb(gru, gts, atomic, vaddr, asid, write, tlb_preload_count, tfh, cbe); in gru_try_dropin()
434 tfh_write_restart(tfh, gpa, GAA_RAM, vaddr, asid, write, in gru_try_dropin()
439 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, vaddr, asid, in gru_try_dropin()
447 gru_dbg(grudev, "FAILED no_asid tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr); in gru_try_dropin()
449 tfh_user_polling_mode(tfh); in gru_try_dropin()
451 gru_flush_cache(tfh); in gru_try_dropin()
457 tfh_user_polling_mode(tfh); in gru_try_dropin()
460 gru_dbg(grudev, "FAILED upm tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr); in gru_try_dropin()
465 gru_flush_cache(tfh); in gru_try_dropin()
468 gru_dbg(grudev, "FAILED fmm tfh: 0x%p, state %d\n", tfh, tfh->state); in gru_try_dropin()
473 gru_flush_cache(tfh); in gru_try_dropin()
479 tfh, tfh->status, tfh->state); in gru_try_dropin()
484 gru_flush_cache(tfh); in gru_try_dropin()
489 gru_dbg(grudev, "FAILED idle tfh: 0x%p, state %d\n", tfh, tfh->state); in gru_try_dropin()
494 tfh_exception(tfh); in gru_try_dropin()
497 gru_dbg(grudev, "FAILED inval tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr); in gru_try_dropin()
503 tfh_user_polling_mode(tfh); in gru_try_dropin()
505 gru_flush_cache(tfh); in gru_try_dropin()
509 tfh, vaddr); in gru_try_dropin()
524 struct gru_tlb_fault_handle *tfh = NULL; in gru_intr() local
554 tfh = get_tfh_by_index(gru, cbrnum); in gru_intr()
555 prefetchw(tfh); /* Helps on hdw, required for emulator */ in gru_intr()
563 ctxnum = tfh->ctxnum; in gru_intr()
579 gru_try_dropin(gru, gts, tfh, NULL); in gru_intr()
582 tfh_user_polling_mode(tfh); in gru_intr()
614 struct gru_tlb_fault_handle *tfh, in gru_user_dropin() argument
624 prefetchw(tfh); /* Helps on hdw, required for emulator */ in gru_user_dropin()
625 ret = gru_try_dropin(gts->ts_gru, gts, tfh, cb); in gru_user_dropin()
639 struct gru_tlb_fault_handle *tfh; in gru_handle_user_call_os() local
677 tfh = get_tfh_by_index(gts->ts_gru, cbrnum); in gru_handle_user_call_os()
680 ret = gru_user_dropin(gts, tfh, cbk); in gru_handle_user_call_os()