Hmm so actually my original patch including this bit was correct,
"list = list->next;" confused me :) - will send patch correcting that in a few.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 {
        struct octeon_mgmt *p = netdev_priv(netdev);
        int port = p->port;
-       int i;
        union cvmx_agl_gmx_rxx_adr_ctl adr_ctl;
        union cvmx_agl_gmx_prtx_cfg agl_gmx_prtx;
        unsigned long flags;
                }
        }
        if (multicast_mode == 0) {
-               i = netdev_mc_count(netdev);
-               list = netdev->mc_list;
-               while (i--) {
+               netdev_for_each_mc_addr(list, netdev)
                        octeon_mgmt_cam_state_add(&cam_state, list->da_addr);
-                       list = list->next;
-               }
        }