* [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev()
@ 2026-02-24 16:59 Stefan Metzmacher
2026-02-25 12:52 ` Leon Romanovsky
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Metzmacher @ 2026-02-24 16:59 UTC (permalink / raw)
To: linux-rdma
Cc: metze, Jason Gunthorpe, Leon Romanovsky, Steve French,
Namjae Jeon, Tom Talpey, Long Li, linux-cifs, samba-technical
When listening on wildcard addresses we have a global list for
the application layer rdma_cm_id and for any existing
device or any device added in future we try to listen
on any wildcard listener.
When the listener has a restricted_node_type we
should prevent listening on devices with a different
node type.
While there fix the documentation comment of
rdma_restrict_node_type() to include rdma_resolve_addr()
instead of having rdma_bind_addr() twice.
Fixes: a760e80e90f5 ("RDMA/core: introduce rdma_restrict_node_type()")
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Steve French <smfrench@gmail.com>
Cc: Namjae Jeon <linkinjeon@kernel.org>
Cc: Tom Talpey <tom@talpey.com>
Cc: Long Li <longli@microsoft.com>
Cc: linux-rdma@vger.kernel.org
Cc: linux-cifs@vger.kernel.org
Cc: samba-technical@lists.samba.org
Signed-off-by: Stefan Metzmacher <metze@samba.org>
---
drivers/infiniband/core/cma.c | 6 +++++-
include/rdma/rdma_cm.h | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index e54c07c74575..9480d1a51c11 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -2729,6 +2729,9 @@ static int cma_listen_on_dev(struct rdma_id_private *id_priv,
*to_destroy = NULL;
if (cma_family(id_priv) == AF_IB && !rdma_cap_ib_cm(cma_dev->device, 1))
return 0;
+ if (id_priv->restricted_node_type != RDMA_NODE_UNSPECIFIED &&
+ id_priv->restricted_node_type != cma_dev->device->node_type)
+ return 0;
dev_id_priv =
__rdma_create_id(net, cma_listen_handler, id_priv,
@@ -2736,6 +2739,7 @@ static int cma_listen_on_dev(struct rdma_id_private *id_priv,
if (IS_ERR(dev_id_priv))
return PTR_ERR(dev_id_priv);
+ dev_id_priv->restricted_node_type = id_priv->restricted_node_type;
dev_id_priv->state = RDMA_CM_ADDR_BOUND;
memcpy(cma_src_addr(dev_id_priv), cma_src_addr(id_priv),
rdma_addr_size(cma_src_addr(id_priv)));
@@ -4194,7 +4198,7 @@ int rdma_restrict_node_type(struct rdma_cm_id *id, u8 node_type)
}
mutex_lock(&lock);
- if (id_priv->cma_dev)
+ if (READ_ONCE(id_priv->state) != RDMA_CM_IDLE)
ret = -EALREADY;
else
id_priv->restricted_node_type = node_type;
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 6de6fd8bd15e..d639ff889e64 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -181,7 +181,7 @@ void rdma_destroy_id(struct rdma_cm_id *id);
*
* It needs to be called before the RDMA identifier is bound
* to an device, which mean it should be called before
- * rdma_bind_addr(), rdma_bind_addr() and rdma_listen().
+ * rdma_bind_addr(), rdma_resolve_addr() and rdma_listen().
*/
int rdma_restrict_node_type(struct rdma_cm_id *id, u8 node_type);
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev()
2026-02-24 16:59 [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev() Stefan Metzmacher
@ 2026-02-25 12:52 ` Leon Romanovsky
2026-02-26 9:32 ` Stefan Metzmacher
0 siblings, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2026-02-25 12:52 UTC (permalink / raw)
To: Stefan Metzmacher
Cc: linux-rdma, Jason Gunthorpe, Steve French, Namjae Jeon,
Tom Talpey, Long Li, linux-cifs, samba-technical
On Tue, Feb 24, 2026 at 05:59:52PM +0100, Stefan Metzmacher wrote:
> When listening on wildcard addresses we have a global list for
> the application layer rdma_cm_id and for any existing
> device or any device added in future we try to listen
> on any wildcard listener.
>
> When the listener has a restricted_node_type we
> should prevent listening on devices with a different
> node type.
>
> While there fix the documentation comment of
> rdma_restrict_node_type() to include rdma_resolve_addr()
> instead of having rdma_bind_addr() twice.
>
> Fixes: a760e80e90f5 ("RDMA/core: introduce rdma_restrict_node_type()")
> Cc: Jason Gunthorpe <jgg@ziepe.ca>
> Cc: Leon Romanovsky <leon@kernel.org>
> Cc: Steve French <smfrench@gmail.com>
> Cc: Namjae Jeon <linkinjeon@kernel.org>
> Cc: Tom Talpey <tom@talpey.com>
> Cc: Long Li <longli@microsoft.com>
> Cc: linux-rdma@vger.kernel.org
> Cc: linux-cifs@vger.kernel.org
> Cc: samba-technical@lists.samba.org
> Signed-off-by: Stefan Metzmacher <metze@samba.org>
> ---
> drivers/infiniband/core/cma.c | 6 +++++-
> include/rdma/rdma_cm.h | 2 +-
> 2 files changed, 6 insertions(+), 2 deletions(-)
Applied, thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev()
2026-02-25 12:52 ` Leon Romanovsky
@ 2026-02-26 9:32 ` Stefan Metzmacher
2026-02-26 10:09 ` Leon Romanovsky
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Metzmacher @ 2026-02-26 9:32 UTC (permalink / raw)
To: Leon Romanovsky
Cc: linux-rdma, Jason Gunthorpe, Steve French, Namjae Jeon,
Tom Talpey, Long Li, linux-cifs, samba-technical
Am 25.02.26 um 13:52 schrieb Leon Romanovsky:
> On Tue, Feb 24, 2026 at 05:59:52PM +0100, Stefan Metzmacher wrote:
>> When listening on wildcard addresses we have a global list for
>> the application layer rdma_cm_id and for any existing
>> device or any device added in future we try to listen
>> on any wildcard listener.
>>
>> When the listener has a restricted_node_type we
>> should prevent listening on devices with a different
>> node type.
>>
>> While there fix the documentation comment of
>> rdma_restrict_node_type() to include rdma_resolve_addr()
>> instead of having rdma_bind_addr() twice.
>>
>> Fixes: a760e80e90f5 ("RDMA/core: introduce rdma_restrict_node_type()")
>> Cc: Jason Gunthorpe <jgg@ziepe.ca>
>> Cc: Leon Romanovsky <leon@kernel.org>
>> Cc: Steve French <smfrench@gmail.com>
>> Cc: Namjae Jeon <linkinjeon@kernel.org>
>> Cc: Tom Talpey <tom@talpey.com>
>> Cc: Long Li <longli@microsoft.com>
>> Cc: linux-rdma@vger.kernel.org
>> Cc: linux-cifs@vger.kernel.org
>> Cc: samba-technical@lists.samba.org
>> Signed-off-by: Stefan Metzmacher <metze@samba.org>
>> ---
>> drivers/infiniband/core/cma.c | 6 +++++-
>> include/rdma/rdma_cm.h | 2 +-
>> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> Applied, thanks.
Great!
Will this be scheduled for rc2?
Would be great as it fixes a regression in ksmbd
with iwarp.
Thanks!
metze
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev()
2026-02-26 9:32 ` Stefan Metzmacher
@ 2026-02-26 10:09 ` Leon Romanovsky
2026-03-02 10:33 ` Leon Romanovsky
0 siblings, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2026-02-26 10:09 UTC (permalink / raw)
To: Stefan Metzmacher
Cc: linux-rdma, Jason Gunthorpe, Steve French, Namjae Jeon,
Tom Talpey, Long Li, linux-cifs, samba-technical
On Thu, Feb 26, 2026 at 10:32:27AM +0100, Stefan Metzmacher wrote:
> Am 25.02.26 um 13:52 schrieb Leon Romanovsky:
> > On Tue, Feb 24, 2026 at 05:59:52PM +0100, Stefan Metzmacher wrote:
> > > When listening on wildcard addresses we have a global list for
> > > the application layer rdma_cm_id and for any existing
> > > device or any device added in future we try to listen
> > > on any wildcard listener.
> > >
> > > When the listener has a restricted_node_type we
> > > should prevent listening on devices with a different
> > > node type.
> > >
> > > While there fix the documentation comment of
> > > rdma_restrict_node_type() to include rdma_resolve_addr()
> > > instead of having rdma_bind_addr() twice.
> > >
> > > Fixes: a760e80e90f5 ("RDMA/core: introduce rdma_restrict_node_type()")
> > > Cc: Jason Gunthorpe <jgg@ziepe.ca>
> > > Cc: Leon Romanovsky <leon@kernel.org>
> > > Cc: Steve French <smfrench@gmail.com>
> > > Cc: Namjae Jeon <linkinjeon@kernel.org>
> > > Cc: Tom Talpey <tom@talpey.com>
> > > Cc: Long Li <longli@microsoft.com>
> > > Cc: linux-rdma@vger.kernel.org
> > > Cc: linux-cifs@vger.kernel.org
> > > Cc: samba-technical@lists.samba.org
> > > Signed-off-by: Stefan Metzmacher <metze@samba.org>
> > > ---
> > > drivers/infiniband/core/cma.c | 6 +++++-
> > > include/rdma/rdma_cm.h | 2 +-
> > > 2 files changed, 6 insertions(+), 2 deletions(-)
> >
> > Applied, thanks.
>
> Great!
>
> Will this be scheduled for rc2?
I hope so, rdma-rc has a compilation fix which I would like to see in
Linus's master as soon as possible.
> Would be great as it fixes a regression in ksmbd
> with iwarp.
Thanks
>
> Thanks!
> metze
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev()
2026-02-26 10:09 ` Leon Romanovsky
@ 2026-03-02 10:33 ` Leon Romanovsky
0 siblings, 0 replies; 5+ messages in thread
From: Leon Romanovsky @ 2026-03-02 10:33 UTC (permalink / raw)
To: Stefan Metzmacher
Cc: linux-rdma, Jason Gunthorpe, Steve French, Namjae Jeon,
Tom Talpey, Long Li, linux-cifs, samba-technical
On Thu, Feb 26, 2026 at 12:09:29PM +0200, Leon Romanovsky wrote:
> On Thu, Feb 26, 2026 at 10:32:27AM +0100, Stefan Metzmacher wrote:
> > Am 25.02.26 um 13:52 schrieb Leon Romanovsky:
> > > On Tue, Feb 24, 2026 at 05:59:52PM +0100, Stefan Metzmacher wrote:
> > > > When listening on wildcard addresses we have a global list for
> > > > the application layer rdma_cm_id and for any existing
> > > > device or any device added in future we try to listen
> > > > on any wildcard listener.
> > > >
> > > > When the listener has a restricted_node_type we
> > > > should prevent listening on devices with a different
> > > > node type.
> > > >
> > > > While there fix the documentation comment of
> > > > rdma_restrict_node_type() to include rdma_resolve_addr()
> > > > instead of having rdma_bind_addr() twice.
> > > >
> > > > Fixes: a760e80e90f5 ("RDMA/core: introduce rdma_restrict_node_type()")
> > > > Cc: Jason Gunthorpe <jgg@ziepe.ca>
> > > > Cc: Leon Romanovsky <leon@kernel.org>
> > > > Cc: Steve French <smfrench@gmail.com>
> > > > Cc: Namjae Jeon <linkinjeon@kernel.org>
> > > > Cc: Tom Talpey <tom@talpey.com>
> > > > Cc: Long Li <longli@microsoft.com>
> > > > Cc: linux-rdma@vger.kernel.org
> > > > Cc: linux-cifs@vger.kernel.org
> > > > Cc: samba-technical@lists.samba.org
> > > > Signed-off-by: Stefan Metzmacher <metze@samba.org>
> > > > ---
> > > > drivers/infiniband/core/cma.c | 6 +++++-
> > > > include/rdma/rdma_cm.h | 2 +-
> > > > 2 files changed, 6 insertions(+), 2 deletions(-)
> > >
> > > Applied, thanks.
> >
> > Great!
> >
> > Will this be scheduled for rc2?
>
> I hope so, rdma-rc has a compilation fix which I would like to see in
> Linus's master as soon as possible.
It was merged before -rc2:
e3c81bae4f28 ("Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma")
93a4a9b732fb ("RDMA/core: Check id_priv->restricted_node_type in cma_listen_on_dev()")
Thanks
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-03-02 10:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-24 16:59 [PATCH] RDMA/core: check id_priv->restricted_node_type in cma_listen_on_dev() Stefan Metzmacher
2026-02-25 12:52 ` Leon Romanovsky
2026-02-26 9:32 ` Stefan Metzmacher
2026-02-26 10:09 ` Leon Romanovsky
2026-03-02 10:33 ` Leon Romanovsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox