diff options
author | Jorge Boncompte [DTI2] <jorge@dti2.net> | 2008-02-19 14:17:04 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-19 14:17:04 -0800 |
commit | 12aa343add3eced38a44bdb612b35fdf634d918c (patch) | |
tree | 89c8ab8b4b49e2f3d9e587f6c765147ed36352af /net | |
parent | a442585952f137bd4cdb1f2f3166e4157d383b82 (diff) | |
download | linux-12aa343add3eced38a44bdb612b35fdf634d918c.tar.gz linux-12aa343add3eced38a44bdb612b35fdf634d918c.tar.bz2 linux-12aa343add3eced38a44bdb612b35fdf634d918c.zip |
[NET]: Messed multicast lists after dev_mc_sync/unsync
Commit a0a400d79e3dd7843e7e81baa3ef2957bdc292d0 ("[NET]: dev_mcast:
add multicast list synchronization helpers") from you introduced a new
field "da_synced" to struct dev_addr_list that is not properly
initialized to 0. So when any of the current users (8021q, macvlan,
mac80211) calls dev_mc_sync/unsync they mess the address list for both
devices.
The attached patch fixed it for me and avoid future problems.
Signed-off-by: Jorge Boncompte [DTI2] <jorge@dti2.net>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/dev.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 6cfc1238c4a6..95161054c4d1 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2900,7 +2900,7 @@ int __dev_addr_add(struct dev_addr_list **list, int *count, } } - da = kmalloc(sizeof(*da), GFP_ATOMIC); + da = kzalloc(sizeof(*da), GFP_ATOMIC); if (da == NULL) return -ENOMEM; memcpy(da->da_addr, addr, alen); |