aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2018-03-05 11:57:26 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2018-03-05 11:57:26 +0000
commit703ea406d57e5465da9947bc045b1e24b02c5cbf (patch)
treef1d2e3a7c20bf4d7d10a9f9faa5b513ee911225a
parent42fa341d9c8a76f6b5258c8b38976fa73d940475 (diff)
downloadsrc-703ea406d57e5465da9947bc045b1e24b02c5cbf.tar.gz
src-703ea406d57e5465da9947bc045b1e24b02c5cbf.zip
Make deletion of RoCE GID entries synchronous in ibcore.
When a network device is departing, the RoCE GID entries should be cleared before the default L2 link layer address is freed. Else a NULL pointer access may happen. MFC after: 1 week Sponsored by: Mellanox Technologies
Notes
Notes: svn path=/head/; revision=330493
-rw-r--r--sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c b/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
index 1a131ed89ee0..2e35ffa33d8e 100644
--- a/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
+++ b/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
@@ -362,6 +362,9 @@ roce_gid_delete_all_event(struct net_device *ndev)
dev_hold(ndev);
work->ndev = ndev;
queue_work(roce_gid_mgmt_wq, &work->work);
+
+ /* make sure job is complete before returning */
+ flush_workqueue(roce_gid_mgmt_wq);
}
static int