[ofa-general] [PATCH] ib/core: fix for send multicast group send leave retry
Sean Hefty
sean.hefty at intel.com
Mon Aug 4 09:31:52 PDT 2008
> struct mcast_member {
>@@ -540,9 +541,16 @@ static void join_handler(int status, struct
>ib_sa_mcmember_rec *rec,
> static void leave_handler(int status, struct ib_sa_mcmember_rec *rec,
> void *context)
> {
>+ __u8 leave_state;
> struct mcast_group *group = context;
>
>- mcast_work_handler(&group->work);
>+ leave_state = get_leave_state(group);
I don't think this works as expected. If you look in
mcast_work_handler(), the group's join_state is adjusted before
send_leave is called. Leave_state here will be different (likely 0)
than the leave_state sent in the original leave request.
>+ if (status && (group->retries > 0)) {
>+ send_leave(group, leave_state);
>+ group->retries--;
>+ }
>+ if (!status || (group->retries == 0))
I think this should just be an 'else'.
>+ mcast_work_handler(&group->work);
> }
- Sean
More information about the general
mailing list