> On 8 Apr 2021, at 14:25, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > > On Tue, Apr 06, 2021 at 12:37:03PM +0200, Håkon Bugge wrote: >> In cm_req_handler(), unify the check for RoCE and re-factor to avoid >> one test. >> >> Suggested-by: Jason Gunthorpe <jgg@xxxxxxxxxx> >> Fixes: 8f9748602491 ("IB/cm: Reduce dependency on gid attribute ndev check") >> Fixes: 194f64a3cad3 ("RDMA/core: Fix corrupted SL on passive side") >> Signed-off-by: Håkon Bugge <haakon.bugge@xxxxxxxxxx> >> --- >> drivers/infiniband/core/cm.c | 8 ++------ >> 1 file changed, 2 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c >> index 32c836b..074faff 100644 >> --- a/drivers/infiniband/core/cm.c >> +++ b/drivers/infiniband/core/cm.c >> @@ -2138,21 +2138,17 @@ static int cm_req_handler(struct cm_work *work) >> goto destroy; >> } >> >> - if (cm_id_priv->av.ah_attr.type != RDMA_AH_ATTR_TYPE_ROCE) >> - cm_process_routed_req(req_msg, work->mad_recv_wc->wc); >> - >> memset(&work->path[0], 0, sizeof(work->path[0])); >> if (cm_req_has_alt_path(req_msg)) >> memset(&work->path[1], 0, sizeof(work->path[1])); >> grh = rdma_ah_read_grh(&cm_id_priv->av.ah_attr); >> gid_attr = grh->sgid_attr; >> >> - if (gid_attr && >> - rdma_protocol_roce(work->port->cm_dev->ib_device, >> - work->port->port_num)) { >> + if (gid_attr && cm_id_priv->av.ah_attr.type == RDMA_AH_ATTR_TYPE_ROCE) { > > I think your other note was right, the gid_attr cannot be NULL when in > ROCE mode, so we can delete the 'gid_attr &&' term too Shall I send a v2 or do you fix it when you merge? Håkon