mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
[PATCH] IB: fix userspace CM deadlock
Fix deadlock condition resulting from trying to destroy a cm_id from the context of a CM thread. The synchronization around the ucm context structure is simplified as a result, and some simple code cleanup is included. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
committed by
Roland Dreier
parent
4ce059378c
commit
b9ef520f9c
File diff suppressed because it is too large
Load Diff
@@ -48,9 +48,7 @@
|
||||
struct ib_ucm_file {
|
||||
struct semaphore mutex;
|
||||
struct file *filp;
|
||||
/*
|
||||
* list of pending events
|
||||
*/
|
||||
|
||||
struct list_head ctxs; /* list of active connections */
|
||||
struct list_head events; /* list of pending events */
|
||||
wait_queue_head_t poll_wait;
|
||||
@@ -58,12 +56,11 @@ struct ib_ucm_file {
|
||||
|
||||
struct ib_ucm_context {
|
||||
int id;
|
||||
int ref;
|
||||
int error;
|
||||
wait_queue_head_t wait;
|
||||
atomic_t ref;
|
||||
|
||||
struct ib_ucm_file *file;
|
||||
struct ib_cm_id *cm_id;
|
||||
struct semaphore mutex;
|
||||
|
||||
struct list_head events; /* list of pending events. */
|
||||
struct list_head file_list; /* member in file ctx list */
|
||||
|
||||
Reference in New Issue
Block a user