lkml.org 
[lkml]   [2008]   [Mar]   [21]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    DateFri, 21 Mar 2008 15:42:58 -0700
    FromChris Wright <>
    Subject[patch 08/76] NET: Messed multicast lists after dev_mc_sync/unsync
    -stable review patch.  If anyone has any objections, please let us know.
    ---------------------
    From: Jorge Boncompte [DTI2] <jorge@dti2.net>
    
    Upstream commit: 12aa343add3eced38a44bdb612b35fdf634d918c
    
    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>
    
    ---
     net/core/dev.c |    2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    --- a/net/core/dev.c
    +++ b/net/core/dev.c
    @@ -2906,7 +2906,7 @@ int __dev_addr_add(struct dev_addr_list 
     		}
     	}
     
    -	da = kmalloc(sizeof(*da), GFP_ATOMIC);
    +	da = kzalloc(sizeof(*da), GFP_ATOMIC);
     	if (da == NULL)
     		return -ENOMEM;
     	memcpy(da->da_addr, addr, alen);
    -- 
    
    
    
    \
     
     \ /
      Last update: 2008-03-22 00:49    [from the cache]
    ©2003-2008