Fix multicast on VLAN interfaces
Subsystems (2)
PATCH 1/1 Fix multicast on VLAN interfaces
In commit 56addd6eeeb4e11f5a0af7093ca078e0f29140e0 the VLAN multicast list handling was reworked. Unfortunately, a variable initialization was missed, and multicast over vlan devices has been broken since 2.6.23-rc1 (apparently not too many people use this). Trivial fix below, which might be a candidate for -stable.
Phil
net/core/dev.c +1 -0
@@ -2905,6 +2905,7 @@ int __dev_addr_add(struct dev_addr_list **list, int *count,return -ENOMEM ;memcpy (da->da_addr, addr, alen); da->da_addrlen = alen; + da->da_synced =0 ; da->da_users =1 ; da->da_gusers = glbl ?1 :0 ; da->next = *list;
Quoted 5 lines · Phil Oester
In commit
56addd6eeeb4e11f5a0af7093ca078e0f29140e0the VLAN multicast list handling was reworked. Unfortunately, a variable initialization was missed, and multicast over vlan devices has been broken since 2.6.23-rc1 (apparently not too many people use this). Trivial fix below, which might be a candidate for -stable.
Thanks Phil, a similar patch is already sitting in net-2.6.git.
David Miller
maintainerFrom: Phil Oester <[email protected]>
Date: Thu, 21 Feb 2008 14:05:42 -0800
net/core/dev.c int __dev_addr_add(struct dev_addr_list **list, int *count, · line 2911
Quoted 12 lines
net/core/dev.c +1
-0@@ -2905,6 +2905,7 @@ int __dev_addr_add(struct dev_addr_list **list, int *count,return -ENOMEM ;memcpy (da->da_addr, addr, alen); da->da_addrlen = alen; + da->da_synced =0 ; da->da_users =1 ; da->da_gusers = glbl ?1 :0 ; da->next = *list;
"da" is kzalloc()'d, how can da->da_synced not be zero?
Quoted 1 line · David Miller
"da" is kzalloc()'d, how can
da->da_syncednot be zero?
Because it was originally kmalloc'd, not kzalloc'd. It was fixed about 2 days prior to my patch submission, here:
http://marc.info/?l=linux-netdev&m=120343348811767&w=2
which I missed.
Phil