From 703ea406d57e5465da9947bc045b1e24b02c5cbf Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Mon, 5 Mar 2018 11:57:26 +0000 Subject: [PATCH] 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 --- sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c | 3 +++ 1 file changed, 3 insertions(+) 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 1a131ed89ee..2e35ffa33d8 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