diff mbox series

[rdma-rc] RDMA/cma: Fix arguments order in net device validation

Message ID 1c1ec2277a131d277ebcceec987fd338d35b775f.1661251872.git.leonro@nvidia.com (mailing list archive)
State Accepted
Headers show
Series [rdma-rc] RDMA/cma: Fix arguments order in net device validation | expand

Commit Message

Leon Romanovsky Aug. 23, 2022, 10:51 a.m. UTC
From: Michael Guralnik <michaelgur@nvidia.com>

Fix the order of source and destination addresses when resolving the
route between server and client to validate use of correct net device.

The reverse order we had so far didn't actually validate the net device
as the server would try to resolve the route to itself, thus always
getting the server's net device.

The issue was discovered when running cm applications on a single host
between 2 interfaces with same subnet and source based routing rules.
When resolving the reverse route the source based route rules were
ignored.

Fixes: f887f2ac87c2 ("IB/cma: Validate routing of incoming requests")
Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/infiniband/core/cma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Leon Romanovsky Aug. 29, 2022, 8:17 a.m. UTC | #1
On Tue, Aug 23, 2022 at 01:51:50PM +0300, Leon Romanovsky wrote:
> From: Michael Guralnik <michaelgur@nvidia.com>
> 
> Fix the order of source and destination addresses when resolving the
> route between server and client to validate use of correct net device.
> 
> The reverse order we had so far didn't actually validate the net device
> as the server would try to resolve the route to itself, thus always
> getting the server's net device.
> 
> The issue was discovered when running cm applications on a single host
> between 2 interfaces with same subnet and source based routing rules.
> When resolving the reverse route the source based route rules were
> ignored.
> 
> Fixes: f887f2ac87c2 ("IB/cma: Validate routing of incoming requests")
> Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  drivers/infiniband/core/cma.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 

Thanks, applied.
diff mbox series

Patch

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index ee8f40b5ac99..81ded412a39e 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1841,8 +1841,8 @@  cma_ib_id_from_event(struct ib_cm_id *cm_id,
 		}
 
 		if (!validate_net_dev(*net_dev,
-				 (struct sockaddr *)&req->listen_addr_storage,
-				 (struct sockaddr *)&req->src_addr_storage)) {
+				 (struct sockaddr *)&req->src_addr_storage,
+				 (struct sockaddr *)&req->listen_addr_storage)) {
 			id_priv = ERR_PTR(-EHOSTUNREACH);
 			goto err;
 		}