• Roland Dreier's avatar
    IB/mlx4: Fix creation of kernel QP with max number of send s/g entries · cd155c1c
    Roland Dreier authored
    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: default avatarRoland Dreier <rolandd@cisco.com>
    cd155c1c
qp.c 51.3 KB