Re: [PATCH v3 rdma-next 1/3] qedr: Add wrapping generic structure for qpidr and adjust idr routines.

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

 



On Tue, Jul 24, 2018 at 04:31:49PM +0000, Bason, Yuval wrote:
> > From: Leon Romanovsky [mailto:leon@xxxxxxxxxx]
> > Sent: Tuesday, July 24, 2018 3:37 PM
> > On Mon, Jul 23, 2018 at 04:30:01PM +0300, Yuval Bason wrote:
> > > Today, we are using idr mechanism for QP's only.
> > > This patch prepares the qedr_idr stuctures and the idr routines for
> > > both QP's and SRQ's.
> > >
> > > Signed-off-by: Yuval Bason <yuval.bason@xxxxxxxxxx>
> > > Signed-off-by: Michal Kalderon <michal.kalderon@xxxxxxxxxx>
> > > ---
> > >  drivers/infiniband/hw/qedr/main.c       |  4 ++--
> > >  drivers/infiniband/hw/qedr/qedr.h       |  8 ++++++--
> > >  drivers/infiniband/hw/qedr/qedr_iw_cm.c | 12 +++++------
> > >  drivers/infiniband/hw/qedr/verbs.c      | 35 +++++++++++++++------------------
> > >  4 files changed, 30 insertions(+), 29 deletions(-)
> > >
> >
> > I afraid that all calls to "idr_find" in this patch are not correct.
> > They should be protected with RCU.
> Thanks for pointing this out (de-ref bug..)
> I'm afraid rcu read lock will not suffice, without managing some internal mechanism that requires more modifications for this patch.
> We could use spin_lock_irqsave for protecting the idr_find, and address this rcu issue in a future patch.
> What do you think?

Without doubts, spin_lock_irqsave() will work and it is your driver,
however I don't see any reason why instead of places where you want to
add spin_lock_irqsave(), spin_unlock_irqsave() place rcu_read_lock() and
rcu_read_unlock().

Thanks

> >
> > Thanks

Attachment: signature.asc
Description: PGP signature


[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