RDMA/nldev: Fix failure to send large messages
authorMark Zhang <markzhang@nvidia.com>
Mon, 28 Nov 2022 11:52:46 +0000 (13:52 +0200)
committerLeon Romanovsky <leon@kernel.org>
Wed, 30 Nov 2022 08:33:19 +0000 (10:33 +0200)
Return "-EMSGSIZE" instead of "-EINVAL" when filling a QP entry, so that
new SKBs will be allocated if there's not enough room in current SKB.

Fixes: 65959522f806 ("RDMA: Add support to dump resource tracker in RAW format")
Signed-off-by: Mark Zhang <markzhang@nvidia.com>
Reviewed-by: Patrisious Haddad <phaddad@nvidia.com>
Link: https://lore.kernel.org/r/b5e9c62f6b8369acab5648b661bf539cbceeffdc.1669636336.git.leonro@nvidia.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/core/nldev.c

index b4716cda65d8924064af42af6a28505e4626f008..a981ac2f09758df5c5b0a32f8c7ec75e50a72104 100644 (file)
@@ -513,7 +513,7 @@ static int fill_res_qp_entry(struct sk_buff *msg, bool has_cap_net_admin,
 
        /* In create_qp() port is not set yet */
        if (qp->port && nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, qp->port))
-               return -EINVAL;
+               return -EMSGSIZE;
 
        ret = nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LQPN, qp->qp_num);
        if (ret)