diff options
author | Steve Wise <swise@opengridcomputing.com> | 2016-09-01 15:44:52 +0200 |
---|---|---|
committer | Sagi Grimberg <sagi@grimberg.me> | 2016-09-04 09:00:53 +0200 |
commit | 37eb816c0867b1b0db273d22b530780a0a083980 (patch) | |
tree | 449dbb5e7f983af2ce20207a6fa4db4decc233df /drivers/infiniband/hw/cxgb4/iw_cxgb4.h | |
parent | iw_cxgb4: call dev_put() on l2t allocation failure (diff) | |
download | linux-37eb816c0867b1b0db273d22b530780a0a083980.tar.xz linux-37eb816c0867b1b0db273d22b530780a0a083980.zip |
iw_cxgb4: block module unload until all ep resources are released
Otherwise an endpoint can be still closing down causing a touch
after free crash. Also WARN_ON if ulps have failed to destroy
various resources during device removal.
Fixes: ad61a4c7a9b7 ("iw_cxgb4: don't block in destroy_qp awaiting the last deref")
Reviewed-by: Sagi Grimberg <sagi@grimbrg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/iw_cxgb4.h')
-rw-r--r-- | drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb4/iw_cxgb4.h b/drivers/infiniband/hw/cxgb4/iw_cxgb4.h index f6f34a75af27..0e9cd4479bb3 100644 --- a/drivers/infiniband/hw/cxgb4/iw_cxgb4.h +++ b/drivers/infiniband/hw/cxgb4/iw_cxgb4.h @@ -263,6 +263,7 @@ struct c4iw_dev { struct idr stid_idr; struct list_head db_fc_list; u32 avail_ird; + wait_queue_head_t wait; }; static inline struct c4iw_dev *to_c4iw_dev(struct ib_device *ibdev) |