Lines Matching refs:event_sub

1407 	list_for_each_entry_safe(sub_entry, tmp, &obj->event_sub, obj_list)  in devx_obj_cleanup()
1527 INIT_LIST_HEAD(&obj->event_sub); in UVERBS_HANDLER()
1991 struct devx_event_subscription *event_sub, *tmp_sub; in UVERBS_HANDLER() local
2079 event_sub = kzalloc(sizeof(*event_sub), GFP_KERNEL); in UVERBS_HANDLER()
2080 if (!event_sub) { in UVERBS_HANDLER()
2085 list_add_tail(&event_sub->event_list, &sub_list); in UVERBS_HANDLER()
2088 event_sub->eventfd = in UVERBS_HANDLER()
2091 if (IS_ERR(event_sub->eventfd)) { in UVERBS_HANDLER()
2092 err = PTR_ERR(event_sub->eventfd); in UVERBS_HANDLER()
2093 event_sub->eventfd = NULL; in UVERBS_HANDLER()
2098 event_sub->cookie = cookie; in UVERBS_HANDLER()
2099 event_sub->ev_file = ev_file; in UVERBS_HANDLER()
2101 event_sub->xa_key_level1 = key_level1; in UVERBS_HANDLER()
2102 event_sub->xa_key_level2 = obj_id; in UVERBS_HANDLER()
2103 INIT_LIST_HEAD(&event_sub->obj_list); in UVERBS_HANDLER()
2110 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2114 list_del_init(&event_sub->event_list); in UVERBS_HANDLER()
2117 list_add_tail_rcu(&event_sub->file_list, in UVERBS_HANDLER()
2122 event_sub->xa_key_level1); in UVERBS_HANDLER()
2126 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2133 list_add_tail_rcu(&event_sub->xa_list, in UVERBS_HANDLER()
2135 list_add_tail_rcu(&event_sub->obj_list, in UVERBS_HANDLER()
2136 &obj->event_sub); in UVERBS_HANDLER()
2143 list_for_each_entry_safe(event_sub, tmp_sub, &sub_list, event_list) { in UVERBS_HANDLER()
2144 list_del(&event_sub->event_list); in UVERBS_HANDLER()
2147 event_sub->xa_key_level1, in UVERBS_HANDLER()
2151 if (event_sub->eventfd) in UVERBS_HANDLER()
2152 eventfd_ctx_put(event_sub->eventfd); in UVERBS_HANDLER()
2153 uverbs_uobject_put(&event_sub->ev_file->uobj); in UVERBS_HANDLER()
2154 kfree(event_sub); in UVERBS_HANDLER()
2429 static int deliver_event(struct devx_event_subscription *event_sub, in deliver_event() argument
2436 ev_file = event_sub->ev_file; in deliver_event()
2440 if (!list_empty(&event_sub->event_list) || in deliver_event()
2446 list_add_tail(&event_sub->event_list, &ev_file->event_list); in deliver_event()
2461 event_data->hdr.cookie = event_sub->cookie; in deliver_event()
2664 struct devx_event_subscription *event_sub; in devx_async_event_read() local
2702 event_sub = list_first_entry(&ev_file->event_list, in devx_async_event_read()
2705 eventsz = sizeof(event_sub->cookie); in devx_async_event_read()
2706 event_data = &event_sub->cookie; in devx_async_event_read()
2721 list_del_init(&event_sub->event_list); in devx_async_event_read()
2758 struct devx_event_subscription *event_sub = in devx_free_subscription() local
2761 if (event_sub->eventfd) in devx_free_subscription()
2762 eventfd_ctx_put(event_sub->eventfd); in devx_free_subscription()
2763 uverbs_uobject_put(&event_sub->ev_file->uobj); in devx_free_subscription()
2764 kfree(event_sub); in devx_free_subscription()
2806 struct devx_event_subscription *event_sub, *event_sub_tmp; in devx_async_event_destroy_uobj() local
2814 struct devx_event_subscription *event_sub, *tmp; in devx_async_event_destroy_uobj() local
2816 list_for_each_entry_safe(event_sub, tmp, &ev_file->event_list, in devx_async_event_destroy_uobj()
2818 list_del_init(&event_sub->event_list); in devx_async_event_destroy_uobj()
2835 list_for_each_entry_safe(event_sub, event_sub_tmp, in devx_async_event_destroy_uobj()
2837 devx_cleanup_subscription(dev, event_sub); in devx_async_event_destroy_uobj()
2838 list_del_rcu(&event_sub->file_list); in devx_async_event_destroy_uobj()
2840 call_rcu(&event_sub->rcu, devx_free_subscription); in devx_async_event_destroy_uobj()