net/mlx4_core: Fix resource tracker error flow in add_res_range
authorSaeed Mahameed <saeedm@mellanox.com>
Thu, 8 Oct 2015 14:14:03 +0000 (17:14 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Oct 2015 14:27:52 +0000 (07:27 -0700)
The 'for' loop when undoing rb-tree insertions and list-adds in the
error flow in add_res_range had errors, fix them.

Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c

index 731423ca575da8583deb8c944a524f728a967bbe..ac4b99ab1f851c41d1fa108dcbe104f4c307cf48 100644 (file)
@@ -1238,8 +1238,10 @@ static int add_res_range(struct mlx4_dev *dev, int slave, u64 base, int count,
        return 0;
 
 undo:
-       for (--i; i >= base; --i)
+       for (--i; i >= 0; --i) {
                rb_erase(&res_arr[i]->node, root);
+               list_del_init(&res_arr[i]->list);
+       }
 
        spin_unlock_irq(mlx4_tlock(dev));