All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Kamal Heib <kheib@redhat.com>, linux-rdma@vger.kernel.org
Subject: Re: [for-rc] RDMA/core: Make sure the netdev is not already associated
Date: Mon, 12 Dec 2022 15:18:44 +0200	[thread overview]
Message-ID: <Y5cqNHNl5hWkpeZC@unreal> (raw)
In-Reply-To: <Y5cjx/YI/Cxbh/z0@ziepe.ca>

On Mon, Dec 12, 2022 at 08:51:19AM -0400, Jason Gunthorpe wrote:
> On Mon, Dec 12, 2022 at 11:22:40AM +0200, Kamal Heib wrote:
> > Make sure that the requested net_device is not already associated with
> > an ib_device before trying to create a new ib_device that will be
> > associated with the same net_device, this is needed to avoid creating
> > siw and rxe devices that will be associated with the same net_device.
> > 
> > Fixes: 3856ec4b93c9 ("RDMA/core: Add RDMA_NLDEV_CMD_NEWLINK/DELLINK support")
> > Signed-off-by: Kamal Heib <kheib@redhat.com>
> > ---
> >  drivers/infiniband/core/nldev.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
> > index a981ac2f0975..376c9e158556 100644
> > --- a/drivers/infiniband/core/nldev.c
> > +++ b/drivers/infiniband/core/nldev.c
> > @@ -1696,6 +1696,7 @@ static int nldev_newlink(struct sk_buff *skb, struct nlmsghdr *nlh,
> >  	const struct rdma_link_ops *ops;
> >  	char ndev_name[IFNAMSIZ];
> >  	struct net_device *ndev;
> > +	struct ib_device *ibdev;
> >  	char type[IFNAMSIZ];
> >  	int err;
> >  
> > @@ -1718,6 +1719,12 @@ static int nldev_newlink(struct sk_buff *skb, struct nlmsghdr *nlh,
> >  	if (!ndev)
> >  		return -ENODEV;
> >  
> > +	ibdev = ib_device_get_by_netdev(ndev, RDMA_DRIVER_UNKNOWN);
> > +	if (ibdev) {
> > +		ib_device_put(ibdev);
> > +		return -EINVAL;
> > +	}
> 
> This is racy

It can be seen as best effort.

> 
> What is wrong with creating two IB devices on top of the same net device?

Any place where we need to convert from ndev to ib will return random answer.

> 
> Jason

      reply	other threads:[~2022-12-12 13:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-12  9:22 [for-rc] RDMA/core: Make sure the netdev is not already associated Kamal Heib
2022-12-12 10:16 ` Leon Romanovsky
2022-12-12 12:51 ` Jason Gunthorpe
2022-12-12 13:18   ` Leon Romanovsky [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y5cqNHNl5hWkpeZC@unreal \
    --to=leon@kernel.org \
    --cc=jgg@ziepe.ca \
    --cc=kheib@redhat.com \
    --cc=linux-rdma@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.