IB/mlx4: Fix creation of kernel QP with max number of send s/g entries
authorRoland Dreier <rolandd@cisco.com>
Tue, 20 May 2008 21:00:02 +0000 (14:00 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 20 May 2008 21:00:02 +0000 (14:00 -0700)
commitcd155c1c7c9e64df6afb5504d292fef7cb783a4f
tree84981858bf7bbdd2e28b17557168124bc48650c3
parent12103dca52e79e23afe2fbcaf3d9e7fc9ceb6b18
IB/mlx4: Fix creation of kernel QP with max number of send s/g entries

When creating a kernel QP where the consumer asked for a send queue
with lots of scatter/gater entries, set_kernel_sq_size() incorrectly
returned an error if the send queue stride is larger than the
hardware's maximum send work request descriptor size.  This is not a
problem; the only issue is to make sure that the actual descriptors
used do not overflow the maximum descriptor size, so check this instead.

Clamp the returned max_send_sge value to be no bigger than what
query_device returns for the max_sge to avoid confusing hapless users,
even if the hardware is capable of handling a few more s/g entries.

This bug caused NFS/RDMA mounts to fail when the server adapter used
the mlx4 driver.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mlx4/qp.c