Lines Matching refs:ipm
434 struct lcs_ipm_list *ipm; in lcs_clear_multicast_list() local
441 ipm = list_entry(card->ipm_list.next, in lcs_clear_multicast_list()
443 list_del(&ipm->list); in lcs_clear_multicast_list()
444 if (ipm->ipm_state != LCS_IPM_STATE_SET_REQUIRED){ in lcs_clear_multicast_list()
446 lcs_send_delipm(card, ipm); in lcs_clear_multicast_list()
449 kfree(ipm); in lcs_clear_multicast_list()
1008 &ipm_list->ipm, sizeof (struct lcs_ip_mac_pair)); in lcs_send_setipm()
1009 LCS_DBF_TEXT_(2, trace, "%x",ipm_list->ipm.ip_addr); in lcs_send_setipm()
1032 &ipm_list->ipm, sizeof (struct lcs_ip_mac_pair)); in lcs_send_delipm()
1033 LCS_DBF_TEXT_(2, trace, "%x",ipm_list->ipm.ip_addr); in lcs_send_delipm()
1084 struct lcs_ipm_list *ipm, *tmp; in lcs_fix_multicast_list() local
1092 list_for_each_entry_safe(ipm, tmp, &card->ipm_list, list){ in lcs_fix_multicast_list()
1093 switch (ipm->ipm_state) { in lcs_fix_multicast_list()
1097 list_del_init(&ipm->list); in lcs_fix_multicast_list()
1099 rc = lcs_send_setipm(card, ipm); in lcs_fix_multicast_list()
1107 list_add_tail(&ipm->list, &failed_list); in lcs_fix_multicast_list()
1109 ipm->ipm_state = LCS_IPM_STATE_ON_CARD; in lcs_fix_multicast_list()
1111 list_add_tail(&ipm->list, &card->ipm_list); in lcs_fix_multicast_list()
1115 list_del(&ipm->list); in lcs_fix_multicast_list()
1117 lcs_send_delipm(card, ipm); in lcs_fix_multicast_list()
1119 kfree(ipm); in lcs_fix_multicast_list()
1126 list_for_each_entry_safe(ipm, tmp, &failed_list, list) in lcs_fix_multicast_list()
1127 list_move_tail(&ipm->list, &card->ipm_list); in lcs_fix_multicast_list()
1136 lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev) in lcs_get_mac_for_ipm() argument
1139 ip_eth_mc_map(ipm, mac); in lcs_get_mac_for_ipm()
1150 struct lcs_ipm_list *ipm; in lcs_remove_mc_addresses() local
1157 ipm = list_entry(l, struct lcs_ipm_list, list); in lcs_remove_mc_addresses()
1161 if ( (ipm->ipm.ip_addr == im4->multiaddr) && in lcs_remove_mc_addresses()
1162 (memcmp(buf, &ipm->ipm.mac_addr, in lcs_remove_mc_addresses()
1167 ipm->ipm_state = LCS_IPM_STATE_DEL_REQUIRED; in lcs_remove_mc_addresses()
1176 struct lcs_ipm_list *tmp, *ipm = NULL; in lcs_check_addr_entry() local
1184 if ( (tmp->ipm.ip_addr == im4->multiaddr) && in lcs_check_addr_entry()
1185 (memcmp(buf, &tmp->ipm.mac_addr, in lcs_check_addr_entry()
1187 ipm = tmp; in lcs_check_addr_entry()
1192 return ipm; in lcs_check_addr_entry()
1200 struct lcs_ipm_list *ipm; in lcs_set_mc_addresses() local
1208 ipm = lcs_check_addr_entry(card, im4, buf); in lcs_set_mc_addresses()
1209 if (ipm != NULL) in lcs_set_mc_addresses()
1211 ipm = kzalloc(sizeof(struct lcs_ipm_list), GFP_ATOMIC); in lcs_set_mc_addresses()
1212 if (ipm == NULL) { in lcs_set_mc_addresses()
1217 memcpy(&ipm->ipm.mac_addr, buf, LCS_MAC_LENGTH); in lcs_set_mc_addresses()
1218 ipm->ipm.ip_addr = im4->multiaddr; in lcs_set_mc_addresses()
1219 ipm->ipm_state = LCS_IPM_STATE_SET_REQUIRED; in lcs_set_mc_addresses()
1221 LCS_DBF_HEX(2,trace,&ipm->ipm.ip_addr,4); in lcs_set_mc_addresses()
1222 list_add(&ipm->list, &card->ipm_list); in lcs_set_mc_addresses()