Lines Matching refs:txwin

199 	struct pseries_vas_window *txwin = data;
204 while (atomic_read(&txwin->pending_faults)) {
205 rc = h_get_nx_fault(txwin->vas_win.winid, (u64)virt_to_phys(&crb));
207 tsk_ref = &txwin->vas_win.task_ref;
211 atomic_dec(&txwin->pending_faults);
228 struct pseries_vas_window *txwin = data;
234 atomic_inc(&txwin->pending_faults);
242 static int allocate_setup_window(struct pseries_vas_window *txwin,
247 rc = h_allocate_vas_window(txwin, domain, wintype, DEF_WIN_CREDS);
255 txwin->fault_virq = irq_create_mapping(NULL, txwin->fault_irq);
256 if (!txwin->fault_virq) {
257 pr_err("Failed irq mapping %d\n", txwin->fault_irq);
262 txwin->name = kasprintf(GFP_KERNEL, "vas-win-%d",
263 txwin->vas_win.winid);
264 if (!txwin->name) {
269 rc = request_threaded_irq(txwin->fault_virq,
272 txwin->name, txwin);
275 txwin->vas_win.winid, txwin->fault_virq, rc);
279 txwin->vas_win.wcreds_max = DEF_WIN_CREDS;
283 kfree(txwin->name);
285 irq_dispose_mapping(txwin->fault_virq);
287 h_deallocate_vas_window(txwin->vas_win.winid);
291 static inline void free_irq_setup(struct pseries_vas_window *txwin)
293 free_irq(txwin->fault_virq, txwin);
294 kfree(txwin->name);
295 irq_dispose_mapping(txwin->fault_virq);
304 struct pseries_vas_window *txwin;
307 txwin = kzalloc(sizeof(*txwin), GFP_KERNEL);
308 if (!txwin)
370 txwin->pid = mfspr(SPRN_PID);
391 rc = allocate_setup_window(txwin, (u64 *)&domain[0],
404 rc = h_modify_vas_window(txwin);
406 rc = get_vas_user_win_ref(&txwin->vas_win.task_ref);
410 txwin->win_type = cop_feat_caps->win_type;
431 list_add(&txwin->win_list, &caps->list);
435 vas_user_win_add_mm_context(&txwin->vas_win.task_ref);
436 return &txwin->vas_win;
440 put_vas_user_win_ref(&txwin->vas_win.task_ref);
449 free_irq_setup(txwin);
450 h_deallocate_vas_window(txwin->vas_win.winid);
459 kfree(txwin);