All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-rc v3] RDMA/core: Fix ENODEV error for iWARP test over vlan
@ 2024-10-08 11:43 Anumula Murali Mohan Reddy
  2024-10-08 12:08 ` Leon Romanovsky
  2024-11-10 13:07 ` Leon Romanovsky
  0 siblings, 2 replies; 4+ messages in thread
From: Anumula Murali Mohan Reddy @ 2024-10-08 11:43 UTC (permalink / raw)
  To: jgg, leonro; +Cc: linux-rdma, Anumula Murali Mohan Reddy, Potnuri Bharat Teja

If traffic is over vlan, cma_validate_port() fails to match vlan
net_device ifindex with bound_if_index and results in ENODEV error.
It is because rdma_copy_src_l2_addr() always assigns bound_if_index with
real net_device ifindex.
This patch fixes the issue by assigning bound_if_index with vlan
net_device index if traffic is over vlan.

Fixes: f8ef1be816bf ("RDMA/cma: Avoid GID lookups on iWARP devices")
Signed-off-by: Anumula Murali Mohan Reddy <anumula@chelsio.com>
Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
---
Changes since v2:
Addressed previous review comments
---
 drivers/infiniband/core/addr.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index be0743dac3ff..c4cf26f1d149 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -269,6 +269,8 @@ rdma_find_ndev_for_src_ip_rcu(struct net *net, const struct sockaddr *src_in)
 		break;
 #endif
 	}
+	if (!ret && dev && is_vlan_dev(dev))
+		dev = vlan_dev_real_dev(dev);
 	return ret ? ERR_PTR(ret) : dev;
 }
 
-- 
2.39.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-11-12 14:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-08 11:43 [PATCH for-rc v3] RDMA/core: Fix ENODEV error for iWARP test over vlan Anumula Murali Mohan Reddy
2024-10-08 12:08 ` Leon Romanovsky
2024-11-10 13:07 ` Leon Romanovsky
2024-11-12 14:04   ` Anumula Murali Mohan Reddy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.