Lines Matching refs:item
44 static void ib_umem_notifier_start_account(struct ib_umem *item) in ib_umem_notifier_start_account() argument
46 mutex_lock(&item->odp_data->umem_mutex); in ib_umem_notifier_start_account()
50 if (item->odp_data->mn_counters_active) { in ib_umem_notifier_start_account()
51 int notifiers_count = item->odp_data->notifiers_count++; in ib_umem_notifier_start_account()
57 reinit_completion(&item->odp_data->notifier_completion); in ib_umem_notifier_start_account()
59 mutex_unlock(&item->odp_data->umem_mutex); in ib_umem_notifier_start_account()
62 static void ib_umem_notifier_end_account(struct ib_umem *item) in ib_umem_notifier_end_account() argument
64 mutex_lock(&item->odp_data->umem_mutex); in ib_umem_notifier_end_account()
68 if (item->odp_data->mn_counters_active) { in ib_umem_notifier_end_account()
74 ++item->odp_data->notifiers_seq; in ib_umem_notifier_end_account()
75 if (--item->odp_data->notifiers_count == 0) in ib_umem_notifier_end_account()
76 complete_all(&item->odp_data->notifier_completion); in ib_umem_notifier_end_account()
78 mutex_unlock(&item->odp_data->umem_mutex); in ib_umem_notifier_end_account()
123 static int ib_umem_notifier_release_trampoline(struct ib_umem *item, u64 start, in ib_umem_notifier_release_trampoline() argument
129 ib_umem_notifier_start_account(item); in ib_umem_notifier_release_trampoline()
130 item->odp_data->dying = 1; in ib_umem_notifier_release_trampoline()
134 complete_all(&item->odp_data->notifier_completion); in ib_umem_notifier_release_trampoline()
135 item->context->invalidate_range(item, ib_umem_start(item), in ib_umem_notifier_release_trampoline()
136 ib_umem_end(item)); in ib_umem_notifier_release_trampoline()
157 static int invalidate_page_trampoline(struct ib_umem *item, u64 start, in invalidate_page_trampoline() argument
160 ib_umem_notifier_start_account(item); in invalidate_page_trampoline()
161 item->context->invalidate_range(item, start, start + PAGE_SIZE); in invalidate_page_trampoline()
162 ib_umem_notifier_end_account(item); in invalidate_page_trampoline()
184 static int invalidate_range_start_trampoline(struct ib_umem *item, u64 start, in invalidate_range_start_trampoline() argument
187 ib_umem_notifier_start_account(item); in invalidate_range_start_trampoline()
188 item->context->invalidate_range(item, start, end); in invalidate_range_start_trampoline()
210 static int invalidate_range_end_trampoline(struct ib_umem *item, u64 start, in invalidate_range_end_trampoline() argument
213 ib_umem_notifier_end_account(item); in invalidate_range_end_trampoline()