IB/mlx4: Fix ib device initialization error flow
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Tue, 21 Mar 2017 10:57:05 +0000 (12:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 May 2017 12:27:00 +0000 (14:27 +0200)
commit 99e68909d5aba1861897fe7afc3306c3c81b6de0 upstream.

In mlx4_ib_add, procedure mlx4_ib_alloc_eqs is called to allocate EQs.

However, in the mlx4_ib_add error flow, procedure mlx4_ib_free_eqs is not
called to free the allocated EQs.

Fixes: e605b743f33d ("IB/mlx4: Increase the number of vectors (EQs) available for ULPs")
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/infiniband/hw/mlx4/main.c

index 77ddf2fa8625205c7ba2c79011d1532f9ea0ba28..8763fb832b016c67b227f1424ba196f824ec13e8 100644 (file)
@@ -2491,6 +2491,7 @@ err_counter:
                mlx4_ib_delete_counters_table(ibdev, &ibdev->counters_table[i]);
 
 err_map:
+       mlx4_ib_free_eqs(dev, ibdev);
        iounmap(ibdev->uar_map);
 
 err_uar: