__be64 tid,
                                                       union ib_gid *new_mgid)
 {
-       struct mcast_group *group = NULL, *cur_group;
+       struct mcast_group *group = NULL, *cur_group, *n;
        struct mcast_req *req;
-       struct list_head *pos;
-       struct list_head *n;
 
        mutex_lock(&ctx->mcg_table_lock);
-       list_for_each_safe(pos, n, &ctx->mcg_mgid0_list) {
-               group = list_entry(pos, struct mcast_group, mgid0_list);
+       list_for_each_entry_safe(group, n, &ctx->mcg_mgid0_list, mgid0_list) {
                mutex_lock(&group->lock);
                if (group->last_req_tid == tid) {
                        if (memcmp(new_mgid, &mgid0, sizeof mgid0)) {