Lines Matching refs:ipm
451 struct lcs_ipm_list *ipm; in lcs_clear_multicast_list() local
458 ipm = list_entry(card->ipm_list.next, in lcs_clear_multicast_list()
460 list_del(&ipm->list); in lcs_clear_multicast_list()
461 if (ipm->ipm_state != LCS_IPM_STATE_SET_REQUIRED){ in lcs_clear_multicast_list()
463 lcs_send_delipm(card, ipm); in lcs_clear_multicast_list()
466 kfree(ipm); in lcs_clear_multicast_list()
1035 &ipm_list->ipm, sizeof (struct lcs_ip_mac_pair)); in lcs_send_setipm()
1036 LCS_DBF_TEXT_(2, trace, "%x",ipm_list->ipm.ip_addr); in lcs_send_setipm()
1059 &ipm_list->ipm, sizeof (struct lcs_ip_mac_pair)); in lcs_send_delipm()
1060 LCS_DBF_TEXT_(2, trace, "%x",ipm_list->ipm.ip_addr); in lcs_send_delipm()
1111 struct lcs_ipm_list *ipm, *tmp; in lcs_fix_multicast_list() local
1119 list_for_each_entry_safe(ipm, tmp, &card->ipm_list, list){ in lcs_fix_multicast_list()
1120 switch (ipm->ipm_state) { in lcs_fix_multicast_list()
1124 list_del_init(&ipm->list); in lcs_fix_multicast_list()
1126 rc = lcs_send_setipm(card, ipm); in lcs_fix_multicast_list()
1134 list_add_tail(&ipm->list, &failed_list); in lcs_fix_multicast_list()
1136 ipm->ipm_state = LCS_IPM_STATE_ON_CARD; in lcs_fix_multicast_list()
1138 list_add_tail(&ipm->list, &card->ipm_list); in lcs_fix_multicast_list()
1142 list_del(&ipm->list); in lcs_fix_multicast_list()
1144 lcs_send_delipm(card, ipm); in lcs_fix_multicast_list()
1146 kfree(ipm); in lcs_fix_multicast_list()
1153 list_for_each_entry_safe(ipm, tmp, &failed_list, list) in lcs_fix_multicast_list()
1154 list_move_tail(&ipm->list, &card->ipm_list); in lcs_fix_multicast_list()
1163 lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev) in lcs_get_mac_for_ipm() argument
1166 ip_eth_mc_map(ipm, mac); in lcs_get_mac_for_ipm()
1177 struct lcs_ipm_list *ipm; in lcs_remove_mc_addresses() local
1184 ipm = list_entry(l, struct lcs_ipm_list, list); in lcs_remove_mc_addresses()
1188 if ( (ipm->ipm.ip_addr == im4->multiaddr) && in lcs_remove_mc_addresses()
1189 (memcmp(buf, &ipm->ipm.mac_addr, in lcs_remove_mc_addresses()
1194 ipm->ipm_state = LCS_IPM_STATE_DEL_REQUIRED; in lcs_remove_mc_addresses()
1202 struct lcs_ipm_list *tmp, *ipm = NULL; in lcs_check_addr_entry() local
1210 if ( (tmp->ipm.ip_addr == im4->multiaddr) && in lcs_check_addr_entry()
1211 (memcmp(buf, &tmp->ipm.mac_addr, in lcs_check_addr_entry()
1213 ipm = tmp; in lcs_check_addr_entry()
1218 return ipm; in lcs_check_addr_entry()
1226 struct lcs_ipm_list *ipm; in lcs_set_mc_addresses() local
1234 ipm = lcs_check_addr_entry(card, im4, buf); in lcs_set_mc_addresses()
1235 if (ipm != NULL) in lcs_set_mc_addresses()
1237 ipm = kzalloc(sizeof(struct lcs_ipm_list), GFP_ATOMIC); in lcs_set_mc_addresses()
1238 if (ipm == NULL) { in lcs_set_mc_addresses()
1243 memcpy(&ipm->ipm.mac_addr, buf, LCS_MAC_LENGTH); in lcs_set_mc_addresses()
1244 ipm->ipm.ip_addr = im4->multiaddr; in lcs_set_mc_addresses()
1245 ipm->ipm_state = LCS_IPM_STATE_SET_REQUIRED; in lcs_set_mc_addresses()
1247 LCS_DBF_HEX(2,trace,&ipm->ipm.ip_addr,4); in lcs_set_mc_addresses()
1248 list_add(&ipm->list, &card->ipm_list); in lcs_set_mc_addresses()