Re: Setting up siw devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 22, 2019 at 07:58:56PM +0200, Marcin Mielniczuk wrote:
> On 22.08.2019 19:21, Leon Romanovsky wrote:
> > On Thu, Aug 22, 2019 at 07:05:12PM +0200, Marcin Mielniczuk wrote:
> >> Thanks a lot, this did the trick. I think this is worth documenting
> >> somewhere that this step is needed.
> >> I'll make a PR, would README.md in the rdma-core repo be a good place?
> > I'm not so sure, but it is better to have in some place instead of not having at all.
> I think it's the first place one would look for some information. I'll
> make a PR today or tomorrow.
> >> Does <NAME> have any significance? I did:
> >>
> >>      sudo rdma link add siw0 type siw netdev enpXsYYfZ
> >>
> >> but the resulting device is called iwpXsYYfZ. I couldn't find a trace of
> >> `siw0` anywhere.
> > I would say that it is a bug in kernel part of SIW, because kernel rename
> > (the thing which change your siw0 to be iw* name) is looking for absence
> > of mentioning PCI inside of /sys/class/infiniband/siw0/*
> > https://github.com/linux-rdma/rdma-core/blob/master/kernel-boot/rdma_rename.c#L378
> I don't have /sys/class/infiniband/siw0 on my system, only
> /sys/class/infiniband/iwpXsYYfZ.
> iwp probably comes from iWARP.

Your iwpXsYYfZ was siw0 before rdma_rename was executed.

I can't test the patch now, but hope that this change below will fix your problem.

diff --git a/drivers/infiniband/sw/siw/siw_main.c b/drivers/infiniband/sw/siw/siw_main.c
index 05a92f997f60..38c25a26dfb2 100644
--- a/drivers/infiniband/sw/siw/siw_main.c
+++ b/drivers/infiniband/sw/siw/siw_main.c
@@ -326,21 +326,6 @@ static struct siw_device *siw_device_create(struct net_device *netdev)
 	struct device *parent = netdev->dev.parent;
 	int rv;

-	if (!parent) {
-		/*
-		 * The loopback device has no parent device,
-		 * so it appears as a top-level device. To support
-		 * loopback device connectivity, take this device
-		 * as the parent device. Skip all other devices
-		 * w/o parent device.
-		 */
-		if (netdev->type != ARPHRD_LOOPBACK) {
-			pr_warn("siw: device %s error: no parent device\n",
-				netdev->name);
-			return NULL;
-		}
-		parent = &netdev->dev;
-	}
 	sdev = ib_alloc_device(siw_device, base_dev);
 	if (!sdev)
 		return NULL;




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux