netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net/smc: Fix lookup of netdev by using ib_device_get_netdev()
@ 2024-10-25  7:23 Wenjia Zhang
  2024-10-25  8:57 ` Halil Pasic
                   ` (7 more replies)
  0 siblings, 8 replies; 25+ messages in thread
From: Wenjia Zhang @ 2024-10-25  7:23 UTC (permalink / raw)
  To: Wen Gu, D. Wythe, Tony Lu, David Miller, Jakub Kicinski,
	Eric Dumazet, Paolo Abeni
  Cc: netdev, linux-rdma, linux-s390, Heiko Carstens, Jan Karcher,
	Gerd Bayer, Alexandra Winter, Halil Pasic, Nils Hoppmann,
	Niklas Schnell, Thorsten Winkler, Karsten Graul, Stefan Raspl,
	Wenjia Zhang, Aswin K

Commit c2261dd76b54 ("RDMA/device: Add ib_device_set_netdev() as an
alternative to get_netdev") introduced an API ib_device_get_netdev.
The SMC-R variant of the SMC protocol continued to use the old API
ib_device_ops.get_netdev() to lookup netdev. As this commit 8d159eb2117b
("RDMA/mlx5: Use IB set_netdev and get_netdev functions") removed the
get_netdev callback from mlx5_ib_dev_common_roce_ops, calling
ib_device_ops.get_netdev didn't work any more at least by using a mlx5
device driver. Thus, using ib_device_set_netdev() now became mandatory.

Replace ib_device_ops.get_netdev() with ib_device_get_netdev().

Fixes: 54903572c23c ("net/smc: allow pnetid-less configuration")
Fixes: 8d159eb2117b ("RDMA/mlx5: Use IB set_netdev and get_netdev functions")
Reported-by: Aswin K <aswin@linux.ibm.com>
Reviewed-by: Gerd Bayer <gbayer@linux.ibm.com>
Signed-off-by: Wenjia Zhang <wenjia@linux.ibm.com>
---
 net/smc/smc_ib.c   | 8 ++------
 net/smc/smc_pnet.c | 4 +---
 2 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/net/smc/smc_ib.c b/net/smc/smc_ib.c
index 9297dc20bfe2..9c563cdbea90 100644
--- a/net/smc/smc_ib.c
+++ b/net/smc/smc_ib.c
@@ -899,9 +899,7 @@ static void smc_copy_netdev_ifindex(struct smc_ib_device *smcibdev, int port)
 	struct ib_device *ibdev = smcibdev->ibdev;
 	struct net_device *ndev;
 
-	if (!ibdev->ops.get_netdev)
-		return;
-	ndev = ibdev->ops.get_netdev(ibdev, port + 1);
+	ndev = ib_device_get_netdev(ibdev, port + 1);
 	if (ndev) {
 		smcibdev->ndev_ifidx[port] = ndev->ifindex;
 		dev_put(ndev);
@@ -921,9 +919,7 @@ void smc_ib_ndev_change(struct net_device *ndev, unsigned long event)
 		port_cnt = smcibdev->ibdev->phys_port_cnt;
 		for (i = 0; i < min_t(size_t, port_cnt, SMC_MAX_PORTS); i++) {
 			libdev = smcibdev->ibdev;
-			if (!libdev->ops.get_netdev)
-				continue;
-			lndev = libdev->ops.get_netdev(libdev, i + 1);
+			lndev = ib_device_get_netdev(libdev, i + 1);
 			dev_put(lndev);
 			if (lndev != ndev)
 				continue;
diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c
index 1dd362326c0a..8566937c8903 100644
--- a/net/smc/smc_pnet.c
+++ b/net/smc/smc_pnet.c
@@ -1054,9 +1054,7 @@ static void smc_pnet_find_rdma_dev(struct net_device *netdev,
 		for (i = 1; i <= SMC_MAX_PORTS; i++) {
 			if (!rdma_is_port_valid(ibdev->ibdev, i))
 				continue;
-			if (!ibdev->ibdev->ops.get_netdev)
-				continue;
-			ndev = ibdev->ibdev->ops.get_netdev(ibdev->ibdev, i);
+			ndev = ib_device_get_netdev(ibdev->ibdev, i);
 			if (!ndev)
 				continue;
 			dev_put(ndev);
-- 
2.43.0


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

end of thread, other threads:[~2024-11-09  5:32 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-25  7:23 [PATCH net] net/smc: Fix lookup of netdev by using ib_device_get_netdev() Wenjia Zhang
2024-10-25  8:57 ` Halil Pasic
2024-10-25 14:01 ` Simon Horman
2024-10-26  0:42 ` Dust Li
2024-10-27 11:18 ` Wen Gu
2024-10-27 19:28 ` Zhu Yanjun
2024-10-27 20:18 ` Leon Romanovsky
2024-10-27 20:30   ` Leon Romanovsky
2024-11-05  9:50   ` Wenjia Zhang
2024-11-05 11:23     ` Leon Romanovsky
2024-11-05 12:30       ` Wenjia Zhang
2024-11-05 13:39         ` Leon Romanovsky
2024-11-05 14:14           ` Wenjia Zhang
2024-11-06  9:24       ` Halil Pasic
2024-11-06 13:59         ` Leon Romanovsky
2024-11-07 11:47           ` Halil Pasic
2024-11-07 12:08             ` Leon Romanovsky
2024-11-07 11:56           ` Halil Pasic
2024-11-07 12:13             ` Leon Romanovsky
2024-11-07 23:40             ` Namjae Jeon
2024-11-08 17:59               ` Leon Romanovsky
2024-11-09  5:32                 ` Namjae Jeon
2024-10-29  8:43 ` D. Wythe
2024-10-31 10:01 ` Paolo Abeni
2024-11-05  9:53   ` Wenjia Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).