]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mlx4_core: Do not allow mlx4_bitmap_init to reserve more slots than available
authorAmir Vadai <amirv@mellanox.co.il>
Thu, 4 Aug 2011 12:42:09 +0000 (15:42 +0300)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 7 Jul 2015 21:45:07 +0000 (14:45 -0700)
Caused a kernel crash when log_num_mac was too big

Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
(Ported from Mellanox OFED 2.4)

Signed-off-by: Mukesh Kacker <mukesh.kacker@oracle.com>
drivers/net/ethernet/mellanox/mlx4/alloc.c

index eb6d038f5de900599f0aa0d066575fecadaab902..43d3e24f64987d67f3d5582101c35f4bf4315181 100644 (file)
@@ -181,6 +181,9 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
        if (num != roundup_pow_of_two(num))
                return -EINVAL;
 
+       if (reserved_bot + reserved_top >= num)
+               return -EINVAL;
+
        bitmap->last = 0;
        bitmap->top  = 0;
        bitmap->max  = num - reserved_top;