> On 8 Apr 2021, at 15:24, Haakon Bugge <haakon.bugge@xxxxxxxxxx> wrote: > > > >> 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? Have you made up you mind here :-) Håkon