Messages in this thread | | | From | "Hefty, Sean" <> | Subject | RE: [PATCH] infiniband:core:Fix error handling in the function join_handler | Date | Tue, 8 Sep 2015 16:50:03 +0000 |
| |
> diff --git a/drivers/infiniband/core/multicast.c > b/drivers/infiniband/core/multicast.c > index 2cb865c..9284337 100644 > --- a/drivers/infiniband/core/multicast.c > +++ b/drivers/infiniband/core/multicast.c > @@ -526,8 +526,9 @@ static void join_handler(int status, struct > ib_sa_mcmember_rec *rec, > process_join_error(group, status); > else { > int mgids_changed, is_mgid0; > - ib_find_pkey(group->port->dev->device, group->port->port_num, > - be16_to_cpu(rec->pkey), &pkey_index); > + if (ib_find_pkey(group->port->dev->device, group->port- > >port_num, > + be16_to_cpu(rec->pkey), &pkey_index)) > + return;
We can't just abort here. Apps are waiting on a callback to their join operation, and the SA believes that this port is part of the multicast group.
If we don't get a valid pkey, the group will be left set to 'MCAST_INVALID_PKEY_INDEX'.
- Sean
| |