Lines Matching full:ipm
427 struct lcs_ipm_list *ipm; in lcs_clear_multicast_list() local
434 ipm = list_entry(card->ipm_list.next, in lcs_clear_multicast_list()
436 list_del(&ipm->list); in lcs_clear_multicast_list()
437 if (ipm->ipm_state != LCS_IPM_STATE_SET_REQUIRED){ in lcs_clear_multicast_list()
439 lcs_send_delipm(card, ipm); in lcs_clear_multicast_list()
442 kfree(ipm); in lcs_clear_multicast_list()
1002 &ipm_list->ipm, sizeof (struct lcs_ip_mac_pair)); in lcs_send_setipm()
1003 LCS_DBF_TEXT_(2, trace, "%x",ipm_list->ipm.ip_addr); in lcs_send_setipm()
1026 &ipm_list->ipm, sizeof (struct lcs_ip_mac_pair)); in lcs_send_delipm()
1027 LCS_DBF_TEXT_(2, trace, "%x",ipm_list->ipm.ip_addr); in lcs_send_delipm()
1078 struct lcs_ipm_list *ipm, *tmp; in lcs_fix_multicast_list() local
1086 list_for_each_entry_safe(ipm, tmp, &card->ipm_list, list){ in lcs_fix_multicast_list()
1087 switch (ipm->ipm_state) { in lcs_fix_multicast_list()
1091 list_del_init(&ipm->list); in lcs_fix_multicast_list()
1093 rc = lcs_send_setipm(card, ipm); in lcs_fix_multicast_list()
1098 /* store ipm in failed list -> will be added in lcs_fix_multicast_list()
1101 list_add_tail(&ipm->list, &failed_list); in lcs_fix_multicast_list()
1103 ipm->ipm_state = LCS_IPM_STATE_ON_CARD; in lcs_fix_multicast_list()
1105 list_add_tail(&ipm->list, &card->ipm_list); in lcs_fix_multicast_list()
1109 list_del(&ipm->list); in lcs_fix_multicast_list()
1111 lcs_send_delipm(card, ipm); in lcs_fix_multicast_list()
1113 kfree(ipm); in lcs_fix_multicast_list()
1120 list_for_each_entry_safe(ipm, tmp, &failed_list, list) in lcs_fix_multicast_list()
1121 list_move_tail(&ipm->list, &card->ipm_list); in lcs_fix_multicast_list()
1130 lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev) in lcs_get_mac_for_ipm() argument
1133 ip_eth_mc_map(ipm, mac); in lcs_get_mac_for_ipm()
1144 struct lcs_ipm_list *ipm; in lcs_remove_mc_addresses() local
1151 ipm = list_entry(l, struct lcs_ipm_list, list); in lcs_remove_mc_addresses()
1155 if ( (ipm->ipm.ip_addr == im4->multiaddr) && in lcs_remove_mc_addresses()
1156 (memcmp(buf, &ipm->ipm.mac_addr, in lcs_remove_mc_addresses()
1161 ipm->ipm_state = LCS_IPM_STATE_DEL_REQUIRED; in lcs_remove_mc_addresses()
1170 struct lcs_ipm_list *tmp, *ipm = NULL; in lcs_check_addr_entry() local
1178 if ( (tmp->ipm.ip_addr == im4->multiaddr) && in lcs_check_addr_entry()
1179 (memcmp(buf, &tmp->ipm.mac_addr, in lcs_check_addr_entry()
1181 ipm = tmp; in lcs_check_addr_entry()
1186 return ipm; in lcs_check_addr_entry()
1194 struct lcs_ipm_list *ipm; in lcs_set_mc_addresses() local
1202 ipm = lcs_check_addr_entry(card, im4, buf); in lcs_set_mc_addresses()
1203 if (ipm != NULL) in lcs_set_mc_addresses()
1205 ipm = kzalloc(sizeof(struct lcs_ipm_list), GFP_ATOMIC); in lcs_set_mc_addresses()
1206 if (ipm == NULL) { in lcs_set_mc_addresses()
1211 memcpy(&ipm->ipm.mac_addr, buf, LCS_MAC_LENGTH); in lcs_set_mc_addresses()
1212 ipm->ipm.ip_addr = im4->multiaddr; in lcs_set_mc_addresses()
1213 ipm->ipm_state = LCS_IPM_STATE_SET_REQUIRED; in lcs_set_mc_addresses()
1215 LCS_DBF_HEX(2,trace,&ipm->ipm.ip_addr,4); in lcs_set_mc_addresses()
1216 list_add(&ipm->list, &card->ipm_list); in lcs_set_mc_addresses()