Re: [PATCH for-next v3 0/2] Introduce rdma_set_min_rnr_timer() and use it in RDS

From: Leon Romanovsky
Date: Tue Apr 13 2021 - 07:37:49 EST


On Tue, Apr 13, 2021 at 11:13:38AM +0000, Haakon Bugge wrote:
>
>
> > On 13 Apr 2021, at 08:29, Leon Romanovsky <leon@xxxxxxxxxx> wrote:
> >
> > On Mon, Apr 12, 2021 at 07:58:47PM -0300, Jason Gunthorpe wrote:
> >> On Wed, Mar 31, 2021 at 08:43:12PM +0200, Håkon Bugge wrote:
> >>> ib_modify_qp() is an expensive operation on some HCAs running
> >>> virtualized. This series removes two ib_modify_qp() calls from RDS.
> >>>
> >>> I am sending this as a v3, even though it is the first sent to
> >>> net. This because the IB Core commit has reach v3.
> >>>
> >>> Håkon Bugge (2):
> >>> IB/cma: Introduce rdma_set_min_rnr_timer()
> >>> rds: ib: Remove two ib_modify_qp() calls
> >>
> >> Applied to rdma for-next, thanks
> >
> > Jason,
> >
> > It should be
> > + WARN_ON(id->qp_type != IB_QPT_RC && id->qp_type != IB_QPT_XRC_TGT);
>
> With no return you will arm the setting of the timer and subsequently get an error from the modify_qp later.

The addition of WARN_ON() means that this is programmer error to get
such input. Historically, in-kernel API doesn't need to have protection
from other kernel developers.

Thanks

>
>
> Håkon
>
> >
> > and not
> > + if (WARN_ON(id->qp_type != IB_QPT_RC && id->qp_type != IB_QPT_XRC_TGT))
> > + return -EINVAL;
> >
> > Thanks
> >
> >>
> >> Jason
>