diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2018-03-05 11:57:26 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2018-03-05 11:57:26 +0000 |
commit | 703ea406d57e5465da9947bc045b1e24b02c5cbf (patch) | |
tree | f1d2e3a7c20bf4d7d10a9f9faa5b513ee911225a | |
parent | 42fa341d9c8a76f6b5258c8b38976fa73d940475 (diff) | |
download | src-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.c | 3 |
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 |