Lines Matching refs:event_sub

1421 	list_for_each_entry_safe(sub_entry, tmp, &obj->event_sub, obj_list)  in devx_obj_cleanup()
1548 INIT_LIST_HEAD(&obj->event_sub); in UVERBS_HANDLER()
2012 struct devx_event_subscription *event_sub, *tmp_sub; in UVERBS_HANDLER() local
2098 event_sub = kzalloc(sizeof(*event_sub), GFP_KERNEL); in UVERBS_HANDLER()
2099 if (!event_sub) { in UVERBS_HANDLER()
2104 list_add_tail(&event_sub->event_list, &sub_list); in UVERBS_HANDLER()
2107 event_sub->eventfd = in UVERBS_HANDLER()
2110 if (IS_ERR(event_sub->eventfd)) { in UVERBS_HANDLER()
2111 err = PTR_ERR(event_sub->eventfd); in UVERBS_HANDLER()
2112 event_sub->eventfd = NULL; in UVERBS_HANDLER()
2117 event_sub->cookie = cookie; in UVERBS_HANDLER()
2118 event_sub->ev_file = ev_file; in UVERBS_HANDLER()
2120 event_sub->xa_key_level1 = key_level1; in UVERBS_HANDLER()
2121 event_sub->xa_key_level2 = obj_id; in UVERBS_HANDLER()
2122 INIT_LIST_HEAD(&event_sub->obj_list); in UVERBS_HANDLER()
2129 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2133 list_del_init(&event_sub->event_list); in UVERBS_HANDLER()
2136 list_add_tail_rcu(&event_sub->file_list, in UVERBS_HANDLER()
2141 event_sub->xa_key_level1); in UVERBS_HANDLER()
2145 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2152 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2154 list_add_tail_rcu(&event_sub->obj_list, in UVERBS_HANDLER()
2155 &obj->event_sub); in UVERBS_HANDLER()
2162 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2163 list_del(&event_sub->event_list); in UVERBS_HANDLER()
2166 event_sub->xa_key_level1, in UVERBS_HANDLER()
2170 if (event_sub->eventfd) in UVERBS_HANDLER()
2171 eventfd_ctx_put(event_sub->eventfd); in UVERBS_HANDLER()
2172 uverbs_uobject_put(&event_sub->ev_file->uobj); in UVERBS_HANDLER()
2173 kfree(event_sub); in UVERBS_HANDLER()
2448 static int deliver_event(struct devx_event_subscription *event_sub, in deliver_event() argument
2455 ev_file = event_sub->ev_file; in deliver_event()
2459 if (!list_empty(&event_sub->event_list) || in deliver_event()
2465 list_add_tail(&event_sub->event_list, &ev_file->event_list); in deliver_event()
2480 event_data->hdr.cookie = event_sub->cookie; in deliver_event()
2683 struct devx_event_subscription *event_sub; in devx_async_event_read() local
2721 event_sub = list_first_entry(&ev_file->event_list, in devx_async_event_read()
2724 eventsz = sizeof(event_sub->cookie); in devx_async_event_read()
2725 event_data = &event_sub->cookie; in devx_async_event_read()
2740 list_del_init(&event_sub->event_list); in devx_async_event_read()
2777 struct devx_event_subscription *event_sub = in devx_free_subscription() local
2780 if (event_sub->eventfd) in devx_free_subscription()
2781 eventfd_ctx_put(event_sub->eventfd); in devx_free_subscription()
2782 uverbs_uobject_put(&event_sub->ev_file->uobj); in devx_free_subscription()
2783 kfree(event_sub); in devx_free_subscription()
2825 struct devx_event_subscription *event_sub, *event_sub_tmp; in devx_async_event_destroy_uobj() local
2833 struct devx_event_subscription *event_sub, *tmp; in devx_async_event_destroy_uobj() local
2835 list_for_each_entry_safe(event_sub, tmp, &ev_file->event_list, in devx_async_event_destroy_uobj()
2837 list_del_init(&event_sub->event_list); in devx_async_event_destroy_uobj()
2854 list_for_each_entry_safe(event_sub, event_sub_tmp, in devx_async_event_destroy_uobj()
2856 devx_cleanup_subscription(dev, event_sub); in devx_async_event_destroy_uobj()
2857 list_del_rcu(&event_sub->file_list); in devx_async_event_destroy_uobj()
2859 call_rcu(&event_sub->rcu, devx_free_subscription); in devx_async_event_destroy_uobj()