Lines Matching refs:event_sub
1319 list_for_each_entry_safe(sub_entry, tmp, &obj->event_sub, obj_list) in devx_obj_cleanup()
1426 INIT_LIST_HEAD(&obj->event_sub); in UVERBS_HANDLER()
1886 struct devx_event_subscription *event_sub, *tmp_sub; in UVERBS_HANDLER() local
1974 event_sub = kzalloc(sizeof(*event_sub), GFP_KERNEL); in UVERBS_HANDLER()
1975 if (!event_sub) { in UVERBS_HANDLER()
1980 list_add_tail(&event_sub->event_list, &sub_list); in UVERBS_HANDLER()
1983 event_sub->eventfd = in UVERBS_HANDLER()
1986 if (IS_ERR(event_sub->eventfd)) { in UVERBS_HANDLER()
1987 err = PTR_ERR(event_sub->eventfd); in UVERBS_HANDLER()
1988 event_sub->eventfd = NULL; in UVERBS_HANDLER()
1993 event_sub->cookie = cookie; in UVERBS_HANDLER()
1994 event_sub->ev_file = ev_file; in UVERBS_HANDLER()
1996 event_sub->xa_key_level1 = key_level1; in UVERBS_HANDLER()
1997 event_sub->xa_key_level2 = obj_id; in UVERBS_HANDLER()
1998 INIT_LIST_HEAD(&event_sub->obj_list); in UVERBS_HANDLER()
2005 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2009 list_del_init(&event_sub->event_list); in UVERBS_HANDLER()
2012 list_add_tail_rcu(&event_sub->file_list, in UVERBS_HANDLER()
2017 event_sub->xa_key_level1); in UVERBS_HANDLER()
2021 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2028 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2030 list_add_tail_rcu(&event_sub->obj_list, in UVERBS_HANDLER()
2031 &obj->event_sub); in UVERBS_HANDLER()
2038 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2039 list_del(&event_sub->event_list); in UVERBS_HANDLER()
2042 event_sub->xa_key_level1, in UVERBS_HANDLER()
2046 if (event_sub->eventfd) in UVERBS_HANDLER()
2047 eventfd_ctx_put(event_sub->eventfd); in UVERBS_HANDLER()
2048 uverbs_uobject_put(&event_sub->ev_file->uobj); in UVERBS_HANDLER()
2049 kfree(event_sub); in UVERBS_HANDLER()
2260 static int deliver_event(struct devx_event_subscription *event_sub, in deliver_event() argument
2267 ev_file = event_sub->ev_file; in deliver_event()
2271 if (!list_empty(&event_sub->event_list) || in deliver_event()
2277 list_add_tail(&event_sub->event_list, &ev_file->event_list); in deliver_event()
2292 event_data->hdr.cookie = event_sub->cookie; in deliver_event()
2495 struct devx_event_subscription *event_sub; in devx_async_event_read() local
2533 event_sub = list_first_entry(&ev_file->event_list, in devx_async_event_read()
2536 eventsz = sizeof(event_sub->cookie); in devx_async_event_read()
2537 event_data = &event_sub->cookie; in devx_async_event_read()
2552 list_del_init(&event_sub->event_list); in devx_async_event_read()
2589 struct devx_event_subscription *event_sub = in devx_free_subscription() local
2592 if (event_sub->eventfd) in devx_free_subscription()
2593 eventfd_ctx_put(event_sub->eventfd); in devx_free_subscription()
2594 uverbs_uobject_put(&event_sub->ev_file->uobj); in devx_free_subscription()
2595 kfree(event_sub); in devx_free_subscription()
2638 struct devx_event_subscription *event_sub, *event_sub_tmp; in devx_async_event_destroy_uobj() local
2646 struct devx_event_subscription *event_sub, *tmp; in devx_async_event_destroy_uobj() local
2648 list_for_each_entry_safe(event_sub, tmp, &ev_file->event_list, in devx_async_event_destroy_uobj()
2650 list_del_init(&event_sub->event_list); in devx_async_event_destroy_uobj()
2667 list_for_each_entry_safe(event_sub, event_sub_tmp, in devx_async_event_destroy_uobj()
2669 devx_cleanup_subscription(dev, event_sub); in devx_async_event_destroy_uobj()
2670 list_del_rcu(&event_sub->file_list); in devx_async_event_destroy_uobj()
2672 call_rcu(&event_sub->rcu, devx_free_subscription); in devx_async_event_destroy_uobj()