RE: possible deadlock in cma_netdev_callback

From: Bernard Metzler
Date: Thu Feb 27 2020 - 11:21:33 EST


-----"Jason Gunthorpe" <jgg@xxxxxxxx> wrote: -----

>To: "Bernard Metzler" <BMT@xxxxxxxxxxxxxx>
>From: "Jason Gunthorpe" <jgg@xxxxxxxx>
>Date: 02/27/2020 04:53PM
>Cc: "syzbot" <syzbot+55de90ab5f44172b0c90@xxxxxxxxxxxxxxxxxxxxxxxxx>,
>chuck.lever@xxxxxxxxxx, dledford@xxxxxxxxxx, leon@xxxxxxxxxx,
>linux-kernel@xxxxxxxxxxxxxxx, linux-rdma@xxxxxxxxxxxxxxx,
>netdev@xxxxxxxxxxxxxxx, parav@xxxxxxxxxxxx,
>syzkaller-bugs@xxxxxxxxxxxxxxxx, willy@xxxxxxxxxxxxx
>Subject: [EXTERNAL] Re: possible deadlock in cma_netdev_callback
>
>On Thu, Feb 27, 2020 at 10:11:13AM +0000, Bernard Metzler wrote:
>
>> Thanks for letting me know! Hmm, we cannot use RCU locks since
>> we potentially sleep. One solution would be to create a list
>> of matching interfaces while under lock, unlock and use that
>> list for calling siw_listen_address() (which may sleep),
>> right...?
>
>Why do you need to iterate over addresses anyhow? Shouldn't the
>listen
>just be done with the address the user gave and a BIND DEVICE to the
>device siw is connected to?

The user may give a wildcard local address, so we'd have
to bind to all addresses of that device...

Best,
Bernard.

>
>Also that loop in siw_create looks wrong to me
>
>Jason
>
>