Lines Matching refs:event_sub

134 	struct list_head event_sub; /* holds devx_event_subscription entries */  member
1358 list_for_each_entry_safe(sub_entry, tmp, &obj->event_sub, obj_list) in devx_obj_cleanup()
1466 INIT_LIST_HEAD(&obj->event_sub); in UVERBS_HANDLER()
1919 struct devx_event_subscription *event_sub, *tmp_sub; in UVERBS_HANDLER() local
2005 event_sub = kzalloc(sizeof(*event_sub), GFP_KERNEL); in UVERBS_HANDLER()
2006 if (!event_sub) in UVERBS_HANDLER()
2009 list_add_tail(&event_sub->event_list, &sub_list); in UVERBS_HANDLER()
2012 event_sub->eventfd = in UVERBS_HANDLER()
2015 if (event_sub->eventfd.file == NULL) { in UVERBS_HANDLER()
2021 event_sub->cookie = cookie; in UVERBS_HANDLER()
2022 event_sub->ev_file = ev_file; in UVERBS_HANDLER()
2024 event_sub->xa_key_level1 = key_level1; in UVERBS_HANDLER()
2025 event_sub->xa_key_level2 = obj_id; in UVERBS_HANDLER()
2026 INIT_LIST_HEAD(&event_sub->obj_list); in UVERBS_HANDLER()
2033 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2037 list_del_init(&event_sub->event_list); in UVERBS_HANDLER()
2040 list_add_tail_rcu(&event_sub->file_list, in UVERBS_HANDLER()
2045 event_sub->xa_key_level1); in UVERBS_HANDLER()
2049 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2056 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2058 list_add_tail_rcu(&event_sub->obj_list, in UVERBS_HANDLER()
2059 &obj->event_sub); in UVERBS_HANDLER()
2066 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2067 list_del(&event_sub->event_list); in UVERBS_HANDLER()
2070 event_sub->xa_key_level1, in UVERBS_HANDLER()
2074 if (event_sub->eventfd.file) in UVERBS_HANDLER()
2075 fdput(event_sub->eventfd); in UVERBS_HANDLER()
2076 uverbs_uobject_put(&event_sub->ev_file->uobj); in UVERBS_HANDLER()
2077 kfree(event_sub); in UVERBS_HANDLER()
2290 static int deliver_event(struct devx_event_subscription *event_sub, in deliver_event() argument
2297 ev_file = event_sub->ev_file; in deliver_event()
2301 if (!list_empty(&event_sub->event_list) || in deliver_event()
2307 list_add_tail(&event_sub->event_list, &ev_file->event_list); in deliver_event()
2322 event_data->hdr.cookie = event_sub->cookie; in deliver_event()
2515 struct devx_event_subscription *event_sub; in devx_async_event_read() local
2553 event_sub = list_first_entry(&ev_file->event_list, in devx_async_event_read()
2556 eventsz = sizeof(event_sub->cookie); in devx_async_event_read()
2557 event_data = &event_sub->cookie; in devx_async_event_read()
2572 list_del_init(&event_sub->event_list); in devx_async_event_read()
2609 struct devx_event_subscription *event_sub = in devx_free_subscription() local
2612 if (event_sub->eventfd.file) in devx_free_subscription()
2613 fdput(event_sub->eventfd); in devx_free_subscription()
2614 uverbs_uobject_put(&event_sub->ev_file->uobj); in devx_free_subscription()
2615 kfree(event_sub); in devx_free_subscription()
2658 struct devx_event_subscription *event_sub, *event_sub_tmp; in devx_async_event_destroy_uobj() local
2666 struct devx_event_subscription *event_sub, *tmp; in devx_async_event_destroy_uobj() local
2668 list_for_each_entry_safe(event_sub, tmp, &ev_file->event_list, in devx_async_event_destroy_uobj()
2670 list_del_init(&event_sub->event_list); in devx_async_event_destroy_uobj()
2687 list_for_each_entry_safe(event_sub, event_sub_tmp, in devx_async_event_destroy_uobj()
2689 devx_cleanup_subscription(dev, event_sub); in devx_async_event_destroy_uobj()
2690 list_del_rcu(&event_sub->file_list); in devx_async_event_destroy_uobj()
2692 call_rcu(&event_sub->rcu, devx_free_subscription); in devx_async_event_destroy_uobj()