On Tue, Feb 18, 2020 at 09:04:36PM +0000, Jason Gunthorpe wrote: > The rdma_cm must be used single threaded. > > This appears to be a bug in the design, as it does have lots of locking > that seems like it should allow concurrency. However, when it is all said > and done every single place that uses the cma_exch() scheme is broken, and > all the unlocked reads from the ucma of the cm_id data are wrong too. > > syzkaller has been finding endless bugs related to this. > > Fixing this in any elegant way is some enormous amount of work. Take a > very big hammer and put a mutex around everything to do with the > ucma_context at the top of every syscall. > > Fixes: 75216638572f ("RDMA/cma: Export rdma cm interface to userspace") > Reported-by: syzbot+adb15cf8c2798e4e0db4@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+e5579222b6a3edd96522@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+4b628fcc748474003457@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+29ee8f76017ce6cf03da@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+6956235342b7317ec564@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+b358909d8d01556b790b@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+6b46b135602a3f3ac99e@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+8458d13b13562abf6b77@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+bd034f3fdc0402e942ed@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+c92378b32760a4eef756@xxxxxxxxxxxxxxxxxxxxxxxxx > Reported-by: syzbot+68b44a1597636e0b342c@xxxxxxxxxxxxxxxxxxxxxxxxx > Cc: Eric Biggers <ebiggers@xxxxxxxxxx> > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx> > --- > drivers/infiniband/core/ucma.c | 50 ++++++++++++++++++++++++++++++++-- > 1 file changed, 48 insertions(+), 2 deletions(-) It has had some testing on the Mellanox test suite, so applied to for-next. I did not put this in -rc or cc stable since it seems like it should have more testing Jason