Re: Setting up siw devices

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

 



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;
>




[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