]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
IB/mlx5: Abort driver cleanup if teardown hca fails
authorEli Cohen <eli@dev.mellanox.co.il>
Tue, 14 Jan 2014 15:45:22 +0000 (17:45 +0200)
committerRoland Dreier <roland@purestorage.com>
Thu, 23 Jan 2014 07:23:53 +0000 (23:23 -0800)
Do not continue with cleanup flow. If this ever happens we can check which
resources remained open.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/net/ethernet/mellanox/mlx5/core/main.c

index 40a9f5ed814dd16defab7915d4368266cd5fa1e4..a064f06e0cb8a244d183c3c48acb1754349115dd 100644 (file)
@@ -460,7 +460,10 @@ disable_msix:
 
 err_stop_poll:
        mlx5_stop_health_poll(dev);
-       mlx5_cmd_teardown_hca(dev);
+       if (mlx5_cmd_teardown_hca(dev)) {
+               dev_err(&dev->pdev->dev, "tear_down_hca failed, skip cleanup\n");
+               return err;
+       }
 
 err_pagealloc_stop:
        mlx5_pagealloc_stop(dev);
@@ -503,7 +506,10 @@ void mlx5_dev_cleanup(struct mlx5_core_dev *dev)
        mlx5_eq_cleanup(dev);
        mlx5_disable_msix(dev);
        mlx5_stop_health_poll(dev);
-       mlx5_cmd_teardown_hca(dev);
+       if (mlx5_cmd_teardown_hca(dev)) {
+               dev_err(&dev->pdev->dev, "tear_down_hca failed, skip cleanup\n");
+               return;
+       }
        mlx5_pagealloc_stop(dev);
        mlx5_reclaim_startup_pages(dev);
        mlx5_core_disable_hca(dev);