With the kernel built with yiour patch the device is still being renamed. (tbh, I don't even see why this patch would help) But it's not a big issue for me right now, I can just type in the renamed interface name. Thanks On 22.08.2019 20:38, Leon Romanovsky wrote: > 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; >