Lines Matching defs:vinst
35 base = window->vinst->paste_base_addr;
36 shift = window->vinst->paste_win_id_shift;
51 pbaddr = window->vinst->hvwc_bar_start;
61 pbaddr = window->vinst->uwc_bar_start;
78 name = kasprintf(GFP_KERNEL, "window-v%d-w%d", txwin->vinst->vas_id,
525 struct vas_instance *vinst = window->vinst;
534 vas_release_window_id(&vinst->ida, winid);
537 static struct pnv_vas_window *vas_window_alloc(struct vas_instance *vinst)
542 winid = vas_assign_window_id(&vinst->ida);
550 window->vinst = vinst;
562 vas_release_window_id(&vinst->ida, winid);
580 * NOTE: We access ->windows[] table and assume that vinst->mutex is held.
582 static struct pnv_vas_window *get_user_rxwin(struct vas_instance *vinst,
590 if (vinst->vas_id != vasid)
593 rxwin = vinst->windows[winid];
607 static struct pnv_vas_window *get_vinst_rxwin(struct vas_instance *vinst,
612 mutex_lock(&vinst->mutex);
615 rxwin = get_user_rxwin(vinst, pswid);
617 rxwin = vinst->rxwin[cop] ?: ERR_PTR(-EINVAL);
622 mutex_unlock(&vinst->mutex);
642 static void set_vinst_win(struct vas_instance *vinst,
647 mutex_lock(&vinst->mutex);
654 WARN_ON_ONCE(vinst->rxwin[window->vas_win.cop]);
655 vinst->rxwin[window->vas_win.cop] = window;
658 WARN_ON_ONCE(vinst->windows[id] != NULL);
659 vinst->windows[id] = window;
661 mutex_unlock(&vinst->mutex);
671 struct vas_instance *vinst = window->vinst;
673 mutex_lock(&vinst->mutex);
676 WARN_ON_ONCE(!vinst->rxwin[window->vas_win.cop]);
677 vinst->rxwin[window->vas_win.cop] = NULL;
680 WARN_ON_ONCE(vinst->windows[id] != window);
681 vinst->windows[id] = NULL;
683 mutex_unlock(&vinst->mutex);
754 if (rxwin->vinst->virq)
755 winctx->irq_port = rxwin->vinst->irq_port;
858 struct vas_instance *vinst;
865 vinst = find_vas_instance(vasid);
866 if (!vinst) {
872 rxwin = vas_window_alloc(vinst);
887 set_vinst_win(vinst, rxwin);
956 if (txwin->vinst->virq)
957 winctx->fault_win_id = txwin->vinst->fault_win->vas_win.winid;
963 if (txwin->vinst->virq)
964 winctx->irq_port = txwin->vinst->irq_port;
967 encode_pswid(txwin->vinst->vas_id,
1002 struct vas_instance *vinst;
1017 vinst = find_vas_instance(vasid);
1018 if (!vinst) {
1023 rxwin = get_vinst_rxwin(vinst, cop, attr->pswid);
1029 txwin = vas_window_alloc(vinst);
1066 if (!vinst->virq) {
1077 set_vinst_win(vinst, txwin);
1361 struct pnv_vas_window *vas_pswid_to_window(struct vas_instance *vinst,
1386 window = vinst->windows[winid];
1389 pr_err("PSWID decode: Could not find window for winid %d pswid %d vinst 0x%p\n",
1390 winid, pswid, vinst);