Lines Matching refs:ept
204 struct rpmsg_endpoint *ept = container_of(kref, struct rpmsg_endpoint, in __ept_release() local
210 kfree(ept); in __ept_release()
219 struct rpmsg_endpoint *ept; in __rpmsg_create_ept() local
222 ept = kzalloc(sizeof(*ept), GFP_KERNEL); in __rpmsg_create_ept()
223 if (!ept) { in __rpmsg_create_ept()
228 kref_init(&ept->refcount); in __rpmsg_create_ept()
229 mutex_init(&ept->cb_lock); in __rpmsg_create_ept()
231 ept->rpdev = rpdev; in __rpmsg_create_ept()
232 ept->cb = cb; in __rpmsg_create_ept()
233 ept->priv = priv; in __rpmsg_create_ept()
247 id = idr_alloc(&vrp->endpoints, ept, id_min, id_max, GFP_KERNEL); in __rpmsg_create_ept()
252 ept->addr = id; in __rpmsg_create_ept()
256 return ept; in __rpmsg_create_ept()
260 kref_put(&ept->refcount, __ept_release); in __rpmsg_create_ept()
322 __rpmsg_destroy_ept(struct virtproc_info *vrp, struct rpmsg_endpoint *ept) in __rpmsg_destroy_ept() argument
326 idr_remove(&vrp->endpoints, ept->addr); in __rpmsg_destroy_ept()
330 mutex_lock(&ept->cb_lock); in __rpmsg_destroy_ept()
331 ept->cb = NULL; in __rpmsg_destroy_ept()
332 mutex_unlock(&ept->cb_lock); in __rpmsg_destroy_ept()
334 kref_put(&ept->refcount, __ept_release); in __rpmsg_destroy_ept()
344 void rpmsg_destroy_ept(struct rpmsg_endpoint *ept) in rpmsg_destroy_ept() argument
346 __rpmsg_destroy_ept(ept->rpdev->vrp, ept); in rpmsg_destroy_ept()
363 struct rpmsg_endpoint *ept; in rpmsg_dev_probe() local
366 ept = rpmsg_create_ept(rpdev, rpdrv->callback, NULL, rpdev->src); in rpmsg_dev_probe()
367 if (!ept) { in rpmsg_dev_probe()
373 rpdev->ept = ept; in rpmsg_dev_probe()
374 rpdev->src = ept->addr; in rpmsg_dev_probe()
379 rpmsg_destroy_ept(ept); in rpmsg_dev_probe()
424 rpmsg_destroy_ept(rpdev->ept); in rpmsg_dev_remove()
784 struct rpmsg_endpoint *ept; in rpmsg_recv_single() local
807 ept = idr_find(&vrp->endpoints, msg->dst); in rpmsg_recv_single()
810 if (ept) in rpmsg_recv_single()
811 kref_get(&ept->refcount); in rpmsg_recv_single()
815 if (ept) { in rpmsg_recv_single()
817 mutex_lock(&ept->cb_lock); in rpmsg_recv_single()
819 if (ept->cb) in rpmsg_recv_single()
820 ept->cb(ept->rpdev, msg->data, msg->len, ept->priv, in rpmsg_recv_single()
823 mutex_unlock(&ept->cb_lock); in rpmsg_recv_single()
826 kref_put(&ept->refcount, __ept_release); in rpmsg_recv_single()