|
@@ -1153,7 +1153,6 @@ static void ib_uverbs_free_hw_resources(struct ib_uverbs_device *uverbs_dev,
|
|
|
kref_get(&file->ref);
|
|
kref_get(&file->ref);
|
|
|
mutex_unlock(&uverbs_dev->lists_mutex);
|
|
mutex_unlock(&uverbs_dev->lists_mutex);
|
|
|
|
|
|
|
|
- ib_uverbs_event_handler(&file->event_handler, &event);
|
|
|
|
|
|
|
|
|
|
mutex_lock(&file->cleanup_mutex);
|
|
mutex_lock(&file->cleanup_mutex);
|
|
|
ucontext = file->ucontext;
|
|
ucontext = file->ucontext;
|
|
@@ -1170,6 +1169,7 @@ static void ib_uverbs_free_hw_resources(struct ib_uverbs_device *uverbs_dev,
|
|
|
* for example due to freeing the resources
|
|
* for example due to freeing the resources
|
|
|
* (e.g mmput).
|
|
* (e.g mmput).
|
|
|
*/
|
|
*/
|
|
|
|
|
+ ib_uverbs_event_handler(&file->event_handler, &event);
|
|
|
ib_dev->disassociate_ucontext(ucontext);
|
|
ib_dev->disassociate_ucontext(ucontext);
|
|
|
mutex_lock(&file->cleanup_mutex);
|
|
mutex_lock(&file->cleanup_mutex);
|
|
|
ib_uverbs_cleanup_ucontext(file, ucontext, true);
|
|
ib_uverbs_cleanup_ucontext(file, ucontext, true);
|