Lines Matching defs:mappass
463 struct sockpass_mapping *mappass)
465 if (mappass->sock->sk != NULL) {
466 write_lock_bh(&mappass->sock->sk->sk_callback_lock);
467 mappass->sock->sk->sk_user_data = NULL;
468 mappass->sock->sk->sk_data_ready = mappass->saved_data_ready;
469 write_unlock_bh(&mappass->sock->sk->sk_callback_lock);
471 sock_release(mappass->sock);
472 destroy_workqueue(mappass->wq);
473 kfree(mappass);
483 struct sockpass_mapping *mappass;
498 mappass = radix_tree_lookup(&fedata->socketpass_mappings,
500 if (mappass != NULL) {
501 radix_tree_delete(&fedata->socketpass_mappings, mappass->id);
503 ret = pvcalls_back_release_passive(dev, fedata, mappass);
518 struct sockpass_mapping *mappass = container_of(
530 fedata = mappass->fedata;
537 spin_lock_irqsave(&mappass->copy_lock, flags);
538 req = &mappass->reqcopy;
540 spin_unlock_irqrestore(&mappass->copy_lock, flags);
543 spin_unlock_irqrestore(&mappass->copy_lock, flags);
548 sock->type = mappass->sock->type;
549 sock->ops = mappass->sock->ops;
551 ret = inet_accept(mappass->sock, sock, O_NONBLOCK, true);
567 map->sockpass = mappass;
583 mappass->reqcopy.cmd = 0;
588 struct sockpass_mapping *mappass = sock->sk_user_data;
596 if (mappass == NULL)
599 fedata = mappass->fedata;
600 spin_lock_irqsave(&mappass->copy_lock, flags);
601 if (mappass->reqcopy.cmd == PVCALLS_POLL) {
604 rsp->req_id = mappass->reqcopy.req_id;
605 rsp->u.poll.id = mappass->reqcopy.u.poll.id;
606 rsp->cmd = mappass->reqcopy.cmd;
609 mappass->reqcopy.cmd = 0;
610 spin_unlock_irqrestore(&mappass->copy_lock, flags);
614 notify_remote_via_irq(mappass->fedata->irq);
616 spin_unlock_irqrestore(&mappass->copy_lock, flags);
617 queue_work(mappass->wq, &mappass->register_work);
717 struct sockpass_mapping *mappass;
725 mappass = radix_tree_lookup(&fedata->socketpass_mappings,
728 if (mappass == NULL)
735 spin_lock_irqsave(&mappass->copy_lock, flags);
736 if (mappass->reqcopy.cmd != 0) {
737 spin_unlock_irqrestore(&mappass->copy_lock, flags);
742 mappass->reqcopy = *req;
743 spin_unlock_irqrestore(&mappass->copy_lock, flags);
744 queue_work(mappass->wq, &mappass->register_work);
762 struct sockpass_mapping *mappass;
773 mappass = radix_tree_lookup(&fedata->socketpass_mappings,
776 if (mappass == NULL)
783 spin_lock_irqsave(&mappass->copy_lock, flags);
784 if (mappass->reqcopy.cmd != 0) {
789 mappass->reqcopy = *req;
790 icsk = inet_csk(mappass->sock->sk);
794 mappass->reqcopy.cmd = 0;
798 spin_unlock_irqrestore(&mappass->copy_lock, flags);
804 spin_unlock_irqrestore(&mappass->copy_lock, flags);
997 struct sockpass_mapping *mappass;
1011 mappass = radix_tree_deref_slot(slot);
1012 if (!mappass)
1014 if (radix_tree_exception(mappass)) {
1015 if (radix_tree_deref_retry(mappass))
1019 mappass->id);
1020 pvcalls_back_release_passive(dev, fedata, mappass);