Patch "RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port

to the 6.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     rdma-nldev-return-eagain-if-the-cm_id-isn-t-from-exp.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 316558e5010728ccc6351b2fa62c72a9a1a37932
Author: Mark Zhang <markzhang@xxxxxxxxxx>
Date:   Mon Nov 7 10:51:36 2022 +0200

    RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port
    
    [ Upstream commit ecacb3751f254572af0009b9501e2cdc83a30b6a ]
    
    When filling a cm_id entry, return "-EAGAIN" instead of 0 if the cm_id
    doesn'the have the same port as requested, otherwise an incomplete entry
    may be returned, which causes "rdam res show cm_id" to return an error.
    
    For example on a machine with two rdma devices with "rping -C 1 -v -s"
    running background, the "rdma" command fails:
      $ rdma -V
      rdma utility, iproute2-5.19.0
      $ rdma res show cm_id
      link mlx5_0/- cm-idn 0 state LISTEN ps TCP pid 28056 comm rping src-addr 0.0.0.0:7174
      error: Protocol not available
    
    While with this fix it succeeds:
      $ rdma res show cm_id
      link mlx5_0/- cm-idn 0 state LISTEN ps TCP pid 26395 comm rping src-addr 0.0.0.0:7174
      link mlx5_1/- cm-idn 0 state LISTEN ps TCP pid 26395 comm rping src-addr 0.0.0.0:7174
    
    Fixes: 00313983cda6 ("RDMA/nldev: provide detailed CM_ID information")
    Signed-off-by: Mark Zhang <markzhang@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/a08e898cdac5e28428eb749a99d9d981571b8ea7.1667810736.git.leonro@xxxxxxxxxx
    Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
index 12dc97067ed2..f1e0755cd56e 100644
--- a/drivers/infiniband/core/nldev.c
+++ b/drivers/infiniband/core/nldev.c
@@ -552,7 +552,7 @@ static int fill_res_cm_id_entry(struct sk_buff *msg, bool has_cap_net_admin,
 	struct rdma_cm_id *cm_id = &id_priv->id;
 
 	if (port && port != cm_id->port_num)
-		return 0;
+		return -EAGAIN;
 
 	if (cm_id->port_num &&
 	    nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, cm_id->port_num))



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux