Lines Matching refs:mappass

459 					struct sockpass_mapping *mappass)  in pvcalls_back_release_passive()  argument
461 if (mappass->sock->sk != NULL) { in pvcalls_back_release_passive()
462 write_lock_bh(&mappass->sock->sk->sk_callback_lock); in pvcalls_back_release_passive()
463 mappass->sock->sk->sk_user_data = NULL; in pvcalls_back_release_passive()
464 mappass->sock->sk->sk_data_ready = mappass->saved_data_ready; in pvcalls_back_release_passive()
465 write_unlock_bh(&mappass->sock->sk->sk_callback_lock); in pvcalls_back_release_passive()
467 sock_release(mappass->sock); in pvcalls_back_release_passive()
468 destroy_workqueue(mappass->wq); in pvcalls_back_release_passive()
469 kfree(mappass); in pvcalls_back_release_passive()
479 struct sockpass_mapping *mappass; in pvcalls_back_release() local
494 mappass = radix_tree_lookup(&fedata->socketpass_mappings, in pvcalls_back_release()
496 if (mappass != NULL) { in pvcalls_back_release()
497 radix_tree_delete(&fedata->socketpass_mappings, mappass->id); in pvcalls_back_release()
499 ret = pvcalls_back_release_passive(dev, fedata, mappass); in pvcalls_back_release()
514 struct sockpass_mapping *mappass = container_of( in __pvcalls_back_accept() local
526 fedata = mappass->fedata; in __pvcalls_back_accept()
533 spin_lock_irqsave(&mappass->copy_lock, flags); in __pvcalls_back_accept()
534 req = &mappass->reqcopy; in __pvcalls_back_accept()
536 spin_unlock_irqrestore(&mappass->copy_lock, flags); in __pvcalls_back_accept()
539 spin_unlock_irqrestore(&mappass->copy_lock, flags); in __pvcalls_back_accept()
544 sock->type = mappass->sock->type; in __pvcalls_back_accept()
545 sock->ops = mappass->sock->ops; in __pvcalls_back_accept()
547 ret = inet_accept(mappass->sock, sock, O_NONBLOCK, true); in __pvcalls_back_accept()
564 map->sockpass = mappass; in __pvcalls_back_accept()
580 mappass->reqcopy.cmd = 0; in __pvcalls_back_accept()
585 struct sockpass_mapping *mappass = sock->sk_user_data; in pvcalls_pass_sk_data_ready() local
591 if (mappass == NULL) in pvcalls_pass_sk_data_ready()
594 fedata = mappass->fedata; in pvcalls_pass_sk_data_ready()
595 spin_lock_irqsave(&mappass->copy_lock, flags); in pvcalls_pass_sk_data_ready()
596 if (mappass->reqcopy.cmd == PVCALLS_POLL) { in pvcalls_pass_sk_data_ready()
599 rsp->req_id = mappass->reqcopy.req_id; in pvcalls_pass_sk_data_ready()
600 rsp->u.poll.id = mappass->reqcopy.u.poll.id; in pvcalls_pass_sk_data_ready()
601 rsp->cmd = mappass->reqcopy.cmd; in pvcalls_pass_sk_data_ready()
604 mappass->reqcopy.cmd = 0; in pvcalls_pass_sk_data_ready()
605 spin_unlock_irqrestore(&mappass->copy_lock, flags); in pvcalls_pass_sk_data_ready()
609 notify_remote_via_irq(mappass->fedata->irq); in pvcalls_pass_sk_data_ready()
611 spin_unlock_irqrestore(&mappass->copy_lock, flags); in pvcalls_pass_sk_data_ready()
612 queue_work(mappass->wq, &mappass->register_work); in pvcalls_pass_sk_data_ready()
712 struct sockpass_mapping *mappass; in pvcalls_back_accept() local
720 mappass = radix_tree_lookup(&fedata->socketpass_mappings, in pvcalls_back_accept()
723 if (mappass == NULL) in pvcalls_back_accept()
730 spin_lock_irqsave(&mappass->copy_lock, flags); in pvcalls_back_accept()
731 if (mappass->reqcopy.cmd != 0) { in pvcalls_back_accept()
732 spin_unlock_irqrestore(&mappass->copy_lock, flags); in pvcalls_back_accept()
737 mappass->reqcopy = *req; in pvcalls_back_accept()
738 spin_unlock_irqrestore(&mappass->copy_lock, flags); in pvcalls_back_accept()
739 queue_work(mappass->wq, &mappass->register_work); in pvcalls_back_accept()
757 struct sockpass_mapping *mappass; in pvcalls_back_poll() local
768 mappass = radix_tree_lookup(&fedata->socketpass_mappings, in pvcalls_back_poll()
771 if (mappass == NULL) in pvcalls_back_poll()
778 spin_lock_irqsave(&mappass->copy_lock, flags); in pvcalls_back_poll()
779 if (mappass->reqcopy.cmd != 0) { in pvcalls_back_poll()
784 mappass->reqcopy = *req; in pvcalls_back_poll()
785 icsk = inet_csk(mappass->sock->sk); in pvcalls_back_poll()
789 mappass->reqcopy.cmd = 0; in pvcalls_back_poll()
793 spin_unlock_irqrestore(&mappass->copy_lock, flags); in pvcalls_back_poll()
799 spin_unlock_irqrestore(&mappass->copy_lock, flags); in pvcalls_back_poll()
992 struct sockpass_mapping *mappass; in backend_disconnect() local
1006 mappass = radix_tree_deref_slot(slot); in backend_disconnect()
1007 if (!mappass) in backend_disconnect()
1009 if (radix_tree_exception(mappass)) { in backend_disconnect()
1010 if (radix_tree_deref_retry(mappass)) in backend_disconnect()
1014 mappass->id); in backend_disconnect()
1015 pvcalls_back_release_passive(dev, fedata, mappass); in backend_disconnect()