dest_entries[...].list should be initialized here too, shouldn't they? BTW, the names a re a little bit confusing (dest_entries_list vs. dest_entries), other names and an explanation would be helpful.
Nope, afaik I don't need to initialize list items which I'm not using as a list's head - list_add() will set the next and prev pointers anyway. Hmm, for the names I couldn't come up with something much better yet - renamed dest_entries_list to dest_entries_buckets though, to make it clearer that dest_entries are some reserved items which will be sorted into the right buckets later.
Hmm, there are actually two lines of explanation in mcast_tracker_packet_prepare(): 480 /* one dest_entries_buckets[x] per multicast group, 481 * they'll collect dest_entries[y] items */ 482 int num_mcast_entries, used_mcast_entries = 0; 483 struct list_head *dest_entries_buckets; 484 struct dest_entries_list *dest_entries, *dest, *tmp;
Or do you mean that the term "dest_entries" is ambiguous; not being clear if 'dest' is refering to a nexthop or a final destination?
Cheers, Linus