On Thu, Feb 27, 2020 at 04:21:21PM +0000, Bernard Metzler 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... AFAIK a wild card bind using BIND DEVICE works just fine? Jason