aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorItai Garbi <igarbi@mellanox.com>2013-02-19 15:40:24 +0000
committerRoland Dreier <roland@purestorage.com>2013-02-19 08:21:36 -0800
commit5a2815f03c0fd5a091c95af93b7f1a17a971ac20 (patch)
tree2a790316639dc28babca75bd51114e76c91bf7c9 /drivers/infiniband
parentIPoIB: Add version and firmware info to ethtool reporting (diff)
downloadlinux-dev-5a2815f03c0fd5a091c95af93b7f1a17a971ac20.tar.xz
linux-dev-5a2815f03c0fd5a091c95af93b7f1a17a971ac20.zip
IPoIB: Don't attempt to release resources on error flow
If the ipoib client info isn't found on the _remove_one callback, we must not attempt to scan the returned null list. Found by Coverity. Signed-off-by: Itai Garbi <igarbi@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 4fe44eba2f9f..66d6da90982f 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -1693,6 +1693,8 @@ static void ipoib_remove_one(struct ib_device *device)
return;
dev_list = ib_get_client_data(device, &ipoib_client);
+ if (!dev_list)
+ return;
list_for_each_entry_safe(priv, tmp, dev_list, list) {
ib_unregister_event_handler(&priv->event_handler);