summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/ulp/ipoib/ipoib_main.c
diff options
context:
space:
mode:
authorAlex Vesker <valex@mellanox.com>2017-06-14 09:59:06 +0300
committerDoug Ledford <dledford@redhat.com>2017-06-14 15:16:23 -0400
commit022d038a163f9e889428789d681b97bf07730fb7 (patch)
tree290c3df75277d711f118a2795242818473748624 /drivers/infiniband/ulp/ipoib/ipoib_main.c
parentab156afd3eeb68ce7b875ec8d9ff4f64d1427776 (diff)
downloadop-kernel-dev-022d038a163f9e889428789d681b97bf07730fb7.zip
op-kernel-dev-022d038a163f9e889428789d681b97bf07730fb7.tar.gz
IB/ipoib: Limit call to free rdma_netdev for capable devices
Limit calls to free_rdma_netdev() for capable devices only. Fixes: cd565b4b51e5 ('IB/IPoIB: Support acceleration options callbacks') Signed-off-by: Alex Vesker <valex@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_main.c')
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 0ddd970..91fae34 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -2301,7 +2301,10 @@ static void ipoib_remove_one(struct ib_device *device, void *client_data)
flush_workqueue(priv->wq);
unregister_netdev(priv->dev);
- free_netdev(priv->dev);
+ if (device->free_rdma_netdev)
+ device->free_rdma_netdev(priv->dev);
+ else
+ free_netdev(priv->dev);
list_for_each_entry_safe(cpriv, tcpriv, &priv->child_intfs, list)
kfree(cpriv);
OpenPOWER on IntegriCloud