|
@@ -489,7 +489,7 @@ static u8 get_leave_state(struct mcast_group *group)
|
|
|
if (!group->members[i])
|
|
|
leave_state |= (1 << i);
|
|
|
|
|
|
- return leave_state & (group->rec.scope_join_state & 7);
|
|
|
+ return leave_state & (group->rec.scope_join_state & 0xf);
|
|
|
}
|
|
|
|
|
|
static int join_group(struct mcast_group *group, int slave, u8 join_mask)
|
|
@@ -564,8 +564,8 @@ static void mlx4_ib_mcg_timeout_handler(struct work_struct *work)
|
|
|
} else
|
|
|
mcg_warn_group(group, "DRIVER BUG\n");
|
|
|
} else if (group->state == MCAST_LEAVE_SENT) {
|
|
|
- if (group->rec.scope_join_state & 7)
|
|
|
- group->rec.scope_join_state &= 0xf8;
|
|
|
+ if (group->rec.scope_join_state & 0xf)
|
|
|
+ group->rec.scope_join_state &= 0xf0;
|
|
|
group->state = MCAST_IDLE;
|
|
|
mutex_unlock(&group->lock);
|
|
|
if (release_group(group, 1))
|
|
@@ -605,7 +605,7 @@ static int handle_leave_req(struct mcast_group *group, u8 leave_mask,
|
|
|
static int handle_join_req(struct mcast_group *group, u8 join_mask,
|
|
|
struct mcast_req *req)
|
|
|
{
|
|
|
- u8 group_join_state = group->rec.scope_join_state & 7;
|
|
|
+ u8 group_join_state = group->rec.scope_join_state & 0xf;
|
|
|
int ref = 0;
|
|
|
u16 status;
|
|
|
struct ib_sa_mcmember_data *sa_data = (struct ib_sa_mcmember_data *)req->sa_mad.data;
|
|
@@ -690,8 +690,8 @@ static void mlx4_ib_mcg_work_handler(struct work_struct *work)
|
|
|
u8 cur_join_state;
|
|
|
|
|
|
resp_join_state = ((struct ib_sa_mcmember_data *)
|
|
|
- group->response_sa_mad.data)->scope_join_state & 7;
|
|
|
- cur_join_state = group->rec.scope_join_state & 7;
|
|
|
+ group->response_sa_mad.data)->scope_join_state & 0xf;
|
|
|
+ cur_join_state = group->rec.scope_join_state & 0xf;
|
|
|
|
|
|
if (method == IB_MGMT_METHOD_GET_RESP) {
|
|
|
/* successfull join */
|
|
@@ -710,7 +710,7 @@ process_requests:
|
|
|
req = list_first_entry(&group->pending_list, struct mcast_req,
|
|
|
group_list);
|
|
|
sa_data = (struct ib_sa_mcmember_data *)req->sa_mad.data;
|
|
|
- req_join_state = sa_data->scope_join_state & 0x7;
|
|
|
+ req_join_state = sa_data->scope_join_state & 0xf;
|
|
|
|
|
|
/* For a leave request, we will immediately answer the VF, and
|
|
|
* update our internal counters. The actual leave will be sent
|