IB/mlx5: Fix micro UAR allocator
authorEli Cohen <eli@dev.mellanox.co.il>
Tue, 14 Jan 2014 15:45:12 +0000 (17:45 +0200)
committerRoland Dreier <roland@purestorage.com>
Tue, 14 Jan 2014 21:54:23 +0000 (13:54 -0800)
commitc1be5232d21de68f46637e617225b9b7c586451a
treeca552be072b1ec232a4ca7b1d3154fd6b5f4946f
parent24e42754f676d34e5c26d6b7b30f36df8004ec08
IB/mlx5: Fix micro UAR allocator

The micro UAR (uuar) allocator had a bug which resulted from the fact
that in each UAR we only have two micro UARs avaialable, those at
index 0 and 1.  This patch defines iterators to aid in traversing the
list of available micro UARs when allocating a uuar.

In addition, change the logic in create_user_qp() so that if high
class allocation fails (high class means lower latency), we revert to
medium class and not to the low class.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/mlx5/qp.c
include/linux/mlx5/device.h